From e1ad3f725b62659badeeb8f5eeff286adf0e5f53 Mon Sep 17 00:00:00 2001 From: Ksitta Date: Sat, 5 Oct 2024 11:07:56 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20a9161?= =?UTF-8?q?b80f664baa91334cc6b87882d8605c790ac=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REFERENCE.html | 2 +- docs/contest/backend.html | 2 +- docs/contest/frontend.html | 2 +- docs/contest/intro.html | 2 +- docs/contest/midend/cp.html | 2 +- docs/contest/midend/dce.html | 2 +- docs/contest/midend/ir.html | 2 +- docs/contest/midend/irgen.html | 2 +- docs/contest/midend/midend.html | 2 +- docs/contest/midend/ssa.html | 2 +- docs/misc/schedule.html | 2 +- docs/ref/riscv.html | 2 +- docs/step0/env.html | 2 +- docs/step0/errate.html | 2 +- docs/step0/intro.html | 2 +- docs/step0/riscv.html | 2 +- docs/step0/riscv_env.html | 2 +- docs/step0/testing.html | 2 +- docs/step1/arch.html | 2 +- docs/step1/example.html | 2 +- docs/step1/intro.html | 2 +- docs/step1/provided.html | 2 +- docs/step1/spec.html | 2 +- docs/step1/visitor.html | 2 +- docs/step10/example.html | 2 +- docs/step10/intro.html | 2 +- docs/step10/spec.html | 2 +- docs/step11/example.html | 2 +- docs/step11/intro.html | 2 +- docs/step11/spec.html | 2 +- docs/step12/example.html | 2 +- docs/step12/intro.html | 2 +- docs/step12/spec.html | 2 +- docs/step13/example.html | 2 +- docs/step13/intro.html | 2 +- docs/step13/readme.html | 2 +- docs/step2/example.html | 4 ++-- docs/step2/intro.html | 2 +- docs/step2/spec.html | 2 +- docs/step3/example.html | 2 +- docs/step3/intro.html | 2 +- docs/step3/precedence.html | 2 +- docs/step3/spec.html | 2 +- docs/step4/example.html | 2 +- docs/step4/intro.html | 2 +- docs/step4/spec.html | 2 +- docs/step5/example.html | 2 +- docs/step5/intro.html | 2 +- docs/step5/spec.html | 2 +- docs/step6/dataflow.html | 2 +- docs/step6/example.html | 2 +- docs/step6/intro.html | 2 +- docs/step6/spec.html | 2 +- docs/step7/example.html | 2 +- docs/step7/intro.html | 2 +- docs/step7/spec.html | 2 +- docs/step8/example.html | 2 +- docs/step8/intro.html | 2 +- docs/step8/spec.html | 2 +- docs/step9/example.html | 2 +- docs/step9/intro.html | 2 +- docs/step9/spec.html | 2 +- index.html | 2 +- search_index.json | 2 +- search_plus_index.json | 2 +- 65 files changed, 66 insertions(+), 66 deletions(-) diff --git a/REFERENCE.html b/REFERENCE.html index 36c11a4e..e4b601b5 100644 --- a/REFERENCE.html +++ b/REFERENCE.html @@ -1423,7 +1423,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"参考资料","level":"12.1","depth":1,"previous":{"title":"后端设计","level":"11.4","depth":1,"path":"docs/contest/backend.md","ref":"docs/contest/backend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"REFERENCE.md","mtime":"2024-10-04T15:29:32.251Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":".","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"参考资料","level":"12.1","depth":1,"previous":{"title":"后端设计","level":"11.4","depth":1,"path":"docs/contest/backend.md","ref":"docs/contest/backend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"REFERENCE.md","mtime":"2024-10-05T11:06:58.710Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":".","book":{"language":""}}); }); diff --git a/docs/contest/backend.html b/docs/contest/backend.html index b2fdc4c0..dab65073 100644 --- a/docs/contest/backend.html +++ b/docs/contest/backend.html @@ -1548,7 +1548,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"后端设计","level":"11.4","depth":1,"next":{"title":"参考资料","level":"12.1","depth":1,"path":"REFERENCE.md","ref":"REFERENCE.md","articles":[]},"previous":{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/backend.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"后端设计","level":"11.4","depth":1,"next":{"title":"参考资料","level":"12.1","depth":1,"path":"REFERENCE.md","ref":"REFERENCE.md","articles":[]},"previous":{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/backend.md","mtime":"2024-10-05T11:06:58.710Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/contest/frontend.html b/docs/contest/frontend.html index cf450987..d6ae45fc 100644 --- a/docs/contest/frontend.html +++ b/docs/contest/frontend.html @@ -1840,7 +1840,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"前端设计","level":"11.2","depth":1,"next":{"title":"中端设计","level":"11.3","depth":1,"path":"docs/contest/midend/midend.md","ref":"docs/contest/midend/midend.md","articles":[{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]}]},"previous":{"title":"大实验简介","level":"11.1","depth":1,"path":"docs/contest/intro.md","ref":"docs/contest/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/frontend.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"前端设计","level":"11.2","depth":1,"next":{"title":"中端设计","level":"11.3","depth":1,"path":"docs/contest/midend/midend.md","ref":"docs/contest/midend/midend.md","articles":[{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]}]},"previous":{"title":"大实验简介","level":"11.1","depth":1,"path":"docs/contest/intro.md","ref":"docs/contest/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/frontend.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/contest/intro.html b/docs/contest/intro.html index c292e5c7..96a2667d 100644 --- a/docs/contest/intro.html +++ b/docs/contest/intro.html @@ -1539,7 +1539,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"大实验简介","level":"11.1","depth":1,"next":{"title":"前端设计","level":"11.2","depth":1,"path":"docs/contest/frontend.md","ref":"docs/contest/frontend.md","articles":[]},"previous":{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/intro.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"大实验简介","level":"11.1","depth":1,"next":{"title":"前端设计","level":"11.2","depth":1,"path":"docs/contest/frontend.md","ref":"docs/contest/frontend.md","articles":[]},"previous":{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/intro.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/contest/midend/cp.html b/docs/contest/midend/cp.html index 216f7124..b753f6b4 100644 --- a/docs/contest/midend/cp.html +++ b/docs/contest/midend/cp.html @@ -1451,7 +1451,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"常量传播","level":"11.3.4","depth":2,"next":{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]},"previous":{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/cp.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"常量传播","level":"11.3.4","depth":2,"next":{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]},"previous":{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/cp.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../../..","book":{"language":""}}); }); diff --git a/docs/contest/midend/dce.html b/docs/contest/midend/dce.html index dc0512f4..49641795 100644 --- a/docs/contest/midend/dce.html +++ b/docs/contest/midend/dce.html @@ -1449,7 +1449,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"死代码消除","level":"11.3.5","depth":2,"next":{"title":"后端设计","level":"11.4","depth":1,"path":"docs/contest/backend.md","ref":"docs/contest/backend.md","articles":[]},"previous":{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/dce.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"死代码消除","level":"11.3.5","depth":2,"next":{"title":"后端设计","level":"11.4","depth":1,"path":"docs/contest/backend.md","ref":"docs/contest/backend.md","articles":[]},"previous":{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/dce.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../../..","book":{"language":""}}); }); diff --git a/docs/contest/midend/ir.html b/docs/contest/midend/ir.html index c759f356..f5fe370d 100644 --- a/docs/contest/midend/ir.html +++ b/docs/contest/midend/ir.html @@ -1567,7 +1567,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"中间表示设计","level":"11.3.1","depth":2,"next":{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},"previous":{"title":"中端设计","level":"11.3","depth":1,"path":"docs/contest/midend/midend.md","ref":"docs/contest/midend/midend.md","articles":[{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/ir.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"中间表示设计","level":"11.3.1","depth":2,"next":{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},"previous":{"title":"中端设计","level":"11.3","depth":1,"path":"docs/contest/midend/midend.md","ref":"docs/contest/midend/midend.md","articles":[{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},{"title":"死代码消除","level":"11.3.5","depth":2,"path":"docs/contest/midend/dce.md","ref":"docs/contest/midend/dce.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/ir.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../../..","book":{"language":""}}); }); diff --git a/docs/contest/midend/irgen.html b/docs/contest/midend/irgen.html index 0c7a2576..2ff8805f 100644 --- a/docs/contest/midend/irgen.html +++ b/docs/contest/midend/irgen.html @@ -1749,7 +1749,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"中间代码生成","level":"11.3.2","depth":2,"next":{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},"previous":{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/irgen.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"中间代码生成","level":"11.3.2","depth":2,"next":{"title":"静态单赋值","level":"11.3.3","depth":2,"path":"docs/contest/midend/ssa.md","ref":"docs/contest/midend/ssa.md","articles":[]},"previous":{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/irgen.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../../..","book":{"language":""}}); }); diff --git a/docs/contest/midend/midend.html b/docs/contest/midend/midend.html index 078b4204..92af2ffd 100644 --- a/docs/contest/midend/midend.html +++ b/docs/contest/midend/midend.html @@ -1542,7 +1542,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"中端设计","level":"11.3","depth":1,"next":{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},"previous":{"title":"前端设计","level":"11.2","depth":1,"path":"docs/contest/frontend.md","ref":"docs/contest/frontend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/midend.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"中端设计","level":"11.3","depth":1,"next":{"title":"中间表示设计","level":"11.3.1","depth":2,"path":"docs/contest/midend/ir.md","ref":"docs/contest/midend/ir.md","articles":[]},"previous":{"title":"前端设计","level":"11.2","depth":1,"path":"docs/contest/frontend.md","ref":"docs/contest/frontend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/midend.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../../..","book":{"language":""}}); }); diff --git a/docs/contest/midend/ssa.html b/docs/contest/midend/ssa.html index b95e7cf1..05609d46 100644 --- a/docs/contest/midend/ssa.html +++ b/docs/contest/midend/ssa.html @@ -1540,7 +1540,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"静态单赋值","level":"11.3.3","depth":2,"next":{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},"previous":{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/ssa.md","mtime":"2024-10-04T15:29:32.252Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"静态单赋值","level":"11.3.3","depth":2,"next":{"title":"常量传播","level":"11.3.4","depth":2,"path":"docs/contest/midend/cp.md","ref":"docs/contest/midend/cp.md","articles":[]},"previous":{"title":"中间代码生成","level":"11.3.2","depth":2,"path":"docs/contest/midend/irgen.md","ref":"docs/contest/midend/irgen.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/contest/midend/ssa.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../../..","book":{"language":""}}); }); diff --git a/docs/misc/schedule.html b/docs/misc/schedule.html index 0fdce2bd..4d9f31a4 100644 --- a/docs/misc/schedule.html +++ b/docs/misc/schedule.html @@ -1457,7 +1457,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验进度安排","level":"1.2","depth":1,"next":{"title":"勘误表","level":"1.3","depth":1,"path":"docs/step0/errate.md","ref":"docs/step0/errate.md","articles":[]},"previous":{"title":"实验简介","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/misc/schedule.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验进度安排","level":"1.2","depth":1,"next":{"title":"勘误表","level":"1.3","depth":1,"path":"docs/step0/errate.md","ref":"docs/step0/errate.md","articles":[]},"previous":{"title":"实验简介","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/misc/schedule.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/ref/riscv.html b/docs/ref/riscv.html index 83a55a03..e4b83589 100644 --- a/docs/ref/riscv.html +++ b/docs/ref/riscv.html @@ -1437,7 +1437,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"RISC-V 参考资料","level":"1.4","depth":1,"next":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"实验环境简介","level":"2.1.1","depth":2,"path":"docs/step0/intro.md","ref":"docs/step0/intro.md","articles":[]},{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]}]},"previous":{"title":"勘误表","level":"1.3","depth":1,"path":"docs/step0/errate.md","ref":"docs/step0/errate.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/ref/riscv.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"RISC-V 参考资料","level":"1.4","depth":1,"next":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"实验环境简介","level":"2.1.1","depth":2,"path":"docs/step0/intro.md","ref":"docs/step0/intro.md","articles":[]},{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]}]},"previous":{"title":"勘误表","level":"1.3","depth":1,"path":"docs/step0/errate.md","ref":"docs/step0/errate.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/ref/riscv.md","mtime":"2024-10-05T11:06:58.711Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/env.html b/docs/step0/env.html index 08ad9860..aca2be03 100644 --- a/docs/step0/env.html +++ b/docs/step0/env.html @@ -1441,7 +1441,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验框架环境配置","level":"2.1.4","depth":2,"next":{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]},"previous":{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/env.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验框架环境配置","level":"2.1.4","depth":2,"next":{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]},"previous":{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/env.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/errate.html b/docs/step0/errate.html index a4d80692..97bc45d6 100644 --- a/docs/step0/errate.html +++ b/docs/step0/errate.html @@ -1439,7 +1439,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"勘误表","level":"1.3","depth":1,"next":{"title":"RISC-V 参考资料","level":"1.4","depth":1,"path":"docs/ref/riscv.md","ref":"docs/ref/riscv.md","articles":[]},"previous":{"title":"实验进度安排","level":"1.2","depth":1,"path":"docs/misc/schedule.md","ref":"docs/misc/schedule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/errate.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"勘误表","level":"1.3","depth":1,"next":{"title":"RISC-V 参考资料","level":"1.4","depth":1,"path":"docs/ref/riscv.md","ref":"docs/ref/riscv.md","articles":[]},"previous":{"title":"实验进度安排","level":"1.2","depth":1,"path":"docs/misc/schedule.md","ref":"docs/misc/schedule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/errate.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/intro.html b/docs/step0/intro.html index d9470b15..84650af3 100644 --- a/docs/step0/intro.html +++ b/docs/step0/intro.html @@ -1434,7 +1434,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验环境简介","level":"2.1.1","depth":2,"next":{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},"previous":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"实验环境简介","level":"2.1.1","depth":2,"path":"docs/step0/intro.md","ref":"docs/step0/intro.md","articles":[]},{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/intro.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验环境简介","level":"2.1.1","depth":2,"next":{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},"previous":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"实验环境简介","level":"2.1.1","depth":2,"path":"docs/step0/intro.md","ref":"docs/step0/intro.md","articles":[]},{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/intro.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/riscv.html b/docs/step0/riscv.html index 06806876..c04a1e64 100644 --- a/docs/step0/riscv.html +++ b/docs/step0/riscv.html @@ -1502,7 +1502,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"next":{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},"previous":{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/riscv.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"next":{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},"previous":{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/riscv.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/riscv_env.html b/docs/step0/riscv_env.html index b13bb673..c24e2255 100644 --- a/docs/step0/riscv_env.html +++ b/docs/step0/riscv_env.html @@ -1525,7 +1525,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"next":{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},"previous":{"title":"实验环境简介","level":"2.1.1","depth":2,"path":"docs/step0/intro.md","ref":"docs/step0/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/riscv_env.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"RISC-V 环境配置","level":"2.1.2","depth":2,"next":{"title":"RISC-V 的工具链使用","level":"2.1.3","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},"previous":{"title":"实验环境简介","level":"2.1.1","depth":2,"path":"docs/step0/intro.md","ref":"docs/step0/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/riscv_env.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/testing.html b/docs/step0/testing.html index b1319d39..e25c67b5 100644 --- a/docs/step0/testing.html +++ b/docs/step0/testing.html @@ -1442,7 +1442,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"运行实验框架","level":"2.1.5","depth":2,"next":{"title":"MiniDecaf 编译器结构","level":"3.1","depth":1,"path":"docs/step1/arch.md","ref":"docs/step1/arch.md","articles":[]},"previous":{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/testing.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"运行实验框架","level":"2.1.5","depth":2,"next":{"title":"MiniDecaf 编译器结构","level":"3.1","depth":1,"path":"docs/step1/arch.md","ref":"docs/step1/arch.md","articles":[]},"previous":{"title":"实验框架环境配置","level":"2.1.4","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step0/testing.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/arch.html b/docs/step1/arch.html index d0e0c5ed..48532b70 100644 --- a/docs/step1/arch.html +++ b/docs/step1/arch.html @@ -1513,7 +1513,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"MiniDecaf 编译器结构","level":"3.1","depth":1,"next":{"title":"已提供的语法特性","level":"3.2","depth":1,"path":"docs/step1/provided.md","ref":"docs/step1/provided.md","articles":[]},"previous":{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/arch.md","mtime":"2024-10-04T15:29:32.253Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"MiniDecaf 编译器结构","level":"3.1","depth":1,"next":{"title":"已提供的语法特性","level":"3.2","depth":1,"path":"docs/step1/provided.md","ref":"docs/step1/provided.md","articles":[]},"previous":{"title":"运行实验框架","level":"2.1.5","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/arch.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/example.html b/docs/step1/example.html index ffb60024..cb39c312 100644 --- a/docs/step1/example.html +++ b/docs/step1/example.html @@ -1512,7 +1512,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"3.3.2","depth":2,"next":{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},"previous":{"title":"实验要求","level":"3.3.1","depth":2,"path":"docs/step1/intro.md","ref":"docs/step1/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/example.md","mtime":"2024-10-04T15:29:32.254Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"3.3.2","depth":2,"next":{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},"previous":{"title":"实验要求","level":"3.3.1","depth":2,"path":"docs/step1/intro.md","ref":"docs/step1/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/example.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/intro.html b/docs/step1/intro.html index 3e87e03c..21e5e839 100644 --- a/docs/step1/intro.html +++ b/docs/step1/intro.html @@ -1411,7 +1411,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"3.3.1","depth":2,"next":{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},"previous":{"title":"step1:仅一个 return 的 main 函数","level":"3.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"3.3.1","depth":2,"path":"docs/step1/intro.md","ref":"docs/step1/intro.md","articles":[]},{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.4","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/intro.md","mtime":"2024-10-04T15:29:32.254Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"3.3.1","depth":2,"next":{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},"previous":{"title":"step1:仅一个 return 的 main 函数","level":"3.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"3.3.1","depth":2,"path":"docs/step1/intro.md","ref":"docs/step1/intro.md","articles":[]},{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.4","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/intro.md","mtime":"2024-10-05T11:06:58.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/provided.html b/docs/step1/provided.html index 2c9822b5..a61545f7 100644 --- a/docs/step1/provided.html +++ b/docs/step1/provided.html @@ -1421,7 +1421,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"已提供的语法特性","level":"3.2","depth":1,"next":{"title":"step1:仅一个 return 的 main 函数","level":"3.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"3.3.1","depth":2,"path":"docs/step1/intro.md","ref":"docs/step1/intro.md","articles":[]},{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.4","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]}]},"previous":{"title":"MiniDecaf 编译器结构","level":"3.1","depth":1,"path":"docs/step1/arch.md","ref":"docs/step1/arch.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/provided.md","mtime":"2024-10-04T15:29:32.257Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"已提供的语法特性","level":"3.2","depth":1,"next":{"title":"step1:仅一个 return 的 main 函数","level":"3.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"3.3.1","depth":2,"path":"docs/step1/intro.md","ref":"docs/step1/intro.md","articles":[]},{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.4","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]}]},"previous":{"title":"MiniDecaf 编译器结构","level":"3.1","depth":1,"path":"docs/step1/arch.md","ref":"docs/step1/arch.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/provided.md","mtime":"2024-10-05T11:06:58.716Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/spec.html b/docs/step1/spec.html index 4ba1ecce..887ff4b2 100644 --- a/docs/step1/spec.html +++ b/docs/step1/spec.html @@ -1444,7 +1444,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"3.3.4","depth":2,"next":{"title":"step2:一元操作","level":"4.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.1.1","depth":2,"path":"docs/step2/intro.md","ref":"docs/step2/intro.md","articles":[]},{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},{"title":"规范","level":"4.1.3","depth":2,"path":"docs/step2/spec.md","ref":"docs/step2/spec.md","articles":[]}]},"previous":{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/spec.md","mtime":"2024-10-04T15:29:32.257Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"3.3.4","depth":2,"next":{"title":"step2:一元操作","level":"4.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.1.1","depth":2,"path":"docs/step2/intro.md","ref":"docs/step2/intro.md","articles":[]},{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},{"title":"规范","level":"4.1.3","depth":2,"path":"docs/step2/spec.md","ref":"docs/step2/spec.md","articles":[]}]},"previous":{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/spec.md","mtime":"2024-10-05T11:06:58.716Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/visitor.html b/docs/step1/visitor.html index 75c1c1fc..e9213239 100644 --- a/docs/step1/visitor.html +++ b/docs/step1/visitor.html @@ -1508,7 +1508,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"next":{"title":"规范","level":"3.3.4","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/visitor.md","mtime":"2024-10-04T15:29:32.257Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"Visitor 模式速成","level":"3.3.3","depth":2,"next":{"title":"规范","level":"3.3.4","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"3.3.2","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step1/visitor.md","mtime":"2024-10-05T11:06:58.716Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step10/example.html b/docs/step10/example.html index 453fd62e..0e92ecc8 100644 --- a/docs/step10/example.html +++ b/docs/step10/example.html @@ -1492,7 +1492,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"9.1.2","depth":2,"next":{"title":"规范","level":"9.1.3","depth":2,"path":"docs/step10/spec.md","ref":"docs/step10/spec.md","articles":[]},"previous":{"title":"实验要求","level":"9.1.1","depth":2,"path":"docs/step10/intro.md","ref":"docs/step10/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step10/example.md","mtime":"2024-10-04T15:29:32.257Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"9.1.2","depth":2,"next":{"title":"规范","level":"9.1.3","depth":2,"path":"docs/step10/spec.md","ref":"docs/step10/spec.md","articles":[]},"previous":{"title":"实验要求","level":"9.1.1","depth":2,"path":"docs/step10/intro.md","ref":"docs/step10/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step10/example.md","mtime":"2024-10-05T11:06:58.716Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step10/intro.html b/docs/step10/intro.html index 0a3b5c9d..fcf5a8cb 100644 --- a/docs/step10/intro.html +++ b/docs/step10/intro.html @@ -1438,7 +1438,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"9.1.1","depth":2,"next":{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},"previous":{"title":"step10:全局变量","level":"9.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.1.1","depth":2,"path":"docs/step10/intro.md","ref":"docs/step10/intro.md","articles":[]},{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},{"title":"规范","level":"9.1.3","depth":2,"path":"docs/step10/spec.md","ref":"docs/step10/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step10/intro.md","mtime":"2024-10-04T15:29:32.257Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"9.1.1","depth":2,"next":{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},"previous":{"title":"step10:全局变量","level":"9.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.1.1","depth":2,"path":"docs/step10/intro.md","ref":"docs/step10/intro.md","articles":[]},{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},{"title":"规范","level":"9.1.3","depth":2,"path":"docs/step10/spec.md","ref":"docs/step10/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step10/intro.md","mtime":"2024-10-05T11:06:58.716Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step10/spec.html b/docs/step10/spec.html index 45c00081..c3c4c3fe 100644 --- a/docs/step10/spec.html +++ b/docs/step10/spec.html @@ -1513,7 +1513,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"9.1.3","depth":2,"next":{"title":"step11:数组","level":"9.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.2.1","depth":2,"path":"docs/step11/intro.md","ref":"docs/step11/intro.md","articles":[]},{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},{"title":"规范","level":"9.2.3","depth":2,"path":"docs/step11/spec.md","ref":"docs/step11/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step10/spec.md","mtime":"2024-10-04T15:29:32.258Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"9.1.3","depth":2,"next":{"title":"step11:数组","level":"9.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.2.1","depth":2,"path":"docs/step11/intro.md","ref":"docs/step11/intro.md","articles":[]},{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},{"title":"规范","level":"9.2.3","depth":2,"path":"docs/step11/spec.md","ref":"docs/step11/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step10/spec.md","mtime":"2024-10-05T11:06:58.716Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step11/example.html b/docs/step11/example.html index 394d8998..7f1e30d0 100644 --- a/docs/step11/example.html +++ b/docs/step11/example.html @@ -1486,7 +1486,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"9.2.2","depth":2,"next":{"title":"规范","level":"9.2.3","depth":2,"path":"docs/step11/spec.md","ref":"docs/step11/spec.md","articles":[]},"previous":{"title":"实验要求","level":"9.2.1","depth":2,"path":"docs/step11/intro.md","ref":"docs/step11/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step11/example.md","mtime":"2024-10-04T15:29:32.258Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"9.2.2","depth":2,"next":{"title":"规范","level":"9.2.3","depth":2,"path":"docs/step11/spec.md","ref":"docs/step11/spec.md","articles":[]},"previous":{"title":"实验要求","level":"9.2.1","depth":2,"path":"docs/step11/intro.md","ref":"docs/step11/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step11/example.md","mtime":"2024-10-05T11:06:58.716Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step11/intro.html b/docs/step11/intro.html index 3010122b..501065ae 100644 --- a/docs/step11/intro.html +++ b/docs/step11/intro.html @@ -1442,7 +1442,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"9.2.1","depth":2,"next":{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},"previous":{"title":"step11:数组","level":"9.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.2.1","depth":2,"path":"docs/step11/intro.md","ref":"docs/step11/intro.md","articles":[]},{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},{"title":"规范","level":"9.2.3","depth":2,"path":"docs/step11/spec.md","ref":"docs/step11/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step11/intro.md","mtime":"2024-10-04T15:29:32.258Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"9.2.1","depth":2,"next":{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},"previous":{"title":"step11:数组","level":"9.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.2.1","depth":2,"path":"docs/step11/intro.md","ref":"docs/step11/intro.md","articles":[]},{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},{"title":"规范","level":"9.2.3","depth":2,"path":"docs/step11/spec.md","ref":"docs/step11/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step11/intro.md","mtime":"2024-10-05T11:06:58.717Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step11/spec.html b/docs/step11/spec.html index e127d8fb..9bd36676 100644 --- a/docs/step11/spec.html +++ b/docs/step11/spec.html @@ -1513,7 +1513,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"9.2.3","depth":2,"next":{"title":"step12:为数组添加更多支持","level":"9.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.3.1","depth":2,"path":"docs/step12/intro.md","ref":"docs/step12/intro.md","articles":[]},{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step11/spec.md","mtime":"2024-10-04T15:29:32.258Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"9.2.3","depth":2,"next":{"title":"step12:为数组添加更多支持","level":"9.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.3.1","depth":2,"path":"docs/step12/intro.md","ref":"docs/step12/intro.md","articles":[]},{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"9.2.2","depth":2,"path":"docs/step11/example.md","ref":"docs/step11/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step11/spec.md","mtime":"2024-10-05T11:06:58.717Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step12/example.html b/docs/step12/example.html index 7f383241..b16a3ba1 100644 --- a/docs/step12/example.html +++ b/docs/step12/example.html @@ -1462,7 +1462,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"9.3.2","depth":2,"next":{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]},"previous":{"title":"实验要求","level":"9.3.1","depth":2,"path":"docs/step12/intro.md","ref":"docs/step12/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step12/example.md","mtime":"2024-10-04T15:29:32.258Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"9.3.2","depth":2,"next":{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]},"previous":{"title":"实验要求","level":"9.3.1","depth":2,"path":"docs/step12/intro.md","ref":"docs/step12/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step12/example.md","mtime":"2024-10-05T11:06:58.717Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step12/intro.html b/docs/step12/intro.html index 847a0030..5e30b0e7 100644 --- a/docs/step12/intro.html +++ b/docs/step12/intro.html @@ -1440,7 +1440,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"9.3.1","depth":2,"next":{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},"previous":{"title":"step12:为数组添加更多支持","level":"9.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.3.1","depth":2,"path":"docs/step12/intro.md","ref":"docs/step12/intro.md","articles":[]},{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step12/intro.md","mtime":"2024-10-04T15:29:32.258Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"9.3.1","depth":2,"next":{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},"previous":{"title":"step12:为数组添加更多支持","level":"9.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.3.1","depth":2,"path":"docs/step12/intro.md","ref":"docs/step12/intro.md","articles":[]},{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step12/intro.md","mtime":"2024-10-05T11:06:58.717Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step12/spec.html b/docs/step12/spec.html index c1d727fd..5e10c7c9 100644 --- a/docs/step12/spec.html +++ b/docs/step12/spec.html @@ -1524,7 +1524,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"9.3.3","depth":2,"next":{"title":"选做二说明","level":"10.1","depth":1,"path":"docs/step13/readme.md","ref":"docs/step13/readme.md","articles":[]},"previous":{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step12/spec.md","mtime":"2024-10-04T15:29:32.258Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"9.3.3","depth":2,"next":{"title":"选做二说明","level":"10.1","depth":1,"path":"docs/step13/readme.md","ref":"docs/step13/readme.md","articles":[]},"previous":{"title":"通过例子学习","level":"9.3.2","depth":2,"path":"docs/step12/example.md","ref":"docs/step12/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step12/spec.md","mtime":"2024-10-05T11:06:58.717Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step13/example.html b/docs/step13/example.html index 8b81fbda..1fd0f307 100644 --- a/docs/step13/example.html +++ b/docs/step13/example.html @@ -1536,7 +1536,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验指导","level":"10.2.2","depth":2,"next":{"title":"大实验简介","level":"11.1","depth":1,"path":"docs/contest/intro.md","ref":"docs/contest/intro.md","articles":[]},"previous":{"title":"实验要求","level":"10.2.1","depth":2,"path":"docs/step13/intro.md","ref":"docs/step13/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step13/example.md","mtime":"2024-10-04T15:29:32.259Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验指导","level":"10.2.2","depth":2,"next":{"title":"大实验简介","level":"11.1","depth":1,"path":"docs/contest/intro.md","ref":"docs/contest/intro.md","articles":[]},"previous":{"title":"实验要求","level":"10.2.1","depth":2,"path":"docs/step13/intro.md","ref":"docs/step13/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step13/example.md","mtime":"2024-10-05T11:06:58.717Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step13/intro.html b/docs/step13/intro.html index 0a6632db..2cc35807 100644 --- a/docs/step13/intro.html +++ b/docs/step13/intro.html @@ -1431,7 +1431,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"10.2.1","depth":2,"next":{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]},"previous":{"title":"step13:寄存器分配算法改进","level":"10.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"10.2.1","depth":2,"path":"docs/step13/intro.md","ref":"docs/step13/intro.md","articles":[]},{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step13/intro.md","mtime":"2024-10-04T15:29:32.259Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"10.2.1","depth":2,"next":{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]},"previous":{"title":"step13:寄存器分配算法改进","level":"10.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"10.2.1","depth":2,"path":"docs/step13/intro.md","ref":"docs/step13/intro.md","articles":[]},{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step13/intro.md","mtime":"2024-10-05T11:06:58.717Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step13/readme.html b/docs/step13/readme.html index b5b1c65a..e997b015 100644 --- a/docs/step13/readme.html +++ b/docs/step13/readme.html @@ -1410,7 +1410,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"选做二说明","level":"10.1","depth":1,"next":{"title":"step13:寄存器分配算法改进","level":"10.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"10.2.1","depth":2,"path":"docs/step13/intro.md","ref":"docs/step13/intro.md","articles":[]},{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]}]},"previous":{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step13/readme.md","mtime":"2024-10-04T15:29:32.259Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"选做二说明","level":"10.1","depth":1,"next":{"title":"step13:寄存器分配算法改进","level":"10.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"10.2.1","depth":2,"path":"docs/step13/intro.md","ref":"docs/step13/intro.md","articles":[]},{"title":"实验指导","level":"10.2.2","depth":2,"path":"docs/step13/example.md","ref":"docs/step13/example.md","articles":[]}]},"previous":{"title":"规范","level":"9.3.3","depth":2,"path":"docs/step12/spec.md","ref":"docs/step12/spec.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step13/readme.md","mtime":"2024-10-05T11:06:58.718Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step2/example.html b/docs/step2/example.html index c0973474..e23aa99e 100644 --- a/docs/step2/example.html +++ b/docs/step2/example.html @@ -1507,10 +1507,10 @@

&#x

这一步是 Asm.transform 函数(backend/asm.py)处理的,Asm.transform 接受一个 TAC 输入,输出汇编代码。

def transform(self, prog: TACProg):
     analyzer = LivenessAnalyzer()
-    reg_alloc = BruteRegAlloc(emitter)
 
     for func in prog.funcs:
         emitter = RiscvAsmEmitter(Riscv.AllocatableRegs, Riscv.CallerSaved)
+        reg_alloc = BruteRegAlloc(emitter)
         pair = emitter.selectInstr(func)
         builder = CFGBuilder()
         cfg: CFG = builder.buildFrom(pair[0])
@@ -1610,7 +1610,7 @@ 

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"4.1.2","depth":2,"next":{"title":"规范","level":"4.1.3","depth":2,"path":"docs/step2/spec.md","ref":"docs/step2/spec.md","articles":[]},"previous":{"title":"实验要求","level":"4.1.1","depth":2,"path":"docs/step2/intro.md","ref":"docs/step2/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step2/example.md","mtime":"2024-10-04T15:29:32.259Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"4.1.2","depth":2,"next":{"title":"规范","level":"4.1.3","depth":2,"path":"docs/step2/spec.md","ref":"docs/step2/spec.md","articles":[]},"previous":{"title":"实验要求","level":"4.1.1","depth":2,"path":"docs/step2/intro.md","ref":"docs/step2/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step2/example.md","mtime":"2024-10-05T11:06:58.718Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step2/intro.html b/docs/step2/intro.html index c68f9d68..c0685f05 100644 --- a/docs/step2/intro.html +++ b/docs/step2/intro.html @@ -1438,7 +1438,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"4.1.1","depth":2,"next":{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},"previous":{"title":"step2:一元操作","level":"4.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.1.1","depth":2,"path":"docs/step2/intro.md","ref":"docs/step2/intro.md","articles":[]},{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},{"title":"规范","level":"4.1.3","depth":2,"path":"docs/step2/spec.md","ref":"docs/step2/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step2/intro.md","mtime":"2024-10-04T15:29:32.259Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"4.1.1","depth":2,"next":{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},"previous":{"title":"step2:一元操作","level":"4.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.1.1","depth":2,"path":"docs/step2/intro.md","ref":"docs/step2/intro.md","articles":[]},{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},{"title":"规范","level":"4.1.3","depth":2,"path":"docs/step2/spec.md","ref":"docs/step2/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step2/intro.md","mtime":"2024-10-05T11:06:58.718Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step2/spec.html b/docs/step2/spec.html index 409cf9aa..e5be86d2 100644 --- a/docs/step2/spec.html +++ b/docs/step2/spec.html @@ -1445,7 +1445,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"4.1.3","depth":2,"next":{"title":"step3:加减乘除模","level":"4.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.2.1","depth":2,"path":"docs/step3/intro.md","ref":"docs/step3/intro.md","articles":[]},{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},{"title":"规范","level":"4.2.4","depth":2,"path":"docs/step3/spec.md","ref":"docs/step3/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step2/spec.md","mtime":"2024-10-04T15:29:32.260Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"4.1.3","depth":2,"next":{"title":"step3:加减乘除模","level":"4.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.2.1","depth":2,"path":"docs/step3/intro.md","ref":"docs/step3/intro.md","articles":[]},{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},{"title":"规范","level":"4.2.4","depth":2,"path":"docs/step3/spec.md","ref":"docs/step3/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"4.1.2","depth":2,"path":"docs/step2/example.md","ref":"docs/step2/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step2/spec.md","mtime":"2024-10-05T11:06:58.718Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/example.html b/docs/step3/example.html index 2b107225..a2b22b2e 100644 --- a/docs/step3/example.html +++ b/docs/step3/example.html @@ -1489,7 +1489,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"4.2.2","depth":2,"next":{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},"previous":{"title":"实验要求","level":"4.2.1","depth":2,"path":"docs/step3/intro.md","ref":"docs/step3/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/example.md","mtime":"2024-10-04T15:29:32.260Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"4.2.2","depth":2,"next":{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},"previous":{"title":"实验要求","level":"4.2.1","depth":2,"path":"docs/step3/intro.md","ref":"docs/step3/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/example.md","mtime":"2024-10-05T11:06:58.718Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/intro.html b/docs/step3/intro.html index 14f472c0..66c2082e 100644 --- a/docs/step3/intro.html +++ b/docs/step3/intro.html @@ -1454,7 +1454,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"4.2.1","depth":2,"next":{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},"previous":{"title":"step3:加减乘除模","level":"4.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.2.1","depth":2,"path":"docs/step3/intro.md","ref":"docs/step3/intro.md","articles":[]},{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},{"title":"规范","level":"4.2.4","depth":2,"path":"docs/step3/spec.md","ref":"docs/step3/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/intro.md","mtime":"2024-10-04T15:29:32.260Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"4.2.1","depth":2,"next":{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},"previous":{"title":"step3:加减乘除模","level":"4.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.2.1","depth":2,"path":"docs/step3/intro.md","ref":"docs/step3/intro.md","articles":[]},{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},{"title":"规范","level":"4.2.4","depth":2,"path":"docs/step3/spec.md","ref":"docs/step3/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/intro.md","mtime":"2024-10-05T11:06:58.718Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/precedence.html b/docs/step3/precedence.html index 48e3c70a..e0dffce1 100644 --- a/docs/step3/precedence.html +++ b/docs/step3/precedence.html @@ -1437,7 +1437,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"优先级和结合性","level":"4.2.3","depth":2,"next":{"title":"规范","level":"4.2.4","depth":2,"path":"docs/step3/spec.md","ref":"docs/step3/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/precedence.md","mtime":"2024-10-04T15:29:32.261Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"优先级和结合性","level":"4.2.3","depth":2,"next":{"title":"规范","level":"4.2.4","depth":2,"path":"docs/step3/spec.md","ref":"docs/step3/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"4.2.2","depth":2,"path":"docs/step3/example.md","ref":"docs/step3/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/precedence.md","mtime":"2024-10-05T11:06:58.719Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/spec.html b/docs/step3/spec.html index b5c633f3..bc17b75b 100644 --- a/docs/step3/spec.html +++ b/docs/step3/spec.html @@ -1453,7 +1453,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"4.2.4","depth":2,"next":{"title":"step4:比较和逻辑表达式","level":"4.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.3.1","depth":2,"path":"docs/step4/intro.md","ref":"docs/step4/intro.md","articles":[]},{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},{"title":"规范","level":"4.3.3","depth":2,"path":"docs/step4/spec.md","ref":"docs/step4/spec.md","articles":[]}]},"previous":{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/spec.md","mtime":"2024-10-04T15:29:32.261Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"4.2.4","depth":2,"next":{"title":"step4:比较和逻辑表达式","level":"4.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.3.1","depth":2,"path":"docs/step4/intro.md","ref":"docs/step4/intro.md","articles":[]},{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},{"title":"规范","level":"4.3.3","depth":2,"path":"docs/step4/spec.md","ref":"docs/step4/spec.md","articles":[]}]},"previous":{"title":"优先级和结合性","level":"4.2.3","depth":2,"path":"docs/step3/precedence.md","ref":"docs/step3/precedence.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step3/spec.md","mtime":"2024-10-05T11:06:58.719Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step4/example.html b/docs/step4/example.html index f1780c25..68c081af 100644 --- a/docs/step4/example.html +++ b/docs/step4/example.html @@ -1486,7 +1486,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"4.3.2","depth":2,"next":{"title":"规范","level":"4.3.3","depth":2,"path":"docs/step4/spec.md","ref":"docs/step4/spec.md","articles":[]},"previous":{"title":"实验要求","level":"4.3.1","depth":2,"path":"docs/step4/intro.md","ref":"docs/step4/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step4/example.md","mtime":"2024-10-04T15:29:32.261Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"4.3.2","depth":2,"next":{"title":"规范","level":"4.3.3","depth":2,"path":"docs/step4/spec.md","ref":"docs/step4/spec.md","articles":[]},"previous":{"title":"实验要求","level":"4.3.1","depth":2,"path":"docs/step4/intro.md","ref":"docs/step4/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step4/example.md","mtime":"2024-10-05T11:06:58.719Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step4/intro.html b/docs/step4/intro.html index bd0705d4..7848eb9f 100644 --- a/docs/step4/intro.html +++ b/docs/step4/intro.html @@ -1454,7 +1454,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"4.3.1","depth":2,"next":{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},"previous":{"title":"step4:比较和逻辑表达式","level":"4.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.3.1","depth":2,"path":"docs/step4/intro.md","ref":"docs/step4/intro.md","articles":[]},{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},{"title":"规范","level":"4.3.3","depth":2,"path":"docs/step4/spec.md","ref":"docs/step4/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step4/intro.md","mtime":"2024-10-04T15:29:32.261Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"4.3.1","depth":2,"next":{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},"previous":{"title":"step4:比较和逻辑表达式","level":"4.3","depth":1,"ref":"","articles":[{"title":"实验要求","level":"4.3.1","depth":2,"path":"docs/step4/intro.md","ref":"docs/step4/intro.md","articles":[]},{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},{"title":"规范","level":"4.3.3","depth":2,"path":"docs/step4/spec.md","ref":"docs/step4/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step4/intro.md","mtime":"2024-10-05T11:06:58.720Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step4/spec.html b/docs/step4/spec.html index b8c11125..f60c944d 100644 --- a/docs/step4/spec.html +++ b/docs/step4/spec.html @@ -1476,7 +1476,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"4.3.3","depth":2,"next":{"title":"step5:局部变量和赋值","level":"5.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"5.1.1","depth":2,"path":"docs/step5/intro.md","ref":"docs/step5/intro.md","articles":[]},{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},{"title":"规范","level":"5.1.3","depth":2,"path":"docs/step5/spec.md","ref":"docs/step5/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step4/spec.md","mtime":"2024-10-04T15:29:32.261Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"4.3.3","depth":2,"next":{"title":"step5:局部变量和赋值","level":"5.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"5.1.1","depth":2,"path":"docs/step5/intro.md","ref":"docs/step5/intro.md","articles":[]},{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},{"title":"规范","level":"5.1.3","depth":2,"path":"docs/step5/spec.md","ref":"docs/step5/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"4.3.2","depth":2,"path":"docs/step4/example.md","ref":"docs/step4/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step4/spec.md","mtime":"2024-10-05T11:06:58.720Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step5/example.html b/docs/step5/example.html index eab3aeb9..ffc3e77f 100644 --- a/docs/step5/example.html +++ b/docs/step5/example.html @@ -1583,7 +1583,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"5.1.2","depth":2,"next":{"title":"规范","level":"5.1.3","depth":2,"path":"docs/step5/spec.md","ref":"docs/step5/spec.md","articles":[]},"previous":{"title":"实验要求","level":"5.1.1","depth":2,"path":"docs/step5/intro.md","ref":"docs/step5/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step5/example.md","mtime":"2024-10-04T15:29:32.261Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"5.1.2","depth":2,"next":{"title":"规范","level":"5.1.3","depth":2,"path":"docs/step5/spec.md","ref":"docs/step5/spec.md","articles":[]},"previous":{"title":"实验要求","level":"5.1.1","depth":2,"path":"docs/step5/intro.md","ref":"docs/step5/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step5/example.md","mtime":"2024-10-05T11:06:58.720Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step5/intro.html b/docs/step5/intro.html index 04c23ee0..189f28af 100644 --- a/docs/step5/intro.html +++ b/docs/step5/intro.html @@ -1459,7 +1459,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"5.1.1","depth":2,"next":{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},"previous":{"title":"step5:局部变量和赋值","level":"5.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"5.1.1","depth":2,"path":"docs/step5/intro.md","ref":"docs/step5/intro.md","articles":[]},{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},{"title":"规范","level":"5.1.3","depth":2,"path":"docs/step5/spec.md","ref":"docs/step5/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step5/intro.md","mtime":"2024-10-04T15:29:32.261Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"5.1.1","depth":2,"next":{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},"previous":{"title":"step5:局部变量和赋值","level":"5.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"5.1.1","depth":2,"path":"docs/step5/intro.md","ref":"docs/step5/intro.md","articles":[]},{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},{"title":"规范","level":"5.1.3","depth":2,"path":"docs/step5/spec.md","ref":"docs/step5/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step5/intro.md","mtime":"2024-10-05T11:06:58.720Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step5/spec.html b/docs/step5/spec.html index ba6fa696..836932ed 100644 --- a/docs/step5/spec.html +++ b/docs/step5/spec.html @@ -1491,7 +1491,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"5.1.3","depth":2,"next":{"title":"step6:作用域和块语句","level":"6.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"6.1.1","depth":2,"path":"docs/step6/intro.md","ref":"docs/step6/intro.md","articles":[]},{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},{"title":"规范","level":"6.1.4","depth":2,"path":"docs/step6/spec.md","ref":"docs/step6/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step5/spec.md","mtime":"2024-10-04T15:29:32.262Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"5.1.3","depth":2,"next":{"title":"step6:作用域和块语句","level":"6.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"6.1.1","depth":2,"path":"docs/step6/intro.md","ref":"docs/step6/intro.md","articles":[]},{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},{"title":"规范","level":"6.1.4","depth":2,"path":"docs/step6/spec.md","ref":"docs/step6/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"5.1.2","depth":2,"path":"docs/step5/example.md","ref":"docs/step5/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step5/spec.md","mtime":"2024-10-05T11:06:58.721Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/dataflow.html b/docs/step6/dataflow.html index 2356663b..1e010903 100644 --- a/docs/step6/dataflow.html +++ b/docs/step6/dataflow.html @@ -1556,7 +1556,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"数据流分析","level":"6.1.3","depth":2,"next":{"title":"规范","level":"6.1.4","depth":2,"path":"docs/step6/spec.md","ref":"docs/step6/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/dataflow.md","mtime":"2024-10-04T15:29:32.262Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"数据流分析","level":"6.1.3","depth":2,"next":{"title":"规范","level":"6.1.4","depth":2,"path":"docs/step6/spec.md","ref":"docs/step6/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/dataflow.md","mtime":"2024-10-05T11:06:58.721Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/example.html b/docs/step6/example.html index 7a4ec0c7..2c4254c8 100644 --- a/docs/step6/example.html +++ b/docs/step6/example.html @@ -1580,7 +1580,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"6.1.2","depth":2,"next":{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},"previous":{"title":"实验要求","level":"6.1.1","depth":2,"path":"docs/step6/intro.md","ref":"docs/step6/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/example.md","mtime":"2024-10-04T15:29:32.263Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"6.1.2","depth":2,"next":{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},"previous":{"title":"实验要求","level":"6.1.1","depth":2,"path":"docs/step6/intro.md","ref":"docs/step6/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/example.md","mtime":"2024-10-05T11:06:58.722Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/intro.html b/docs/step6/intro.html index 6603e603..493fbfe4 100644 --- a/docs/step6/intro.html +++ b/docs/step6/intro.html @@ -1446,7 +1446,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"6.1.1","depth":2,"next":{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},"previous":{"title":"step6:作用域和块语句","level":"6.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"6.1.1","depth":2,"path":"docs/step6/intro.md","ref":"docs/step6/intro.md","articles":[]},{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},{"title":"规范","level":"6.1.4","depth":2,"path":"docs/step6/spec.md","ref":"docs/step6/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/intro.md","mtime":"2024-10-04T15:29:32.263Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"6.1.1","depth":2,"next":{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},"previous":{"title":"step6:作用域和块语句","level":"6.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"6.1.1","depth":2,"path":"docs/step6/intro.md","ref":"docs/step6/intro.md","articles":[]},{"title":"通过例子学习","level":"6.1.2","depth":2,"path":"docs/step6/example.md","ref":"docs/step6/example.md","articles":[]},{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},{"title":"规范","level":"6.1.4","depth":2,"path":"docs/step6/spec.md","ref":"docs/step6/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/intro.md","mtime":"2024-10-05T11:06:58.722Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/spec.html b/docs/step6/spec.html index e682cd0c..605fa61e 100644 --- a/docs/step6/spec.html +++ b/docs/step6/spec.html @@ -1496,7 +1496,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"6.1.4","depth":2,"next":{"title":"step7:条件语句","level":"7.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.1.1","depth":2,"path":"docs/step7/intro.md","ref":"docs/step7/intro.md","articles":[]},{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},{"title":"规范","level":"7.1.3","depth":2,"path":"docs/step7/spec.md","ref":"docs/step7/spec.md","articles":[]}]},"previous":{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/spec.md","mtime":"2024-10-04T15:29:32.265Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"6.1.4","depth":2,"next":{"title":"step7:条件语句","level":"7.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.1.1","depth":2,"path":"docs/step7/intro.md","ref":"docs/step7/intro.md","articles":[]},{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},{"title":"规范","level":"7.1.3","depth":2,"path":"docs/step7/spec.md","ref":"docs/step7/spec.md","articles":[]}]},"previous":{"title":"数据流分析","level":"6.1.3","depth":2,"path":"docs/step6/dataflow.md","ref":"docs/step6/dataflow.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step6/spec.md","mtime":"2024-10-05T11:06:58.724Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step7/example.html b/docs/step7/example.html index 775be2b1..793b658e 100644 --- a/docs/step7/example.html +++ b/docs/step7/example.html @@ -1530,7 +1530,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"7.1.2","depth":2,"next":{"title":"规范","level":"7.1.3","depth":2,"path":"docs/step7/spec.md","ref":"docs/step7/spec.md","articles":[]},"previous":{"title":"实验要求","level":"7.1.1","depth":2,"path":"docs/step7/intro.md","ref":"docs/step7/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step7/example.md","mtime":"2024-10-04T15:29:32.265Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"7.1.2","depth":2,"next":{"title":"规范","level":"7.1.3","depth":2,"path":"docs/step7/spec.md","ref":"docs/step7/spec.md","articles":[]},"previous":{"title":"实验要求","level":"7.1.1","depth":2,"path":"docs/step7/intro.md","ref":"docs/step7/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step7/example.md","mtime":"2024-10-05T11:06:58.724Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step7/intro.html b/docs/step7/intro.html index b1630c8d..9e32487d 100644 --- a/docs/step7/intro.html +++ b/docs/step7/intro.html @@ -1446,7 +1446,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"7.1.1","depth":2,"next":{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},"previous":{"title":"step7:条件语句","level":"7.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.1.1","depth":2,"path":"docs/step7/intro.md","ref":"docs/step7/intro.md","articles":[]},{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},{"title":"规范","level":"7.1.3","depth":2,"path":"docs/step7/spec.md","ref":"docs/step7/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step7/intro.md","mtime":"2024-10-04T15:29:32.265Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"7.1.1","depth":2,"next":{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},"previous":{"title":"step7:条件语句","level":"7.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.1.1","depth":2,"path":"docs/step7/intro.md","ref":"docs/step7/intro.md","articles":[]},{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},{"title":"规范","level":"7.1.3","depth":2,"path":"docs/step7/spec.md","ref":"docs/step7/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step7/intro.md","mtime":"2024-10-05T11:06:58.724Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step7/spec.html b/docs/step7/spec.html index 308f3279..97774957 100644 --- a/docs/step7/spec.html +++ b/docs/step7/spec.html @@ -1498,7 +1498,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"7.1.3","depth":2,"next":{"title":"step8:循环语句","level":"7.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.2.1","depth":2,"path":"docs/step8/intro.md","ref":"docs/step8/intro.md","articles":[]},{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},{"title":"规范","level":"7.2.3","depth":2,"path":"docs/step8/spec.md","ref":"docs/step8/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step7/spec.md","mtime":"2024-10-04T15:29:32.265Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"7.1.3","depth":2,"next":{"title":"step8:循环语句","level":"7.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.2.1","depth":2,"path":"docs/step8/intro.md","ref":"docs/step8/intro.md","articles":[]},{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},{"title":"规范","level":"7.2.3","depth":2,"path":"docs/step8/spec.md","ref":"docs/step8/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"7.1.2","depth":2,"path":"docs/step7/example.md","ref":"docs/step7/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step7/spec.md","mtime":"2024-10-05T11:06:58.724Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step8/example.html b/docs/step8/example.html index e3d6314f..2f2d255e 100644 --- a/docs/step8/example.html +++ b/docs/step8/example.html @@ -1527,7 +1527,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"7.2.2","depth":2,"next":{"title":"规范","level":"7.2.3","depth":2,"path":"docs/step8/spec.md","ref":"docs/step8/spec.md","articles":[]},"previous":{"title":"实验要求","level":"7.2.1","depth":2,"path":"docs/step8/intro.md","ref":"docs/step8/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step8/example.md","mtime":"2024-10-04T15:29:32.265Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"7.2.2","depth":2,"next":{"title":"规范","level":"7.2.3","depth":2,"path":"docs/step8/spec.md","ref":"docs/step8/spec.md","articles":[]},"previous":{"title":"实验要求","level":"7.2.1","depth":2,"path":"docs/step8/intro.md","ref":"docs/step8/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step8/example.md","mtime":"2024-10-05T11:06:58.724Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step8/intro.html b/docs/step8/intro.html index 788e7aef..a86f4621 100644 --- a/docs/step8/intro.html +++ b/docs/step8/intro.html @@ -1438,7 +1438,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"7.2.1","depth":2,"next":{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},"previous":{"title":"step8:循环语句","level":"7.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.2.1","depth":2,"path":"docs/step8/intro.md","ref":"docs/step8/intro.md","articles":[]},{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},{"title":"规范","level":"7.2.3","depth":2,"path":"docs/step8/spec.md","ref":"docs/step8/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step8/intro.md","mtime":"2024-10-04T15:29:32.265Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"7.2.1","depth":2,"next":{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},"previous":{"title":"step8:循环语句","level":"7.2","depth":1,"ref":"","articles":[{"title":"实验要求","level":"7.2.1","depth":2,"path":"docs/step8/intro.md","ref":"docs/step8/intro.md","articles":[]},{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},{"title":"规范","level":"7.2.3","depth":2,"path":"docs/step8/spec.md","ref":"docs/step8/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step8/intro.md","mtime":"2024-10-05T11:06:58.724Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step8/spec.html b/docs/step8/spec.html index 4cf42ce3..d01e3957 100644 --- a/docs/step8/spec.html +++ b/docs/step8/spec.html @@ -1508,7 +1508,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"7.2.3","depth":2,"next":{"title":"step9:函数","level":"8.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"8.1.1","depth":2,"path":"docs/step9/intro.md","ref":"docs/step9/intro.md","articles":[]},{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},{"title":"规范","level":"8.1.3","depth":2,"path":"docs/step9/spec.md","ref":"docs/step9/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step8/spec.md","mtime":"2024-10-04T15:29:32.266Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"7.2.3","depth":2,"next":{"title":"step9:函数","level":"8.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"8.1.1","depth":2,"path":"docs/step9/intro.md","ref":"docs/step9/intro.md","articles":[]},{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},{"title":"规范","level":"8.1.3","depth":2,"path":"docs/step9/spec.md","ref":"docs/step9/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"7.2.2","depth":2,"path":"docs/step8/example.md","ref":"docs/step8/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step8/spec.md","mtime":"2024-10-05T11:06:58.725Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step9/example.html b/docs/step9/example.html index a55eb8f6..251fc644 100644 --- a/docs/step9/example.html +++ b/docs/step9/example.html @@ -1661,7 +1661,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"8.1.2","depth":2,"next":{"title":"规范","level":"8.1.3","depth":2,"path":"docs/step9/spec.md","ref":"docs/step9/spec.md","articles":[]},"previous":{"title":"实验要求","level":"8.1.1","depth":2,"path":"docs/step9/intro.md","ref":"docs/step9/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step9/example.md","mtime":"2024-10-04T15:29:32.266Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"8.1.2","depth":2,"next":{"title":"规范","level":"8.1.3","depth":2,"path":"docs/step9/spec.md","ref":"docs/step9/spec.md","articles":[]},"previous":{"title":"实验要求","level":"8.1.1","depth":2,"path":"docs/step9/intro.md","ref":"docs/step9/intro.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step9/example.md","mtime":"2024-10-05T11:06:58.725Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step9/intro.html b/docs/step9/intro.html index 9d159264..6799329c 100644 --- a/docs/step9/intro.html +++ b/docs/step9/intro.html @@ -1455,7 +1455,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验要求","level":"8.1.1","depth":2,"next":{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},"previous":{"title":"step9:函数","level":"8.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"8.1.1","depth":2,"path":"docs/step9/intro.md","ref":"docs/step9/intro.md","articles":[]},{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},{"title":"规范","level":"8.1.3","depth":2,"path":"docs/step9/spec.md","ref":"docs/step9/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step9/intro.md","mtime":"2024-10-04T15:29:32.266Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验要求","level":"8.1.1","depth":2,"next":{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},"previous":{"title":"step9:函数","level":"8.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"8.1.1","depth":2,"path":"docs/step9/intro.md","ref":"docs/step9/intro.md","articles":[]},{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},{"title":"规范","level":"8.1.3","depth":2,"path":"docs/step9/spec.md","ref":"docs/step9/spec.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step9/intro.md","mtime":"2024-10-05T11:06:58.725Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step9/spec.html b/docs/step9/spec.html index c584f2c2..9514c41a 100644 --- a/docs/step9/spec.html +++ b/docs/step9/spec.html @@ -1521,7 +1521,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"8.1.3","depth":2,"next":{"title":"step10:全局变量","level":"9.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.1.1","depth":2,"path":"docs/step10/intro.md","ref":"docs/step10/intro.md","articles":[]},{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},{"title":"规范","level":"9.1.3","depth":2,"path":"docs/step10/spec.md","ref":"docs/step10/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step9/spec.md","mtime":"2024-10-04T15:29:32.271Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"8.1.3","depth":2,"next":{"title":"step10:全局变量","level":"9.1","depth":1,"ref":"","articles":[{"title":"实验要求","level":"9.1.1","depth":2,"path":"docs/step10/intro.md","ref":"docs/step10/intro.md","articles":[]},{"title":"通过例子学习","level":"9.1.2","depth":2,"path":"docs/step10/example.md","ref":"docs/step10/example.md","articles":[]},{"title":"规范","level":"9.1.3","depth":2,"path":"docs/step10/spec.md","ref":"docs/step10/spec.md","articles":[]}]},"previous":{"title":"通过例子学习","level":"8.1.2","depth":2,"path":"docs/step9/example.md","ref":"docs/step9/example.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"docs/step9/spec.md","mtime":"2024-10-05T11:06:58.730Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/index.html b/index.html index f2339bc3..72d88b86 100644 --- a/index.html +++ b/index.html @@ -1521,7 +1521,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验简介","level":"1.1","depth":1,"next":{"title":"实验进度安排","level":"1.2","depth":1,"path":"docs/misc/schedule.md","ref":"docs/misc/schedule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"README.md","mtime":"2024-10-04T15:29:32.251Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-04T15:30:16.923Z"},"basePath":".","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验简介","level":"1.1","depth":1,"next":{"title":"实验进度安排","level":"1.2","depth":1,"path":"docs/misc/schedule.md","ref":"docs/misc/schedule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["hide-element","chapter-fold","katex","alerts","emphasize","mermaid-gb3","codeblock-label","code","search-pro","click-reveal","expandable-chapters-interactive","localized-footer","intopic-toc"],"pluginsConfig":{"chapter-fold":{},"emphasize":{},"intopic-toc":{"isCollapsed":true,"isScrollspyActive":true,"label":"In this article","maxDepth":6,"mode":"nested","selector":".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6","visible":true},"codeblock-label":{},"search-pro":{},"search":{},"localized-footer":{"filename":"gitalk.html","hline":"true"},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"code":{"copyButtons":true},"hide-element":{},"katex":{},"fontsettings":{"theme":"white","family":"sans","size":1},"click-reveal":{},"highlight":{},"mermaid-gb3":{},"expandable-chapters-interactive":{},"alerts":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"README.md","mtime":"2024-10-05T11:06:58.710Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2024-10-05T11:07:42.875Z"},"basePath":".","book":{"language":""}}); }); diff --git a/search_index.json b/search_index.json index 26613c15..2f930f29 100644 --- a/search_index.json +++ b/search_index.json @@ -1 +1 @@ -{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["(i","+","./reports/.pdf","./reports/stag",".gitlab","0","0;","1","1.","1.pdf。","10%。","10%,对思考题的回答占","13","1;","2","20%","2023","2024","5","7%","8%","80%","=",">","a[(l+r)/2];","a[],","a[i]","a[i];","a[j]","a[j];","b","branch","branch,当切换到一个新的","break;","c","checkout","ci","ci.yml","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","commit","compiler:","decaf","decaf,我们在新的且更简单的语言规范下复用了","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github),托管至私有仓库的请不要给其他同学任何访问权限。","http://scheme2006.cs.uchicago.edu/11","https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf","int","j","j)","j);","l)","l,","l;","minidecaf","nora","nqcc","p","p)","pdf","prepare.sh","qemu/spik","qsort(a,","qsort(int","r)","r;","return","risc","sandler","stage","stage1","stage5","stage6","stage7","stage7,否则无法获得对应分数。","stage,每个","step","step12)。在这个","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step4)。在这个","step8)。在这个","step。每个","u","u;","v","write","{","}","↩","上实现时,你可以用","下的","个基础关卡,你需要通过它们以拿到一定的分数(35%)。","个步骤(其中","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你将实现常量操作(加减乘除模等)。","中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。","中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。","中你将第一次支持变量声明与赋值。","中你的编译器将支持作用域,以便支持后续的条件和循环。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中描述了如何运行","中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。","中,你将支持全局变量和数组,数组中包括全局数组和局部数组。","为","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评","为实验框架熟悉,不需要修改框架代码)。后续的","为环境配置和框架学习,无需进行编程,不计入成绩。","为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评","了。","从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。","代码编译到","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","会对应于一个","作用域和块语句(step6)。在这个","你做了哪些工作(即你的实验内容)","你的学号","你的学号姓名","全局变量和数组(step10","关于名字由来,由于往年的实验叫","其中,stage0","具有代表性的例子介绍它的整个编译流程。在之前","函数(step9)。在这个","包含多个","参考资料","及触发此次","变量和赋值(step5)。在这个","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","后才能尝试","和","在","备注","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你认为成绩有问题,请及时与助教联系。","学术规范","实现","实验思路指导与问答墙","实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","实验报告中需要包括:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验概述","实验简介","实验起点和基本要求","寄存器分配算法(step13)。在这个","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于每个阶段(stage):","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","常量表达式(step2","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","我们以","我们只接受","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将由易到难完成","我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。","指导书上的思考题","时间安排及补交政策请看实验进度安排。","是一个","是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。","最后一次触发的","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本次实验一共设置","条件和循环(step7","来创建一个新的分支。","格式的实验报告。你需要将报告放在仓库的","每个","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","测试中看到。","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","的","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的实验报告需要放在","的帐号名后,助教会给每个人建立一个私有的仓库,url","的成绩并替代期末考试对应权重)。","的成绩并替代期末考试对应权重)。注意,你需要在完成","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的文档都将以如下形式组织:首先我们会介绍当前","的编译器框架,所以今年的实验就叫","相关资源","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","程序代码编译成","第一个编译器(step0","简要叙述,为了完成这个","组织如下:","组织实验,各个","组织文档,每个","编译实验","编译实验分为多个","评分会以每个","评分标准","诚信守则","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的完整编译器,能够把","语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。","语言相同。","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。","课程问答墙","路径,比如","这个","里的实验报告为准,详见补交政策。","重新设计”的过程,一步步实现从简单到复杂的","需要用到的知识点,其次我们会以一个当前",",将作业提交到那个仓库即可。"],"docs/misc/schedule.html":["(k","+","0","0的思考题请与stage","1","10","1一起提交。","2","24:00","3","4","5","6","7","branch","ci","ci,这不会对你的提交/补交产生影响。","k","pipelin","push","retri","stage","不需要你编写任何代码,stage","中你的代码会得到不一致的结果,请联系助教。","作用域(占比:7%)","假设","全局变量和数组(占比:7%)","函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。","函数(占比:7%)","到远端仓库的时间。并且,你也可以随意地","反复运行","变量(占比:7%)","天内这个","如果在多次","实验进度安排","寄存器分配与代码优化(占比:8%)","常量表达式(占比:7%)","必做部分:","截止","所有截止时间均为所标日期的23:59:59(utc+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。","控制语句(占比:7%)","提交/补交时间是该","日","是某个","更具体来讲是创建","更新的时间,这几乎等于你","最后一次触发","熟悉框架和基础知识","的","的截止时间;","的时间,而不是","的时间;","第三周周日(9.29):stage","第八周周日(11.3):stage","第六周周日(10.20):stage","第十五周周日(12.22):stage","第十六周周日(12.29):stage","第十周周日(11.17):stage","第十四周周日(12.15):stage","第四周周日(10.6):stage","补交政策","选做实验不接受补交。","选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。","选做部分:","(占比:0%)"],"docs/step0/errate.html":["./requirements.txt","1","1.pdf。","3.9","_t1","a:","a:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块","a:可以通过本地测试或者通过","a:如果你安装了多版本的","basic","block","branch","bruteregalloc","cfg,可以参见","ci","encount","error:","git.tsinghua","instal","m","multi_nesting.c","non","pass。","pdf","pip","print","python3.9","python,使用","q:","q:使用","q:如何提交课程报告?","q:我怎样才能知道我的提交通过了所有测试用例?","r","reports/.pdf,比如","reports/stag","return","stage","stage1","step7","utils.error.illegalargumentexception:","上,如","下的","中,由","代码框架","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","分支)。","前就被释放了,后端会尝试到栈中寻找","勘误表","命令无法正确安装依赖?","命令未必会对应","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","如果关于报告提交有任何问题,请及时联系助教。","安装依赖。","对应","并且不会找到,出现报错:","所对应的寄存器在","最新的","格式提交到","法调试,发现是","版本的包管理器。请尝试使用","生成的以下中间代码无法成功生成目标代码。","的实验报告需要放在","的注释里给出的提示。","经过使用","结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","自己的仓库中,放在仓库根目录下的","请将实验报告以","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","这个"],"docs/ref/riscv.html":["!x;","%","(godbolt.org)来快速获得一个riscv指令的实现","(ratified)中的volum","//","1,","24","25","8会被编译器优化为5","a0,a0","assembl","bits)中的任何一个,在编译选项中写上","chapter","elf","explor","foo(int","foo.c","foo.s(记得加","foo:","gcc","handbook","instruct","int","list","mabi=ilp32","march=rv32im","mod(int","o","o2","o2(减少不必要的指令生成),翻译一条指令看看效果。","o3","programmer’","ret","return","risc","riscv64","rv32/64g","s","seqz","set","specif","specification。","unknown","unprivileg","v","v(32","v官方资料","v指令","v相关内容补充","x","x)","x,","y)","y;","{","}","不出意外你会获得如下结果:","不建议阅读,太过冗长,这对于编译知识提升非常有限。","你可以使用compil","你可以通过","参考资料","在左边输入以下例子","在线编译器","如何快速查询risc","如果你时间充足,你可以阅读:","官方","或者","把右边的编译器选为risc","本地编译器","比如5","汇编","注意:此处不要直接写一个可以计算得到结果的式子","编译如下程序来了解如何翻译逻辑非运算符到","请下载isa","选项):"],"docs/step0/intro.html":["#","192.168.1.1,端口为","2024000001@192.168.1.1","2024000001,服务器","2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。","223","223,则命令为:","23.04","3.11.4","ip","p","port","python","ssh","ubuntu","username@ip","v","vscode","为了安全起见,服务器仅可通过校内网络访问。","也是可以使用ssh远程写代码的,参考这里。","假如你的账号为","免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。","地址为","如何使用","如果你使用我们提供的服务器,你可以直接来看risc","实验环境简介","建议配置","提示:","服务器环境如下:","服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。","注意:","登陆服务器?","的工具链使用和运行实验框架。","禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。"],"docs/step0/riscv_env.html":["#","#includ","$","$。例如,让你运行","$,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。","&&","./a.out","./a.out:","./configur","/usr/","/usr/local/bin/pk,要么每次都用完整路径。","1.","10.1.0","2.","20.04","2020.08.2","32","64",">","a.out","a.out。但","a.out,具体操作如下","appl","apt","bash","bbl","binari","brew","c","cd","clone","compilation)。","compiler:","cp","darwin.tar.gz,不过还需要通过","darwin.tar.gz,只用里面的","devic","dtc","dtc):","echo","elf","error\"","exec","execut","file:","format","gcc","gcc,用来生成","gcc,这种","git","github","hello","homebrew","https://blog.csdn.net/daybreak222/article/details/87968078","https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git","instal","int","isa","isa=rv32g","linux","linux/mac","linux用户","linux,spik","list=riscv32","loader","ls","lts;","mabi=ilp32","mac","maco","mac),window","mac),可以尝试自行根据","main()","make","march=rv32im","minidecaf","o3","os用户,假设你已经将spike加入环境变量,将pk加入系统目录","path=$path:/path/to/riscv","pk","pk。","pk,不过那是","prebuilt","prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to","prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc","prefix=/usr/loc","printf(\"hello","qemu","qemu/spik","qemu。","qemu,即","r","risc","riscv","riscv/riscv","riscv32","riscv64","shell","shell,那加到","sifiv","sim","spike","spike(会自动安装","store,搜索ubuntu,选择ubuntu20.04.","tap","target","test.c","tree","ubuntu","ubuntu,","ubuntu14/*","ubuntu14/改名为","ubuntu,你需要自己编译出可用的用户态","unknown","user","user。","v","version","virtualbox","vmware","win10","window","world!","world!\"输出。","world!\\n\");","wsl","wsl,或者运行一个虚拟机。","wsl,通过","x86","x86_64","x(然后回车)。如果开头没有","x,那你最终敲到终端里的是","zsh","{","}","~/.bashrc使修改生效。","~/.zshrc","↩","一样,见上一节。如果不设置每次使用","下运行(qemu","下面描述了","下面是环境配置指南,请阅读自己的系统的那一小节。","不一样。","不支持","之类的","也提供了","从这里下载我们预编译的二进制程序包","从这里下载预编译好的","仓库链接。","代码”的操作被称为交叉编译(cross","位的支持存在问题。","位的,而我们需要","位的,请使用我们预编译的","你的编译器","你还可以开一个","使用","创建","却编译出","参考","及更高的版本,你可以直接使用","可以参考这个教程进行升级,升级时注意备份。","可执行文件","可执行文件。","可执行文件,所以我们的","可执行文件,最后用","可执行文件;","可执行程序。","后面risc","命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。","和","和常说的","因此我们不能直接使用有些系统自带的","在第","在编译实验中可能需要的用法。","备注","如果使用的是低版本的","如果出于某些原因必须使用低版本的","如果在机器上直接安装了较低版本的","如果没有安装qemu模拟器,则会出现如下错误:\"bash:","安装","安装依赖","安装工具链","对应","工具链。","工具链并解压。","工具链并解压到你喜欢的目录。","工具链,由","常说的","应用商店可以很容易地安装","应该输出一个可执行文件","建议使用","建议各位同学使用我们提供的","开头的","往往也可以调用qemu环境正确执行,并得到\"hello","必做:risc","必做:测试你是否正确配置好了环境","我们提供了预编译的","我们的编译器只生成","我们需要下载安装","或","或自行编译。","打开microsoft","执行","把","把export","按照下面的","提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:","文件,","文件,gcc","文件,其中写入如下内容","时都要输入完整路径。不过对于","是","是否成功安装,详见risc","机器上、把","机器上,却要编译到","来安装用户态的","检查是否安装成功","模拟器和一个简易内核","模拟器,不过只能在","步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:","汇编","汇编变成","汇编,然后再使用","注意这里的","注意:安装了qemu之后,直接运行","测试你","源文件","然后从这里上下载我们预编译的二进制程序包","版本,如果你是其他平台(如m1","环境配置","生成的可执行程序只能在你本机(x86)上运行。","用户环境配置指南","用户环境配置指南安装","由于","的","的一种参考方法。","的同学可以使用","的工具链使用。","的工具链使用总结了","的源码进行编译,附","的用户态模式,我们使用","等","等模拟器来运行","等,然后参考下面","编译","编译到","而是用","而这里的","虚拟机,使用","虽然也运行在我们的","表示接下来是一条命令,记得运行的时候去掉","计算机无法运行。","设置","设置环境变量不管用,要么把它放到系统目录","请注意我们提供的预编译","跑在","输出","运行在我们的","这种“gcc","通过","配置。","配置文件里)","需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令sourc","预编译的较新版本的工具链对","首先把文件夹riscv64","(可选)设置环境变量,方法与","(如果你不用系统自带的",",设置“开发者模式”以及“启用子系统功能”。"],"docs/step0/riscv.html":["\"gcc:","\"input.c\"","\"rv32i2p0_m2p0\"","\"unprivileg","#","$","$?","(sifiv","(sysv),",".",".align",".attribut",".file",".globl",".ident",".option",".section",".size",".text",".text.startup,\"ax\",@progbit",".type","/usr/local/bin/pk","0","1","1.","16","1。","2","2020.04.0)","233","233;}","32","64","8.3.0","8.3.0\"","@function","a.out","a.out:","a.out,获取返回码","a0,233","arch,","bbl","bit","cat","echo","elf","executable,","file","gcc","input.","input.c","input.s,最高优化等级(否则输出的汇编会很冗长)","int","isa=rv32g","li","linked,","loader","lsb","m","mabi=ilp32","main","main(){return","main,","main:","march=rv32im","minidecaf","mip","nopic","o3","pk","qemu","ret","return","risc","riscv32","riscv64","riscv64,","rv32i","rv32im","s","spec\"。","spike","stack_align,","static","strip","ucb","unaligned_access,","unknown","v","v,","version","↩","【linux","【maco","下面汇总一下。","不过事实上,很多时候看","以后就能编译到","但我们加上参数","位汇编","位汇编。","位的","使用时记得加这个参数,否则默认编译到","到可执行文件","到汇编","另外这里也有(非官方的)指令用法说明。","可执行文件","基本指令集,并包含","工具使用","工具,在环境配置中已经叙述了安装和使用方法。","我们假设你已经正确设置好了环境变量,否则运行","我们提供预先编译好的","或","所","扩展(乘除法)。本实验中我们不需要其他扩展。","指令集文档在这里,我们只需要其中的","指令集架构,编译实验要求你的编译器把","时请用完整路径。","是","是一个很像","替换为你自己的","模拟器运行","汇编。","注意,我们虽然是用的工具前缀是","用户】qemu","用户】spike","的","的内容","的内容,就是上面汇编输出的简化版本","的工具链使用","的编译结果","的返回码,也就是我们","的那个值","相关信息","程序编译到","编译","编译到","表示使用","路径","输出的汇编比看什么文档都有用。","输出结果,能看到是","运行","这里的"],"docs/step0/env.html":["$","./requirements.txt","3","3.9",">",">=","add","altern","apt","argpars","argparse:","hints,如果你习惯在","instal","linux","m","miniconda","os)中进行开发。助教不推荐直接在","pip","pli","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考","ppa:deadsnakes/ppa","pylanc","python","python3","python,可以通过","r","repositori","requirements.txt,你可以通过","sudo","type","ubuntu,debain","unix","updat","version","vscode","window","wsl","下的","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","中搭建开发环境。你需要安装或保证如下软件满足我们的要求:","中进行开发的话同时推荐使用","以处理命令行参数。官方文档中提供了它的教程。","依赖包","关于操作系统,助教推荐使用","助教在项目中使用","助教强烈建议使用类似","包列表文件","可以尝试如下命令:","命令修改","命令安装下文提到的","和","如果你没有使用虚拟环境,可以参考下面的指导。linux","实验框架环境配置","或","或venv的系统管理不同的python环境。你可以方便地使用miniconda安装最新的python版本,安装好之后使用pip安装依赖即可。","框架使用了","框架本身在","框架里已经提供了需要的","此外,如果安装了多个版本的","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的","版本高于此版本。","版本:","环境下安装","环境(如","由于","的文档。","的新特性,请保证你所使用的","的跨平台性,理论上也可以在","等),当然你也可以在类","系统环境(mac","这一插件。"],"docs/step0/testing.html":["$","......","./check.sh","clone","found","gcc","git","git.tsinghua","git.tsinghua.edu.cn","git。","merg","minidecaf","ok","parallel","qemu","readm","recurs","remot","ssh","step1","step1,实验框架给出的初始代码可以通过","step_until=1","submodul","testcases/step1/multi_digit.c","testcases/step1/newlines.c","updat","。","公钥添加到你的","其他测试点,太长省略","创建了一个仓库,其中","助教已经为每位同学在","大致如下。","按照本文档的前几节(riscv","按照测例的","接下来我们会用到","来手动更新。","注意:由于子模块使用","测试运行的","环境配置和实验框架环境配置)配置好实验环境。","由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用","的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里","的所有测例。","的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块","账号上,才能将其克隆下来。","输出结果","运行实验框架","运行测试","配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。","链接,你需要将你的"],"docs/step1/arch.html":["\"(\"","\")\"","\";\"","\"=\"","\"_tk\"","\"if\"","\"unprivileg","#","(body)","(condition)","(i)","(lh)","(rh)","(tac)","*","+","/","1","1;","4","=","_t0","_t0,","_t1","_t1。","_t2","_t3","add","addi","address","arm...)和源语言(minidecaf,","assign_stmt","ast","ast),接下来通过扫描","ast省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。","ast)。比如,对于下面这一段简单的minidecaf","ast,对每个语句和表达式逐一进行类型检查,并在","backend/asm.pi","backend/dataflow/","backend/reg/","backend/riscv/","c,","calle","caller","code,","frontend/ast/。","frontend/lexer/;语法分析程序位于","frontend/parser/;语法树位于","frontend/scope/。","frontend/tacgen/tacgen.py。","frontend/typecheck/namer.py;类型检查位于","frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于","identifier(\"i\")","if_stmt","int","int(1)","ir","ir)是介于语法树和汇编代码之间的一种程序表示。","ir,只需要写","java...)。由于不同源语言的","lex","m","main","main:","minidecaf","mip","mips,","mips)规定的物理寄存器,其数目有限;而","n","neg","ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了","represent","return","risc","rules)。","save","saved。","spec\",另外这里也有(非官方的)指令用法说明。下图给出了","step","step1","step10","step11","step5","step7","subroutineinfo.pi","syntax","tac","tac)看起来很像汇编,与汇编最大的区别在于","tree,","typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typ","utils/tac/;中间代码生成位于","v","v,","v,risc","x86,","yacc","|","——","一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。","三地址码","三地址码定义位于","三地址码(three","三地址码;在编译器后端中,将三地址码转换为","上进行类型标注。对于静态类型(static","不同,直接从","个","个模块。","个汇编生成器,只有","个源语言和","个目标代码生成模块。如果有了","个目标指令集,需要写","中","中。","中只需要考虑常量的计算,直到","中的临时变量均用","中的变/常量可以直接对应。","中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。","中间代码指令。需要特别提出的是,risc","中间代码生成","中;寄存器分配在","临时变量赋值操作","事实上,由于","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出","代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑","代码的格式,只要方便自己调试即可。例如,你也可以将","代码:","以上给出了一份","以及","作详细介绍。","使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的","做详细介绍。","关于数据流分析的细节,我们将在","其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:","具体来说,在这一阶段中,我们需要对","函数入口标签","函数入口),以及作为分支语句的跳转目标(tac","函数返回","分析等理论知识在实践中的应用。","到","到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查","到汇编翻译有误。","加法操作","加载立即数","取负操作","只支持","可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。","可以适配不同指令集(risc","和","在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2)","在对","在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。","如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","它对应的完整语法分析树可能长这样:","完成符号表构建后,我们就可以自顶向下地遍历","寄存器分配","将","并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。","我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的","所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在","所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。","才需要考虑符号表构建。","才需要考虑,届时再介绍其处理方法)。如上例所示,tac","指令不支持","指令与汇编指令类似,每条","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。","指令集架构,编译实验要求所实现的编译器把","指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。","接下来,将对我们所使用的中间代码","控制流、数据流分析和寄存器分配","控制流和数据流分析","操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于","数据流图定义及优化在","数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。","数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在","数组类型,其值和地址都可以用一个32位整数存储,故","是一个与","是否正确就可以知道:是","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","此部分对应框架源码位置:","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编指令来翻译","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","生成中间代码","生成器和","生成汇编的话,为了支持","由于源语言(minidecaf)和目标语言(risc","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的形式表示(k表示变量的编号)。","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","目标平台汇编代码生成","目标平台汇编代码生成在","示例程序。请注意","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序由标签和指令构成:","程序编译到","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","类似的","类型和","类型检查","类型检查:各语句和表达式是否类型正确。","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器结构","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析程序位于","详细讨论。","语义分析","语法分析树的建立可以说明所输入的","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","课程实验的目标平台为","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输出成","还是","进行两遍扫描,分别完成以下的检查:","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","通过把","针对"],"docs/step1/provided.html":["6","step1","step2","step3","step5","step6","step7","step8","下面我们列出了所有框架中已经完成的特性:","中我们提供了","中我们提供了加法和逻辑或操作运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——单层作用域的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","已提供的语法特性","已经提供的语法特性","循环实现,同学们可以参考着完成","循环的实现。","此外,我们提供了","语句的实现。","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。"],"docs/step1/intro.html":["./reports/.pdf,比如","./reports/stag","0)完成通过例子学习一节末尾的思考题。","1","1.pdf。整个","branch","main","pdf","return","stage","step","step1:一个仅有","下的","准备报告。","函数","只需要提交一份报告,你不需要单独为","实验指导","实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在","实验要求","我们只接受","格式的实验报告,你需要将报告放在仓库的","的","的实验报告需要放在","的报告中(注意不是","这个"],"docs/step1/example.html":["\"\"\"","\";\"代表分号被解析以后会转化为","#","&","(body)","(children[0])","(expr)","(ident)","(ret_t)","...",".global",".text","10;","2024","2024;","2024,就是将立即数","32","8","9]+\"","9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码:",":","=",">","_t0","`t_interger.__doc__`","a0","a0,","a1","access","ast","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","backend","backend/asm.pi","backend/riscv","block","def","ebnf","emitfunc","example.c","frontend.parser.parser(位于","frontend/ast/tree.pi","frontend/ast/tree.py:unary、utils/tac/tacop.py:tacunaryop、utils/riscv.py:rvunaryop","frontend/ast/visitor.pi","frontend/lexer/lex.py。ast","frontend/lexer/ply_lexer.pi","frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于","frontend/parser/ply_parser.py,而词法的定义位于","frontend/tacgen/tacgen.pi","frontend/typecheck/namer.pi","function","function(p[1],","function,同时代码中的p[0]","gcc","identifi","identifier(\"main\")","input","int","int(t.value)","integer(2024)","intliteral(2024)","lalr","lalr(1)","lbrace","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","li","lparen","main","main()","main(){","main.pi","main.py,它通过调用","main:","minidecaf","mv","namer.transform","namer.transform,","p[0]","p[2],","p[6])","p_function_def(p):","p_program(p):","pars","parser","parser.pars","parser.parse(...)","pass","pass。下面,我们将指出,step1","ply),其使用方法与","program","program(function(...)),这里program、function类的定义在frontend/ast/tree.py文件中,你可以看到function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。","program(p[1])","program(p[1])代表了构建ast的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0]","program(p[1])最后就会变为p[0]","python","r\"[0","rbrace","readcod","ret","return","risc","riscvasmemitter.pi","riscvsubroutineemitt","rparen","selectinstr","semi","step1","step_pars","t","t.valu","t0","t0,","t_integer(t):","tac","tacfuncemitt","tacinstr.pi","tint","token","token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0","type","typer","typer.pi","typer.transform","utils/riscv.pi","utils/tac","v","visitor","yacc","yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。","yacc(简称","{","|","}","。","三种不同的一元运算符类型?","下实现了各种","下面我们将通过一个简单的","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么?","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中会先调用","中你只需要关注","中只有","中我们是如何实现符号表构建","中的","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中通过一遍","中间代码生成","中,a0","为什么框架定义了","为立即数","主函数入口符号","之后,这些","也就是","代码段","以及","会被","位","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位立即数到指定寄存器中,其中","你应该就能看到类似的输出。(记得自己写一个example.c)","函数代码。如果你增加了","函数入口标签","函数是否存在。(frontend/typecheck/namer.py:37)","函数)分别使用一个","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","分配一个临时变量","到","加载到寄存器","加载立即数","即可。具体来说","向","和","和类型检查","在","在frontend/lexer/lex.py文件中你可以看到每个","在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有pars","在实际操作中,我们遍历","在实验框架中,我们使用的是","在我们的实验要求中,返回值均是单个","在我们的框架中,从","在词法分析","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","声明全局符号","处理,并被转化为如下形式的一个","如何将一个立即数装载到指定寄存器中?","如何设置返回值?","字节流","实现,称为","实验框架中关于目标代码生成的文件主要集中","寄存器中","寄存器中,然后在后面加上一条","将返回值放到","尝试运行","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","库来实现这一点。yacc","当中,我们只需要提取","当程序读入程序的字符流之后,它首先会被","形式的语法规范生成相应","得到的","快速入门","思考题","我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program","我们的框架现在对于","所用的方法就是的","所需的底层类。其中","扫描完成","指令。","指令即可完成函数返回的工作。","指令来支持加载一个","指令选择相应的","指令,则可能需要在","指令,同学们可以在必要时修改或增加","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过","提供了","文件夹下,step1","文件夹中的","方法对每个函数内的","方法生成每个函数的","是","是一个根据","是如何定义的,每个token都会以t_开头。如t_semi","有一些差异。","本步骤主要涉及的语法为主函数和","来生成对应的","根据优化等级不同会有数百个不等的","模式。这个文件里除了类型tacgen之外还有一个辅助类tacfuncemitter,它用于处理产生tac代码过程中一些相对底层的细节。在本框架中,tac","模式遍历","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","汇编。","汇编代码,并通过","汇编代码:","流:","测试用例,一起走过它的编译全流程:","源文件","生成。和语义分析一样,这部分也使用了","生成的","的","的一个纯","的主函数编译为","的主函数编译全流程:","的使用,结合我们的文档,来快速上手","的入门,但这不是必须的。","的实现,大家可以直接运行通过","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的转换经过了","的输出。","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","目录下实现了生成","目标代码生成","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","程序的入口点在","程序的生成以函数为单位,对每个函数(step1","类中增加生成相应指令的代码。","类来通过","综上所述,我们上述中间代码翻译成如下","编译实验框架,我们给大家的代码框架中已经包含所有","节点的定义位于","表示寄存器名,","表示立即数值,如:li","词法分析","语义分析","语义分析步骤中,我们要遍历","语句没有返回值的情况是在哪一步处理的?报的是什么错?","语句返回的常量,为之分配一个临时变量,再生成相应的","语句,完成本步骤之后,你的编译器将支持将一个仅有","语法分析","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","读内容","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","转化为如下形式的","返回","返回指令即可。不难看出,本例对应的三地址码为:","这一函数里","这个token。而对于一些复杂的","这部分的工作流程如下:","通过例子学习","通过例子学习,一个仅有","都是继承"],"docs/step1/visitor.html":["\"declaration\"]]):","#","'''","'('","')'","';'","'int'","'return'","'{'","'}'","...","2;",":",">","accept","accept(self,","ast","block,","child","child.accept(self,","child,直接调用","class","ctx)","ctx:","def","df","dfs(func)","dfs(node:","elif","express","frontend/ast/node.pi","frontend/ast/tree.pi","frontend/ast/visitor.pi","func","func:","function","function(node):","function):","function,","identifi","identifier(main)","identifier,","int","int(2)","integ","isinst","isinstance(child,","isinstance(node,","main()","minidecaf","namer(visitor[scopestack,","node","node):","node,","node.functions:","node:","none","none:","none]):","notimplementederror","oop","optional[u]:","param_list","param_list,","program","program(listnode[union[\"function\",","program):","program,","program:","rais","return","return(statement):","return):","return,","scan","scopestack)","self.visitother(that,","someth","statement","statement(node):","step1","t)","t):","that:","tint(typeliteral):","type","type(int)","type,","typeliteral(node):","u]):","u],","v.visitfunction(self,","v.visitprogram(self,","v:","visit","visitfunction(self,","visitor","visitor(protocol[t,","visitor[t,","visitor。此外,为了便于实现,我们不使用","visitother(self,","visitprogram(self,","visitxxx","{","}","上的结点类型。","之后,如果我们想要编写一种遍历","代码为示例:","代码转化为了","以这个文法对应的一段","假设在经过了词法分析和语法分析后,我们已经成功将","函数","函数抽象到一个接口里,各种具体的","函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,df","函数根据被遍历的结点类型不同,执行不同的遍历逻辑。","函数,并把不同的","即可。","在框架中,我们有以下的","基础的设计模式都在","如果想要访问某个子结点","它会对应如下的","成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:","我们用缩进表示树结构,其中","我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。visitor","所有","整型","来判断结点类型,而是调用结点自身的一个","来实现这个接口。","模式就是常见的一种。","模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个","模式速成","模式,并以框架中的代码为示例进行介绍。","的文法:","的方法,可以直接继承","的根结点类型","程序,ast","等均为","类型基类","类,并在对应结点的","结构。现在,我们想要编写代码对","结构:","结点的基类","结点类实现(进行了适当的简略):","编译器的构造中会使用到很多设计模式,visitor","让我们考虑","语句","语句基类","课程中覆盖,这里重提一下","进行扫描。很容易写出递归的","遍历。","遍历:","那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的"],"docs/step1/spec.html":["'('","')'","';'","'int'","'int')","'return'","'{'","'}'","(extend",")","1.1","1.2","1.3","1]","1],补码表示。","2^31","2^31,","32",":","::=","[","[0,","antlr","barku","ebnf","express","form)","function","identifi","identifier),可以用字符串字面量表示终结符(如","int","integ","main","minidecaf","naur","program","program),大写字母打头的是终结符(如","statement","step1","type","x","x+","y","y。","y,并且","|","一或多次,?","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号","也有很多写法,另一种是用尖括号表示非终结符","位有符号整数类型,范围","函数,编译器应当报错。","后面会用到:(","后,可以用负号配合正整数常量来间接表示负整数常量。","和","如果输入程序没有","小写字母打头的是非终结符(如","就可以被替换成新的非终结符","很容易通过增加新的非终结符,去掉这些符号。例如","我们采用","每个步骤结尾的","的","的记号:","等。","类型具体指","编译器应当只接受","范围内的整数常量,","表示分组,|","表示选择,*","规范","记号书写语法规范,采用类似","语义规范","语法规范","零或一次。","零或多次,+"],"docs/step2/intro.html":["!。","'|'!'|'~')","('","./reports/.pdf,比如","./reports/stag","0","1","1.pdf。整个","1。","1,!!2","2",":","==","branch","c","ci","ci/cd","commit","express","git.tsinghua","id","int","integ","int;关于逻辑非,只有","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","pdf","stage","step","step2","step2:一元运算符","unari","|","~","~0","×","√","、按位取反","一栏的","三个操作的语义和","上打开你的项目,在界面的右侧,clone","下的","中,我们要给整数常量增加一元运算:取负","以及常识相同,例如","以及逻辑非","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。stage","变成:","只需要提交一份报告,你不需要单独为","在","如何检查我是否通过自动测试(ci)","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","或者","指导书上的思考题","按钮的下方,commit","改进你的编译器,支持本节引入的新特性,通过相关测试。","是否通过","格式的实验报告,你需要将报告放在仓库的","测试。","的图标,代表当前","的图标,或者在网页左侧选择","的定义,从","的实验报告需要放在","的左侧,可以看到一个画圈的","的思考题。","的报告还需要额外包含","稍微一提,关于按位取反,我们使用补码存储","简要叙述,为了完成这个","表示逻辑假,其他的","语法上,我们需要修改","这个","都是逻辑真。"],"docs/step2/example.html":["!,","\"","\"\"\"","#","&","(body)","(children[0])","(expr)","(ident)","(op)","(ret_t)",",","...","0","0))","0,","1","10,我们将这类一元运算操作都称为","1;这样的语句,但是不会见到return","1。在生成过程中,首先使用","1),主要讲讲和_t1","1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","2147483647",":","=",">","[]","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","__init__(self,","_t0","_t0,","_t1","_t1翻译过程发生了什么。","`p_`","accept","add","analyz","analyzer.accept(cfg)","asm.transform","ast","astfunc","astfunc.body.accept(self,","binari","block","bruteregalloc(emitter)","builder","builder.buildfrom(pair[0])","cfg","cfg:","cfgbuilder()","class","count","def","docstr","else:","emitt","emitter)","emitter.emitend()","emitter.selectinstr(func)","example.c","expr","express","expression):","flow","frontend/ast/tree.pi","frontend/ast/visitor.pi","frontend/lexer/lex.pi","frontend/parser/ply_parser.pi","func","funcname,","function","function:","grammar","graph(cfg)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectinstr),指令选择将中端tac代码转换为riscv汇编代码,selectinstr函数中,我们也采用了visitor模式遍历指令序列,","here.","identifier(\"main\")","if;这样的语句,因为","input","instr.dst,","instr.operand))","instr.valu","instr.value))","instr:","intliteral(1)","labelmanag","labelmanager()","labelmanager)","lex","lexer","li","livenessanalyzer()","load","main","main.pi","minidecaf","minu","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitload(expr.value)","need","neg","node","none:","op","op:","oper","operand:","operand,运算类型","operator,","p[0]","p[1]","p[1]则是minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的","p[2])","p_expression_precedence(p):","p_unary_expression(p):","pair","pair[1])","paramet","pars","parser","pli","primari","prog.funcs:","prog:","program","program)","program.functions().items():","program:","python","real","reg_alloc","reg_alloc.accept(cfg,","return","return)","risc","riscv","riscv.callersaved)","riscvasmemitter(riscv.allocatableregs,","rule:","rvunaryop.neg,","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","self.seq.append(riscv.unary(op,","step1","step2","step9,","stmt.expr.accept(self,","str])","t0","t0,","t0,这里的逻辑或需要将t1、t0进行或操作后,再判断其值是否为1。为什么这一步不在产生","t1","t1,","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","tac","tacfunc","tacfuncemitt","tacfuncemitter(funclabel(funcname),","tacfuncs.append(emitter.visitend())","tacgen.transform","tacprog(tacfuncs)","tacprog):","tacprog:","tacunaryop.neg:","temp","temp:","tint","token","transform(self,","tree.unary(unaryop.neg,","unari","unary(expression):","unary)","unary,其中p[0]代表的就是第一个unary,","unary,那么","union[int,","us","v","value))","value:","visitblock","visitload(self,","visitor","visitreturn(self,","visitunary(self,","x","x同样也是表达式,其会生成一个值。而带返回值的","y","{","|","||","}[instr.op]","~","~!这三个单目运算符和从","~a,","。","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","一元运算","下面的描述中一定要记得区分accept和直接对于mv.visitxxx的调用,前者是在遍历ast时调用的,后者是在","与","中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。","中加入相应的分派函数。","中实现的整型常量越界检查。","中的","中间代码生成","中间表达指令为例,risc","中,定义的新","中,我们只需为","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","什么是","代码没有特别需要修改的地方。","以","会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入","你可以试试,将rvunaryop.neg中名字改为rvunaryop.xxx看看输出的汇编代码会发生什么变化吧。","你可能会觉得,这一步不就是将","先看visitunary函数:","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。","再看visitreturn函数,我们这里的return是一个带返回值函数的return","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数会对不同类型的","函数对于在block中的所有子节点调用了child.accept(self,","函数的","函数,visitblock","到","到一个虚拟寄存器","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到此为止我们得到的tac代码如下:","参数","又对于","变为","含义","和","因此我们希望生成的","因此,测例可以翻译成如下的中间代码:","在","在语法树上对应父","如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里","子两个结点,父结点为取负操作,子结点为常量","它将在后续的","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义,以便lexer可以解析","实现细节","实验指导","实验指导。本实验指导使用的例子为:","对参数取负","并不是一个会产生值的表达式)。","并在","应当变为如下形式:","开头以被","开始,语法树上出现了各种运算操作结点。在生成","怎么从","怎么从tac到汇编代码","思考题","总结","成员","我们先忽略livenessanalyzer和control","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:","我们按照上一节划分的编译器阶段,分阶段给出","我们能发现","指令","指令。","指令与其对应,因此上述中间代码可以翻译为如下的","指令来完成翻译工作。以","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","按照上文说的,","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","提示:发生越界的一步计算是","操作数","时","时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。","时,遇到的子节点是","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","树,transform","模式有所了解,或者假设你已经知道在遍历","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","汇编中有","汇编:","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","现在尝试运行","现在我们开始正式遍历","由于现在","的","的处理。","的形式提供。","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","的?","目标代码生成","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","相比于step","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","程序。","程序,我们将tacgen.transform代码贴了一些在这里:","等符号都可以作为一元运算符出现,比如!x,","类中调用的。并且希望大家一定要对着代码看。","继续看上述例子,我们先关注只有","节点","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","范围内的非负整数,使得运算过程中发生越界。","表达式,只使用","识别。","词法分析","词法语法分析","语义分析","语义计算中被用到。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语句需要一个值,我们可以理解为带返回值的","语法分析","语法分析器直接产生的实际上是一棵语法分析树,而构建","请注意,tac","调用不同的visit","调用了","输入,输出汇编代码。","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步是","这个数字是一个表达式,","这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样的奇怪的","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里将中端的tacunaryop.neg翻译为了后端的rvunaryop.neg,在后端输出汇编时,我们直接将rvunaryop.neg转换为小写字符串取了11位以后的字符,直接输出为neg(参考unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在rvunaryop中增加对应的同名的enum字段。","这里进入了tacfuncemitter.visitload:","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","里加入新的","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","需要以","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的","首先,我们应该把",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将",":"],"docs/step2/spec.html":["!","'('","')'","';'","'int'","'return'","'{'","'|'!'|'~')","'}'","(","('","0","0)。","0;当操作数等于","1","1)","1。","1(待我们加上四则运算后)。","2.1","2.2","2.3","2.4","2.5","2147483647","2147483648,但可以写成",":","behavior),即对程序的行为无任何限制。","c/c++","express","function","identifi","integ","minidecaf","program","statement","step","step2","token。它被看成是一个取负符号、后面是它的绝对值。","type","unari","|","~","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","中,负数字面量不被整体作为一个","例如","对于含有未定义行为的","引入的运算符也都适用。","当且仅当其对应的二进制位是","当操作数不等于","所以我们无法用字面量表示","整数运算越界是未定义行为(undefin","时,其结果为","时,逻辑非运算符","是未定义行为。这一条规则对于后续","每个步骤结尾的","灰色部分表示相对上一节的修改。","的结果为","的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是","的结果是其操作数的相反数。","程序,在启用优化选项编译时,编译器可能产生意料之外的结果。","规范","语义规范","语法规范","运算符"],"docs/step3/intro.html":["%","'('","')","')'","'|'~'|'!')","(","('","('*'|'/'|'%')","('+'|'",")。","*、整除","+、减","./reports/.pdf,比如","./reports/stag","/、模","1","1+2*(4/2+1)","1.pdf。整个","3","7。",":","==","addit","branch","c","c17","ci","ci/cd","commit","express","expression,变成","git.tsinghua","id","integ","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","multipl","pdf","primari","stage","step","step3","step3:加减乘除模","unari","|","×","√","、乘","一栏的","上打开你的项目,在界面的右侧,clone","下的","以及常识相同,例如","以及括号","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。stage","只需要提交一份报告,你不需要单独为","和","在","如何检查我是否通过自动测试(ci)","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要增加的是:加","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","或者","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","指导书上的思考题","按钮的下方,commit","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","是否通过","标准草案保持一致","格式的实验报告,你需要将报告放在仓库的","测试。","的图标,代表当前","的图标,或者在网页左侧选择","的实验报告需要放在","的左侧,可以看到一个画圈的","的思考题。","的报告还需要额外包含","简要叙述,为了完成这个","语法上我们继续修改","这个"],"docs/step3/example.html":["#includ","/","0;","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","1","1+3","2","3","32","64","=","_t0","_t0,","_t1","_t2","add","arm)中和","b","b);","binari","identifi","int","kind","lexer","lexer(或","lhs,右操作数","li","main()","name","op","parser)一些信息,最经典的例子是","printf(\"%d\\n\",","problem”。","qemu","return","rhs,运算类型","risc","riscv","step2","step2。","step3","t0,","t0,t1","t1","t1,","t2,","token","v","x86","{","}","“typedef","不知道这点(parser","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","中间代码生成","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","二元运算","但有时,可能需要后续阶段告诉","作用","参数","右操作数;","同","含义","和","因此,测例可以翻译成如下的中间代码:","在","实验指导","对有兴趣的同学:虽然","将两个参数相加","左操作数","左操作数;","思考题","总结","意义不同,但","成员","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","或","才知道),所以它们都会用同样的","指令","指令来完成翻译工作。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","本实验指导使用的例子为:","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","的","目标代码生成","目标代码生成步骤的关键点与","相同,针对中间代码指令,选择合适的","节点","表示。","词法语法分析","语义分析","请注意,tac","通过例子学习","里面的"],"docs/step3/precedence.html":["'('","')","')'","'|'~'|'!')","('","('*'|'/'|'%')","('+'|'","(1","(2","(add","(sub","*","+","2","2)","3)","3))","3))(前序表示),不能解析成mul","3),不能解析成sub","3应该解析成sub","3应该解析成语法树add",":","express","integ","mul","sub","|","之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:","优先级和结合性","优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1","但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习c或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:","当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。","我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。","把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。","指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了c语言操作符的优先级和结合性,因为我们的minidecaf语言是c语言的一个子集,所以这张表格也足够我们的语言使用了。","操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:","是左结合的,所以表达式1","结合性是一个操作符的性质,例如"],"docs/step3/spec.html":["%","'('","')","')'","';'","'int'","'return'","'{'","'|'~'|'!')","'}'","('","('*'|'/'|'%')","('+'|'","(a/b)*b","(a=1)+(a=a+1);","*","+","/","0","0,则其行为都是未定义的。当","3.1","3.2","3.3","3.4","3.5",":","a%b","a=0;","addit","a。","b","behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。","express","function","identifi","int","integ","multipl","primari","program","statement","step3","type","unari","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不为","之后","二元操作符","例如:执行","应该等于","时,表达式","每个步骤结尾的","灰色部分表示相对上一节的修改。","的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。","的结果是操作数的乘积。","的结果是操作数的和。","的结果是第一个操作数减去第二个操作数所得的差。","的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为","的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符","规范","语义规范","语法规范","除非特别声明,子表达式求值顺序是未规定行为(unspecifi"],"docs/step4/intro.html":["!=","&&","&&、逻辑或","'&&'","'||'","('=='|'!=')","('|'>'|'|'>=')","./reports/.pdf,比如","./reports/stag","1","1.pdf。整个","1=2","1)。","4",":","==,",">,","addit","branch","c","ci","ci/cd","commit","equal","express","git.tsinghua","id","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","logical_and","logical_or","pdf","relat","stage","step","step4","step4:比较和逻辑表达式","|","||","×","√","一栏的","上打开你的项目,在界面的右侧,clone","下的","中逻辑运算符","为","以及常识相同,例如","但特别注意,c","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。stage","只需要提交一份报告,你不需要单独为","和","在","如何检查我是否通过自动测试(ci)","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要增加的是:","或者","指导书上的思考题","按钮的下方,commit","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","是否通过","是逻辑真(int","有短路现象,我们不要求。","格式的实验报告,你需要将报告放在仓库的","比较大小和相等的二元操作:、、>=,","测试。","的图标,代表当前","的图标,或者在网页左侧选择","的实验报告需要放在","的左侧,可以看到一个画圈的","的思考题。","的报告还需要额外包含","简要叙述,为了完成这个","这个","逻辑与"],"docs/step4/example.html":["&&","1","2",";","=","_t0","_t0,","_t1","_t2","c","d,","d;","gcc","ir","land","li","lor","lt","minidecaf","risc","s1;","s2;","slt","snez","stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️","step","step2。","step3","step4","sub","t0,","t0,t1","t0结果,成立为1,失败为0","t1","t1,","t2,","t3,t1,t2","t3,t3","v","zero,","||","中引入的二元运算节点中进行修改即可。","中引入的运算均为二元运算,在","中间代码生成","中,我们对于短路求值未做要求,但在包括","参数","可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出","同","含义","和","因此,测例可以翻译成如下的中间代码:","在","实验指导","对应的不使用跳转的汇编。","思考题","总结","恭喜你!到目前为止,你已经成功实现了一个基于","指令","指令来完成翻译工作。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令都是位运算指令,不是逻辑运算指令。","有短路现象,我们的实现中不要求大家考虑它们的短路性质。","本","本实验指导使用的例子为:","本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。","汇编","汇编中的","注意","目标代码生成","目标代码生成步骤的关键点与","相同,针对中间代码指令,选择合适的","给出","词法语法分析","语义分析","语言中,逻辑运算符","语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?","语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个","请注意,tac","通过例子学习","逻辑表达式会麻烦一点,因为","针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","需要特别注意的是,在"],"docs/step4/spec.html":["!=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","&&","'&&'","'('","')","')'","';'","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('=='|'!=')","('|'>'|'|'>=')","(0","0","0。","0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为","1","1。","1,当不满足时结果为","1,那么判断是否有","1;否则其结果为","2”。","2,否则判断是否有","3.5,即其操作数的求值顺序是未指定行为。","4.1","4.2","4.3","4.4","4.5",":","==(等于)和","addit","equal","express","function","identifi","integ","logical_and","logical_or","multipl","primari","program","relat","statement","step4","type","unari","|","||","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","依然遵循语义规范","关系操作符","关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如","其优先级的设定会导致其含义在某些时候可能会反直观,例如,0","判等操作符","和","小于","当操作数有一个非","当操作数都非","换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。","时,逻辑与操作符","时,逻辑或操作符","每个步骤结尾的","灰色部分表示相对上一节的修改。","的含义与","的结果为","的运算结果为","相同,即“如果","规范","语义规范","语法规范","逻辑操作符","(小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为"],"docs/step5/intro.html":["'('","')'","';'","'='","'return'","'{'","'}'","('='","./reports/.pdf,比如","./reports/stag","2","2.pdf。注意报告的标题是","2下,你可以通过git","2创建一个新的分支并继承当前分支的修改。","5。",":","assign","b","branch","checkout","declar","express","expression)?","expression?","function","identifi","integ","logical_or","main","pdf","primari","stage","statement","statement*","step","step5:局部变量和赋值","type","|","下的","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","函数内部可以包含多条语句和声明了。","变量的使用(读取/赋值)","变量的声明","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","栈帧","格式的实验报告,你需要将报告放在仓库的","此外,我们的","的实验报告需要放在","的改动如下:","的概念,并介绍它的布局。","简要叙述,为了完成这个","而不是","语法上,step5","请将你的作业放置在分支stage","这一步我们终于要增加变量了,包括:","这个"],"docs/step5/example.html":["\"a\"","#","#includ","+",".global",".text","0;","0;定义的,g(a)中的a是上一行的let","16","1;","2024","2024;","2;","2下,你可以通过git","2作业放置在分支stage","2创建一个新的分支并继承当前分支的修改。","3","32","3;","4","4;","4,即可得到","5","5;","=","_t0","_t0。例如,测例中直接用返回","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t0,此时","_t1","_t1,","_t2","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","a0,","accept:根据每个函数的","add","addi","allocforloc:每一条指令进行寄存器分配。","allocregfor:根据活跃变量信息决定为当前","assign","ast","b","backend/reg/bruteregalloc.pi","basicblock(基本块)内的指令进行寄存器分配。","binari","bind:将一个","c","calcul","calculate()","calculate();","checkout","d","declar","dfg(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。","e","e;","epilogue。epilogu","epilogue,将","e)。假设我们的处理器只有","f(a);","f(a);。","fn","fp","fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。","fp,此时","frontend/scop","frontend/symbol","frontend/symbol/varsymbol.pi","g(a);","identifi","ident,初始表达式","init_expr","int","li","localalloc:根据活跃变量信息对一个","main","main()","main:","minidecaf","mv","printf(\"%d\\n\",","prologue。prologu","prologue,将","reg0","reg0,","reg1","reg1,","result","result);","result;","ret","return","risc","rust","sat","scope","scope.pi","sp","sp,并恢复","stage","step11","step5","step6","step9","symbol.pi","t0","t0,","t0,t1","t1","t1,","tac","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","tint","unbind:将一个","v","valu","var_t,标识符","x","x;","y","y;","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","{","}","一个例子","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个通用寄存器,在这种情况下,我们无法将","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中间代码生成","中,主要有以下几个函数:","中,变量符号的定义里有该变量对应的","中,我们会将左值的范围进一步包括数组元素。","中,然后再把","临时变量对应起来。","临时变量成员。","临时变量的赋值","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为符号类的基类,varsymbol.pi","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","介绍,在当前的步骤不需要考虑)。","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","代替了返回变量","代码(你不需要精确了解它的含义,大致理解即可):","位整数,因此,我们可以把","保存在寄存器中,e","保存在栈帧中,因此需要分配","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","其中f(a)中的a是上一行的let","函数中定义名为","函数中所有出现过的变量符号即可。","函数作用域对应的单张符号表即可。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数执行","函数的栈帧,并且集中于临时变量的存储和加载。","函数调用","函数,将返回地址压入栈中。","函数,直到","到","加载到临时变量","参数","变量声明","可以在符号表中找到(我们在扫描","同","名称","含义","和","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在实验框架中已经给出寄存器分配算法的代码,集中在","在扫描到","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在这个示例中,我们在","型,而","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","如果","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节的栈帧空间。sp","完备问题(可以从","实验指导","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","寄存器中,请写出一段","对应到框架代码上:","对应的临时变量。每当在","对应的符号。符号","对应的结点时报错。","对象,用以维护","局部变量和","已经成为了变量","思考题","总结","成员","我们使用","我们假定当前栈帧的栈顶地址存储在","我们首先来看本节指导用例所对应的中间代码:","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","指令","指令来翻译中间表示里的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令(例如","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","整型","无","无法找到,因此编译器需要在扫描到","时能快速找到","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","本实验指导使用的例子为:","本节指导用例对应如下","标识符(用于表示变量名)","栈帧","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","汇编中","汇编代码,将栈帧空间扩大","汇编代码:","的“替身”。每次需要用到变量","的值。因此,为了在后续使用变量","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,然后将返回地址弹出栈中,跳转到返回地址。","的全局变量,同时在","的地址。","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","目录下为符号的实现。其中","目录下为符号表的实现。其中","目标代码生成","符号表总是和作用域相关的。例如,在","简单的启发式寄存器分配算法","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类型","类来处理它。","结点时,会依次检查该操作的两个操作数","节点","节点来表示它,给出的参考定义如下(框架中已经提供):","节点里,也可以单独设置一类节点继承","表示将","计算完成后,calcul","词法语法分析","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","语义分析","语言中的基本类型只有","语言中,我们可以在全局作用域中定义名为","请将你的整个stage","请注意","请注意,tac","请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到","貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp","赋值运算","这个临时变量,在符号表中存储","这个符号时,应当为该符号设置一个成员,存储","这条语句后已经为其定义),而","这条语句时,中间代码先把立即数","通过例子学习","那么在扫描到加法操作的","里的临时变量也是","针对局部变量定义和赋值操作,我们需要设计","针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。","需要注意的是,由于我们目前只支持一个"],"docs/step5/spec.html":["'&&'","'('","')","')'","';'","'='","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('|'>'|'|'>=')","+","0。","1;","1;,这样一条声明在语义上等价于","5.1","5.10","5.11","5.2","5.3","5.4","5.5","5.6","5.7","5.8","5.9",":","=","a;","addit","assign","declar","equal","express","expression)?","expression?","function","identifi","int","integ","logical_and","logical_or","lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在","main","main。","multipl","primari","program","relat","return","statement","statement*","step5","type","unari","|","}","一个函数中可以有任意多条","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","中,a","例如,int","函数执行至","即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。","变量的初始化表达式指定了变量的初始值。","同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。","在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。","在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。","对未声明的变量的使用是错误。","就","局部变量的名字可以为","当","时,应终止执行并返回","来说,这一点其实几乎已经被语法保证,因为其","每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。","每个步骤结尾的","没有被初始化的(局部)变量的值是不确定的。","灰色部分表示相对上一节的修改。","的左操作数必须是一个可修改的左值(modifi","的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。","规范","语义规范","语句。","语法规范","赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。","赋值运算"],"docs/step6/intro.html":["'('","')'","';'","'return'","'{'","'}'","./reports/.pdf,比如","./reports/stag","3","3.pdf。注意报告的标题是","6。",":","ast","block_item","block_item*","branch","compound_stat","declar","express","function","identifi","pdf","stage","statement","step","step6","step6:作用域和块语句","type","|","下的","中出现的每个变量名分别对应那个变量。","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","出现在代码不同地方可能标识完全不同的变量。","因此,变量名不能唯一标识变量了,同一个变量名","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","当然,如果变量在使用前还是必须先被声明。","我们只接受","我们要增加块语句的支持。","我们需要在符号表构建的过程中,确定","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","简要叙述,为了完成这个","而不是","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语法上改动不大","这个","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","随之而来一个问题是:不同变量可以重名了。"],"docs/step6/example.html":["#","(a","/","1","1;","2","2;","3","3;","4","4;","6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义","=","_t0","_t1","_t2","_t3","_t4","_t5","ast","backend/dataflow/cfg.pi","backend/reg/bruteregalloc.pi","block","break/continu","cfg","children","class","ctx)是单一的作用域。到了","frontend/scope/","int","main","main()","main(){","main:","main(可忽略)","minidecaf","namer","namer(visitor[scope,","namer(visitor[yourtype,","namer/typ","none])","none]),其中","return","scope.lookup","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","stage","step","step5","step6","tac","transform","typer","visitblock","visitfunct","x","x;","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","yourtyp","{","}","下。class","不需要新增新的中间代码指令。","中添加基本块是否可达的判断。在寄存器分配算法","中的","中的对应结点来实现。另外,别忘了循环本身也是一个作用域!","中的每一个","中间代码生成","中,namer/typ","中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。","中,我们只维护了","为","为止。由于在栈顶作用域对应的符号表中不存在变量符号","之前","也需要如上改动。","从","代码框架需要同学们对寄存器分配相关的","代码的控制流图。int","代码:","作用域中定义的","作用域定义的","作用域栈","作用域里的","入栈。然后在新的","全局作用域(栈底)","函数","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数作用域里定义的变量","函数对应的作用域中,可以找到变量符号","函数时,开启一个局部作用域,在扫描","函数里定义了变量","则对应着内层代码块定义的变量","变量","变量。","只在内部大括号括起的作用域内生效。","后续","后续如果你选做“全局变量”部分,可以在","含义","和","在","子语句列表","实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑","实现提示","实验指导","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应着","就是指","局部作用域","局部作用域(栈顶)","应改为","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用","思考题","成员","我们定义了另一个变量","指令。","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","方法中先将全局作用域加入栈底,再往上才是","时定义变量符号","时,从栈顶作用域符号表查找","时,你需要一个机制来检查","时,定义了另一个变量","时,我们需要分析","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_t0","是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在","显然,两个代码块里的变量","最后,扫描语句","本实验指导使用的例子为:","本步骤中无须新增新的","的","的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(scope","的全局唯一的作用域可以被当作“函数作用域使用”,在","的内容进行细微修改。具体来说,需要在","的函数作用域。","的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。","目标代码生成","空","符号表","节点","节点来表示它,给出的参考定义如下:","让我们来看看示例所对应的","词法语法分析","语义分析","语句块","语句是否在一个循环内。这可以通过修改","请务必注意上表中的两个变量","请画出下面","这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:","通过例子学习","遍历时的上下文信息(参数","针对块语句,我们需要设计",",看她们是否需要换成新函数。"],"docs/step6/dataflow.html":["*","1,也就是说","2","3","4","=","_t0","_t1","_t1}","_t2","_t2,","_t3","_t3}","analysis),或者称为“活跃变量分析”。","b","block)和控制流图(control","branch","branch、beqz(条件为假时跳转)、bnez(条件为真时跳转)或者","branch、condbranch","b,则图中包含从","call","condbranch","def","flow","graph)是用于进行上述分析的数据结构。","label","livein","livein(succ(b))。","livein、liveout","livein、liveout。","liveout","liveout(b)","liveus","return","spill","tac","{_t0,","{_t0}","{_t1}","{_t2,","“控制流图”","一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。","一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。","一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念,","上面例子对应的控制流图如下:","下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:","下面的例子中,代码中不同的基本块被标以不同的颜色:","中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。","为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:","也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。","从编译器中端出来的中间代码中,我们对","代码","以下讲述数据流分析的内容中,所有的","其中","划分基本块。","到栈上)。","和","因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。","在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本","在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:","在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。","在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。","块之前就要具有的了)。","基于上面三个特点,已经求出基本块的","基本块","基本块是指一段这样的代码序列:","基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:","基本块(basic","如果当前基本块以","对应结点到","对应结点的有向边。对于以","建立基本块之间的连接关系。","当遇到","当遇到一个","我们需要先引入下面四种针对基本块的集合:","或者","执行完之后,有可能跳转到另一个基本块","指令为条件跳转指令,branch","指令为跳转指令。","控制流图","控制流图是一个有向图:它以基本块作为结点,如果一个基本块","数据流分析","整个操作序列扫描完毕后,我们就成功建立了所有基本块。","是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。","有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:","有以下三种特点:","条边)。","标记而且存在跳转语句跳转到这个行号时。","标记,即不能跳转到基本块中间。","根据这个方程,我们可以通过迭代更新的办法求出每个基本块的","根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要","每个节点的出度都是","活跃变量和活跃变量方程","活跃变量集合","由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(live","由于每个结点只含有一个语句,因此其","由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其","空集","等跳转语句时。","等跳转语句(但可以包含","结尾,则不需要加入新的边。","结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。","结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共","编译优化的基础是数据流分析。","获得了每个基本块的","该方程说的是一个基本块的","语句不给任何变量定值,load","语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的","语句则会给对应变量定值)。","语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以","语句的","语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。","语句)。","这个方程的直观意义是:","除入口语句外基本块中不含任何的","除出口语句外基本块中不含任何的","集合。如果我们把基本块内所有","集合中去掉","集合以后的部分。","集合以后,我们需要进一步地计算基本块内每个","集合就是源操作数对应的所有变量。","集合是","集合是其所有后继基本块的","集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。","集合是在这个基本块内被定值的所有变量。所谓的定值","集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出","集合的变量加上","集合的并集,而且","集合,以下是求解的伪代码:","集合:一个基本块的","集合:在离开基本块出口的时候是活跃的那些变量。","集合:在进入基本块入口之前必须是活跃的那些变量。","集要么是空集,要么只含有一个元素。","(definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:stor"],"docs/step6/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('|'>'|'|'>=')","+","1","1;","5.3)对于同一个标识符,在同一个作用域中至多有一个声明。","5.4)使用不在当前开作用域中的变量名是不合法的。","5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。","6.1","6.2","6.3","6.4",":","=","addit","assign","block_item","block_item*","compound_stat","condit","declar","equal","express","expression)?","function","identifi","int","integ","logical_and","logical_or","multipl","primari","program","relat","statement","step6","type","unari","{","|","}","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a","根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。","每个步骤结尾的","灰色部分表示相对上一节的修改。","的值是不确定的。","规范","语义规范","语法规范","(更新"],"docs/step7/intro.html":["'('","')'","':'","';'","'='","'?'","'if'","'return'","('else'","./reports/.pdf,比如","./reports/stag","4","4.pdf。整个","7",":","assign","branch","c","condit","express","expression?","expression)。","identifi","logical_or","pdf","stage","statement","statement)?","step","step7","step7:","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要支持条件语句,包括","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","条件表达式","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","简要叙述,为了完成这个","表达式","语句和条件表达式(又称三元/三目表达式,ternari","语句的语义和","语法上的改动是:","语言相同,注意条件表达式优先级只比赋值高。","这个"],"docs/step7/example.html":["#","(a","(x)","0","0;","0,跳转到","1","1;","2","2);","2;","2;,则对应的","2;,否则执行","2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。","3","3;","3;。因此,我们设置了两个跳转标签","4",":","=","?","_l1","_l1:","_l2","_l2:","_l2,分别表示","_lk","_t0","_t0,","_t0。如果","_t1","_t2","_t3","a;","ast","b","beq","beqz","bison","c=0;","c=0;}","cond,真分支","conflict","d=0;","d=0;}","d=0;,到底是","d=0;?","else(dangl","else)","if(a)","if(b)","if。","if;","int","j","jmp","jump","label","main","main()","main:","minidecaf","otherwis","parser","reduc","return","risc","shift","step1","step6","step7","step7:","step8","t0","t0,","t1","t1,","tac","then,假分支","v","x","x;","{","{if(b)","}","中目标代码生成主要是指令的选择以及","中第一个","中间代码生成","中,tac","为","为了实现","为了让","为假,那么应当跳转到","为真,那么按顺序执行","了。","从本步骤开始,由于","代码中的标签只有标志","代码中,x","代码可简化为:","代码:","仿照","会返回","作用","例如","函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用","分支","分支。在","分支开始位置和整个","分支条件","分支的代码,并在该分支结束时,用一条","分支语句","分支,所以在递归到子结点时,请先判断子结点是否存在。","分支,那么只需要一个跳转标签即可。例如我们将例子中的","到底和哪一个","参数","同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。","含义","和","和最近的","在实验要求的语义规范中,条件表达式存在短路现象。即:","在这段","处,我们使用一条","如果","如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。","子句也可以不带,但这会导致语法二义性:els","实验指导","对应的临时变量为","当然,如果一条","循环语句还会使用。","思考题","总结","悬吊","成员","我们人为规定:els","我们的实验框架里是如何处理悬吊","指令","指令来执行。如果","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令跳转到","按照这个规定,parser","提供了与中间代码中","无条件跳转到","时,选择没有","本实验指导使用的例子为:","本步骤中语义分析没有特别需要增加的内容,只需要在扫描到","本节主要就是引入了跳转,后面","来表示跳转用标签,以此和函数入口标签区分开来。","标签处","汇编标签","现在让我们来看看示例所对应的","生成过程中,每当扫描到","的","的值为0,则跳转到","的值为真(不等于0),那么应当执行","的声明,risc","的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。","的时候选择shift,从而对悬挂else进行就近匹配。","目标代码生成","看到","程序出现了分支结构,我们需要开始考虑跳转语句了。在","类似的指令:","结合,也就是说上面两种理解中只有前者合法。","结合?","而不是","而看到第二个时只能选择有","能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有","节点","节点来表示它,给出的参考定义如下(框架中已经提供):","节点,还需要类似地实现条件表达式节点。","若","被绑定到","词法语法分析","语义分析","语句不总是有","语句修改为","语句和条件表达式时递归地访问其子结点即可。请注意","语句既可以带","语句时,都需要调用","语句没有","语句的结束位置。如果","语句的结束位置,从而跳过","语句,我们需要设计","语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:","请注意,tac","跳转到","还是","这一节引入的","这个问题被称为","通过例子学习","针对","问题","问题。","问题的?请简要描述。","需要说明的是","默认在",",也就使得"],"docs/step7/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'if'","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(0)","(1)","0","0,我们会对第三个操作数求值。当第一个操作数的值为","0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于","7.1","7.2","7.3",":",";",";。","a;","addit","assign","block_item","block_item*","compound_stat","condit","declar","else;","else(dangl","else),要求","equal","express","expression)?","expression?","function","identifi","int","integ","logical_and","logical_or","minidecaf","multipl","primari","program","relat","statement","statement)?","step7","type","unari","{","|","}","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不是合法的","不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。","优先和最接近的没有匹配","例如","分支和","分支需要是一个语句(statement)而非声明(declaration)。","分支,就会执行第二个语句,否则整个","匹配。","如果出现悬吊","对于","时,会执行第一个子句;当控制条件等于","时,如果有","时,条件表达式的求值结果为第三个操作数所求得的值。","时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非","条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于","每个步骤结尾的","注意:if","灰色部分表示相对上一节的修改。","的","程序。","等价于","而非","规范","语义规范","语句的执行便已经完成。","语句而言,当控制条件不等于","语法规范"],"docs/step8/intro.html":["'('","')'","';'","'break'","'continue'","'for'","'if'","'return'","'while'","('else'","./reports/.pdf,比如","./reports/stag","4","4.pdf。整个","8",":","branch","break/continu","c","compound_stat","declar","express","expression?","pdf","stage","statement","statement)?","step","step8","step8:循环语句","|","下的","不能出现在循环外。","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","循环语句的语义和","我们只接受","我们要增加对循环语句,以及","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","的支持:","简要叙述,为了完成这个","语言相同,注意检查","这个"],"docs/step8/example.html":["#","(int","0","0;","5","=","_l1:","_l1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到","_l2)是执行","_l3","_l3)处。","_t0","_t0,","_t1","_t2","_t3","_t3,","ast","begin","beginloop_label:开始下一轮迭代","beginloop_label:本轮迭代完成","beginloop_label:本轮迭代完成,条件满足时进行下一次迭代","beqz","bnez","bodi","br","break","break/continu","break_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","cond","cond,","cond,循环体","cond,更新语句","continu","continue_label:continu","false_target,","init,循环条件","int","ir","label","loop","lt","minidecaf","step7","step8","tac","tacfuncemitt","true_target","update,循环体","utils/tacgen/tacgen.pi","vs","不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","中存在双目标分支(标签)的条件分支指令,其形式如下:","中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它","中的","中间代码生成","为了实现所有可能的跳转,对每个","从执行的指令的条数这个角度(label","代码:","你认为中间表示的哪种条件分支指令设计(单目标","其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。","其中,while","初始语句","双目标)更合理?为什么?(言之有理即可)","含义","和","实验指导","将循环语句翻译成","循环作为示例。","循环可以有以下两种翻译方式:","循环可以看作","循环我们都需要定义三个跳转标签:begin,","循环条件","循环的特例,我们选择了","循环要自带一个作用域。在示例里,for","循环语句","循环语句翻译成","思考题","成员","我们目前的","指令。不过为了实现循环语句,需要仔细地考虑如何将","无","有许多可行的翻译方法,例如","本实验指导使用的例子为:","本步骤中没有需要新增的","本步骤语义分析阶段的处理方式和","标签。","标签和","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签的维护。","标签(示例中的","标签,这样才能确定每一条","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于循环语句可以嵌套,所以","的","的分支跳转指令。由于","目标代码生成","程序。因此,在符号表构建阶段,扫描到","第一种(即实验指导中的翻译方式):","第二种:","类里实现了维护","结点时,不要忘记开启一个局部作用域。","结点时,若当前不处于任何循环内,则报错。","节点","节点来表示它,给出的参考定义如下:","让我们先来看看示例对应的","词法语法分析","语义分析","语句","语句。","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句时应当跳转到的位置。","语句生成过程中需要动态维护","语句的实现已经在框架中给出,同学们可以参考并实现","语句相类似,但是请额外注意以下两点:","语句跳转到何处。因此,在","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句,我们需要设计","语句,那么应当跳转到此处,执行循环之后的指令。","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","跳到这","这也是合法的","通过例子学习","里的","针对循环语句和"],"docs/step8/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(i=0;","(int","0。","1。","8.1","8.2","8.3","8.4","8.5","8.7","8.8","8.9",":","addit","assign","block_item","block_item*","break","compound_stat","condit","continu","ctrl","ctrl,i=i+1","declar","equal","express","expression)?","expression?","function","i;","i=0;;i=i+1)","i=0;i","i=0;i。","i=1;","identifi","init","init、ctrl","init、ctrl、post","init,i","int","integ","logical_and","logical_or","multipl","post","post。","primari","program","relat","return","statement","statement)?","step8","type","unari","{","|","}","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","中,i=0","例如","例如,for","即是控制表达式,其求值在循环体的每次执行之前。post","和","和循环体)。","对于","循环、while","循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于","循环括号中的三个表达式/声明自左向右依次为","循环的","循环的控制表达式的求值在循环体的每次执行之前。","循环而言:如果","循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果","循环语句的作用域(包含","执行一条","方便起见,我们称","是","是一个声明,其声明发生在控制表达式的第一次求值之前;如果","是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl","是一条声明,则其所声明的变量所属的作用域是整个","是合法的代码片段。","有两种循环语句:for","每个步骤结尾的","灰色部分表示相对上一节的修改。","的求值在循环体的每次执行之后。","等价于","等价于将其替换为一个非零常数,比如","规范","语义规范","语句和","语句所在的最小的循环语句的循环体的末尾。","语句所在的最小的循环语句的执行。","语句要么出现在循环体里,要么其就是循环体。","语句,意味着将程序的执行跳转至该条","语句,意味着终止该条","语法规范","都可以被省略。省略"],"docs/step9/intro.html":["'('","')'","';')","'|'~'|'!')","('","(','","(compound_stat","(express","(type","./reports/.pdf,比如","./reports/stag","5","5.pdf。注意报告的标题是","9。",":","branch","expression)*)?","expression_list","function","function*","identifi","identifier)*)?","int","parameter_list","pdf","postfix","primari","program","stage","step","step9","step9:函数","type","unari","void","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","开始,我们要支持多函数了。","我们只接受","我们还需要支持函数调用:","我们需要支持函数的声明和定义:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","简要叙述,为了完成这个","而不是","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","返回值实现。","返回类型,这可以通过忽略函数的","这个"],"docs/step9/example.html":["#","+","...","...)",".global",".text","1","1;","2","2);","2中对于后端翻译的介绍和step","32","5","52(sp)","56","5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。","9","=","_t0","_t0)","_t0,","_t1","_t1,","_t2","_t3","a0","a0,","a1","a1,","a7","add","addi","ai,","argument_list","ast","b","bodi","c","call","calle","caller","caller/calle","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。","end","epilogu","foo","foo(_t2,","foo(t1,","frontend/symbol/funcsymbol.pi","func","func(1,","func(int","func:","func_exit","func_exit:","function","gcc","ident","ident,参数列表","int","int)从左到右存放在","int)放在","ir。","j","label(t0,","label,传入的实参为t0、t1等","li","lw","main","main()","main:","main_exit","main_exit:","mv","param","paramet","params,函数体","prologu","ra","ra,","ra是一个cal","ret","return","return_type,函数名","risc","save","saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前cal","saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。","saved寄存器。","saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。)","saved寄存器。如果某个临时变量存放在calle","saved寄存器与临时变量的绑定关系。你可以用subemitter.emitstoretostack和unbind来达到上述效果。","saved寄存器中且活跃的临时变量,然后解除所有cal","saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如calle","saved寄存器中的临时变量保存到栈上,这实际上让所有cal","saved寄存器中的参数也被丢到了栈上?似乎有些多余?","saved寄存器中,那么它不会在上一步骤被放到栈上。","saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。","saved寄存器或栈上。因此我们先将活跃且在cal","saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是calle","saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它cal","saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个calle","saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv","saved寄存器,但它有着和calle","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","sp,","start","step9","sw","t0","t0,","t0指令用于传递一个参数。","t1","t1,","t1和t2作为被调用函数foo的实参,而调用后的返回值保存在t0中。","t2)","tac","unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。","v","var_type,变量名","vs","v标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。","x","x,","xj;如果vi的值不在物理寄存器中,调用emitloadfromstack。(思考:","xx","xxx","y","y)","y;","{","}","一些可能带来困惑的地方","上表给出","上述步骤","下面是一段含有函数调用的代码片段:","下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。","两类寄存器,而不是要求所有寄存器完全由","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个整数寄存器的分类。所谓","中","中。","中。比如我们有这样一段","中的一方保存?为何保存返回地址的","中间代码生成","中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)?","为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下:","为什么有的临时变量可能在寄存器中?","为何","传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。","位","你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。","你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。","你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用","你有更高效的解决方案吗?)","保存活跃的临时变量:首先保存所有位于caller","假设我们有若干个参数,可以依次使用","具体依赖于1的处理方式,可能需要恢复","具体的保存方法并不限制,但一般都使用栈来保存。","具体而言,某个“一整条函数调用”的中间表示大致如下:","准备参数,完成传参。","函数","函数参数","函数参数以及返回值的传递","函数参数(32","函数时,相当于执行了:","函数符号的实现在","函数调用","分别对应","到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言?","到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。","参数","参数类型","只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复calle","同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。","含义","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","和","因为我们在步骤1中只操作了caller","因此,示例可以对应如下的","在早先的文档中,函数调用涉及call和param两种指令。call指令只对应实际汇编代码的函数调用,而param","在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案):","处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。bruteregalloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind,","处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitfunc函数中。框架的现有部分已经帮助大家处理好了calle","如果你感兴趣,可以了解一下llvm","如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题?","妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。","完成这个步骤的过程中你可能需要回顾step","实战教学","实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。","实验指导","寄存器","寄存器。","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器?","对于被调用者的处理","对于调用者的处理","对应的“传参和调用分离”的中间表示类似于:","将","将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是cal","思考","思考题","总结","成员","我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。","我们给出risc","执行汇编中的函数调用指令,开始执行子函数直至其返回。","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。","本实验指导使用的例子为:","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","标准调用约定中要引入","根据调用约定,调用其它函数后caller","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitloadfromstack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitstoretostack,我们需要手动生成一条nativestoreword指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。","由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。","的值作为参数","的标准调用约定","目标代码生成","称为调用序列(call","程序代码里的一个函数调用,包含了下面一系列的操作:","程序:","编译程序进行验证。","节点","节点来表示它,给出的参考定义如下:","要做什么","记录函数调用情况(可选):你也许需要在subroutineemitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。","词法语法分析","语义分析","请注意,tac","调用函数","调用函数名","调用约定","返回值(32","返回类型","这是否意味着原本就在caller","这里我们需要关注源文件backend/reg/bruteregalloc.py中的bruteregalloc类。","这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的riscvsubroutineemitter类和backend/reg/bruteregalloc.py中的bruteregalloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。","进行真正的函数调用:可以使用emitnative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。","通过例子学习","那么语义检查时应当报错。","那么,在进入","针对函数特性,我们需要设计","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","(汇编)保存"],"docs/step9/spec.html":["'&&'","'('","')","')'","':'","';'","';')","'='","'?'","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(express","(type","0","0;}。","0,语义规范说","5.10)执行一条","9.1","9.2","9.3","9.4","9.5","9.6",":","addit","assign","block_item","block_item*","c++","caller","caller,语句中的表达式的值会返还给","compound_stat","condit","declar","equal","express","expression)*)?","expression)?","expression?","expression_list","f(){if(0)","f(int","function","function*","identifi","identifier)*)?","int","integ","logical_and","logical_or","main","multipl","parameter_list","postfix","primari","program","relat","return","statement","statement)?","step9","type","unari","void","x)","x;","{","|","}","}”","},且其返回值被","“执行到了","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不合法,但","中规定不管返回值有没有被使用,都是未定义行为。","之外的函数没有","作为函数调用的表达式的值。一个函数可以有任意多条","例如,int","函数是可以递归调用的。","函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。","合法。","在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。","在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。","在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。","如果一个不是","实现的时候,你可以直接让所有函数都默认返回","对于感兴趣的同学:c","当然也是可以的,而且更清晰简单。","意味着执行时没有通过","我们暂不要求支持不包含函数体的函数声明。","我们没有支持","所使用,则这是一个未定义行为。","是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回","每个步骤结尾的","灰色部分表示相对上一节的修改。","的函数执行到了它的","类型,但可以忽略返回值达到类似的效果。","规范","语义规范","语句。","语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的","语法规范","语言中规定只有使用了返回值才是未定义行为,而","返回,例如","(更新"],"docs/step10/intro.html":["(function","./reports/.pdf,比如","./reports/stag",".bss",".data",".text","10","6","6.pdf。整个",":","branch","declaration)*","elf(execut","format)。","fp","gcc","link","pdf","program","qemu)使用的可执行文件的格式是","stage","step","step10","step10:全局变量","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","准备报告。","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","只需要提交一份报告,你不需要单独为","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","对有兴趣的同学:","当然,广义上的编译器就囊括了这所有阶段。","我们只接受","我们要支持的是全局变量,语法改动非常简单:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","是其中存放代码的段(section),.bss","格式的实验报告,你需要将报告放在仓库的","段或","段里。","汇编课上应该讲过,实际中(包括","的实验报告需要放在","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","访问它也不能通过","这个","都是其中存放数据的段,前者零初始化后者须指定初始值。"],"docs/step10/example.html":["#",".bss",".data",".globl",".space",".word","0","0(t0)","2024","2024;","4","=","_t0","_t0,","_t1","a0,","ast","bss","data","instruct","int","la","load","load_symbol","lw","main()","main:","main:","minidecaf","mv","offset","ret","return","risc","riscv","step10","step5","symbol","t0,","t1","t1,","tac","v","v0,","x","x:","x;","{","}","上例中,.data","下面给出","个偏移的内存地址中的数据","中存储地址,加载与该地址相差","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中间代码生成","临时变量","为全局符号;.word","为字符串,加载","代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码,这样可以使中端与后端完全解耦。","伪指令可能会被转换成哪些","写出","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","参数","参考的","变量符号究竟存在哪里,如果所生成的汇编程序不给出","后是一个","含义","和","声明","字节。","字节整数,是","存放到","实际上,我们提供的中间代码设计和","实验指导","将全局变量放到特定的数据段中","思考题","所对应的数据段。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令链接:https://github.com/thethirdone/rars/wiki/support","按照汇编约定,data","提供了一系列的汇编指令,用以声明全局变量","数据段;.globl","有了上述两条指令,可以将测试用例翻译如下:","本实验指导使用的例子为:","本步骤引入全局变量,在引入全局变量之后,ast","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","汇编中有对应","汇编的思想是一致的,risc","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的定义,程序是有bug的。实际上,risc","的指令,我们直接给出翻译结果:","目标代码生成","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","符号对应的初始值。","符号所代表的地址","经过","翻译中间代码","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","表示存储空间大小为","表示输出到","表示预留一块连续的内存,4","词法语法分析","语义分析","请注意,tac","请注意,翻译所得的","这一","通过例子学习","针对全局变量,我们需要新设计","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。"],"docs/step10/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(express","(function","(type",")","0。","1+3==4","10.1","10.2","10.3","2+3)。","2123),对初始化表达式是非字面量的情况不做任何要求(例如",":",";","a;","a;}","a=0;","a=1+3;。编译器可以计算出","a=2;","a=4;。","a=f();","a=f();。","a=f();,其大致实现为","addit","assign","block_item","block_item*","c","c++","compound_stat","condit","declar","declaration)*","equal","express","expression)*)?","expression)?","expression?","expression_list","f()","function","identifi","identifier)*)?","int","integ","logical_and","logical_or","main","main(){","multipl","parameter_list","postfix","primari","program","relat","return","statement","statement)?","step10","type","unari","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不允许","不是编译器常量;","为了简单,我们不要求这点。比如对于形如","之前执行的初始化函数中","代码,不过不是合法的","代码,也许","但为了实现简便,我们就不要求支持这点。","其实也支持非字面量的编译期常量,例如","因为","如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值","对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如","我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。","或","是合法的","每个步骤结尾的","灰色部分表示相对上一节的修改。","然后在","然后让它等价于","甚至可以支持","的代码片段,你可以以任意方式处理。","的处理方式更符合你的直觉。","而","规范","语义规范","语法规范"],"docs/step11/intro.html":["'('","')'","';'","'['","']'","']')*","('='","('['","./reports/.pdf,比如","./reports/stag","11","6","6.pdf。整个",":","branch","declar","express","expression)?","expression_list","identifi","integ","minidecaf","pdf","postfix","primari","stage","step","step11","step11:数组","type","|","下的","之前甚至","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","数组的下标操作","数组的初始化:","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","的目标是支持数组:","简要叙述,为了完成这个","语法上没有太大改动,","这个","连快速排序都写不了。","难度不大,但有了数组让我们能够写很多有意思的程序了,step11"],"docs/step11/example.html":["#","+","...","...;","0","0;","11","4","40","5","5;","=","a[0][1]","a[d1][d2]...[dn],访问元素","a[i1][i2]...[in]","a[i1d2d3...dn","a[n];","a[n][m];","alloc","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","ast","base,索引下标","bss","c","frontend/type/array.pi","i2d3...*dn","identifi","in]。在将数组索引翻译成","index","indexexpr","int","length","load","m","main()","main:","n","namer","return","size","sp","stage","step","step10","step11","store","t0","t1","tac","typer","x[10];","y[10];","{","}","一个","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","中引入的","中类型检查的部分,以及","中间代码生成","中,使实现更加模块化。","了,还有可能是如","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","分配","参数","可以等价于访问","同中间代码生成,全局数组自行思考实现。","含义","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","字节的内存,并返回内存首地址","实验指导","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","思考题","成员","指令","指令将值写入数组元素。","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令来实现,我们还需要引入一条类似的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","数组和普通变量类似,可以分为局部数组和全局数组。","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","有能力的同学可以考虑将原先","本实验指导使用的例子为:","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","段内存)。","注意:引入数组后,左值不再一定是","用于分配内存空间:","由于","目标代码生成","类型为","索引基底","索引运算","节点","节点来表示它,给出的参考定义如下:","词法语法分析","语义分析","语言规范规定,允许局部变量是可变长度的数组(variabl","请注意,tac","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种,但仍然不允许类似","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","通过例子学习","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","采用","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对数组,我们需要设计","除了分配数组,我们还需要考虑如何访问数组元素。通过","需要增加的类型检查重构进","需要申请更大的"],"docs/step11/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')*","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","(express","(function","(type",")","0","11.1","11.2","11.3","11.4",":",";","a[1][7]","a[4][5];","a[];。","a[b],要求","a[n];","addit","assign","b","block_item","block_item*","compound_stat","condit","declar","declaration)*","equal","express","expression)*)?","expression)?","expression?","expression_list","function","identifi","identifier)*)?","int","integ","logical_and","logical_or","multipl","parameter_list","postfix","primari","program","relat","statement","statement)?","step11","type","unari","|","一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","下标运算越界是未定义行为。","个元素(从","中的第","即便是类似","对于下标运算","开始计数)。","我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。","或不定长数组","所以,我们不要求支持变长数组","是","是一个数组类型,b","是一个整数类型,a[b]","每个步骤结尾的","灰色部分表示相对上一节的修改。","规范","语义规范","语法规范","这种,同样也是未定义行为。"],"docs/step12/intro.html":["'('","')'","';'","';')","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'{'","'}')?","(','","('='","('['","(compound_stat","(integ","(type","./reports/.pdf,比如","./reports/stag","12","6","6.pdf。整个",":","branch","declar","function","identifi","integ","integer)*)?","parameter_list","pdf","stage","step","step12","step12:为数组添加更多支持","type","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","数组的传参:","数组的初始化:","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","的目标是支持数组的初始化和传参:","简要叙述,为了完成这个","语法上没有太大改动,","这个"],"docs/step12/example.html":["*dst,","+","//","0,","0;","0。例如:","12","1;","2;","3);","=","a[0]","a[0][1]","a[1]","a[][12]){","arr[0]","arr[1]","arr[2];","arr[3];","arr[3]={1,2,0};","arr[3]={1,2};","arr[4]","c/c++","cnt);","fill_n","fill_n(arr,","fill_n(int","fun(int","func(arr);","func(int","int","main()","memset","minidecaf","param[0]","param[]){","res,","return","step","step12","{","{1,2};","}","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中间代码生成","作为函数参数的数组类型第一维可以为空。事实上,在","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数的参数列表需要加上数组类型。","因此,上述初始化可以等价地转化为:","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","实验指导","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","思考题","总结","恭喜你实现了","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","本实验指导使用的例子为:","由于","目标代码生成","等价于","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","词法语法分析","语义分析","语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。","这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。","通过例子学习","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。"],"docs/step12/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","'}')?","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","(express","(function","(integ","(type",")","12.1","12.2","1;","2,","2;","3,","3;","4;","4};",":",";","=","a[0][0]","a[0][1]","a[1][0]","a[1][1]","a[2][2]","a[])","addit","assign","block_item","block_item*","compound_stat","condit","declar","declaration)*","equal","express","expression)*)?","expression)?","expression?","expression_list","fun(int","function","identifi","int","integ","integer)*)?","logical_and","logical_or","multipl","parameter_list","postfix","primari","program","relat","statement","statement)?","step12","type","unari","{1,","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","会将数组变为","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","数组传参是支持不定长度的","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","每个步骤结尾的","灰色部分表示相对上一节的修改。","规范","语义规范","语法规范"],"docs/step13/readme.html":["选做二说明","选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。","选做实验二说明"],"docs/step13/intro.html":["./reports/.pdf,比如","./reports/stag","6","7","7.pdf。整个","backend/reg/bruteregalloc.pi","branch","coalesc","iter","pdf","regist","stage","step","step13","step13:寄存器分配算法改进","step5","toplas'1996:","下的","中提到的当前代码框架中的分配算法。","举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的?","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要为代码添加合理的注释以便批阅。","你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。","你需要:","只需要提交一份报告。","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。","我们只接受","提出的寄存器分配算法,并以此代替","改进你的编译器,支持上面提到的寄存器分配算法。","格式的实验报告,你需要将报告放在仓库的","的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看","的实验报告需要放在","的数据流分析一节。","的目标是实现论文","简要叙述,为了完成这个","详细说明你的代码的运行逻辑","语法上没有改动。","这个","除了替换位于"],"docs/step13/example.html":["(_t0,_t1)","(_t0,_t2),(_t0,","(_t0,_t3)","(_t2,_t3)","(a,b),可以如此检查它们是否可以合并:","*","+","1","1;","2","2;","3","3;","4","6","=","_t0","_t0,_t2,_t3","_t1","_t1}","_t2","_t2,","_t3","_t3)","_t3),(_t2,","_t3}","a;","b","b,f涂成相同颜色。这样就会导致","brigg","b有边相连的所有结点中有多少个","c","calle","chaitin","coalesc","d","d;","degre","f","f()","instructions)(其实就是赋值)传值的寄存器。","int","iter","j","k","move","n","regist","return","save","save/cal","signific","step","step13","tac","toplas'1996:","{","{_t0,","{_t0}","{_t1}","{_t2,","{}","}","一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。","上面的说明只是简要介绍了算法的原理,请阅读论文","上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。","下面简要介绍一些你可能需要的预备知识。","不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把","个变量,m","个寄存器可用于存放变量),那么可以依照下面的顺序执行","个点的颜色冲突。","个结点不会在在步骤1被删除,因此如果","个结点,m","个,说明最多有","中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下:","中活跃变量的例子:","中间的虚线边改为实线,表示不再考虑二者合并的情况。","事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。","事实上,我们可以用图染色问题去描述“相互冲突的变量”:","代码","例如下面的代码","假定我们有","共用寄存器。","可以不合并但强制这两个点同色吗?","可以在保证合并后边数","可以直接合并这两个点吗?","可以跟","可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的","可以,但这样合并的点数比较少,优化效果差。这实际上是更早的","合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的","否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。","否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。","和","回顾:启发式寄存器分配算法","图染色问题:有","在step","在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copi","基于图染色的寄存器分配算法","基于复制指令的寄存器合并","如何找到所有冲突的变量","如何解决寄存器分配对应的图染色问题","如果不能合并,那么把","如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少","实验指导","容易发现,至少需要3个寄存器。因为","寄存器分配问题:有","寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。","对于仅因复制指令相互冲突的一对点","寻找图中是否有连接了少于","将每种颜色对应到寄存器上,生成后端代码。","尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的","当恢复一个从步骤1删除的结点时,因为当前它连接了少于","当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有","我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。","或者","执行时","把图中当前所有结点中,连接了至少","指令。","按删除的逆序恢复所有结点。","提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。","方便全局优化寄存器分配,减少基本块之间的","本节实验要求实现论文","条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。","条边的结点。","条边的结点标记为","条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于","条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。","条边,所以我们总能为它指定一个颜色,使之不和相邻的最多","活跃变量集合","点。如果有","用上面提过的活跃变量分析可以算出,在","的。看上述图染色算法流程,可以发现如果一个点不是","的情况下合并这两个点吗?","的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。","的解决方案。","的颜色和","的,它会在步骤1被删除。","相互冲突,需要各一个寄存器,而","相同,从而意外地和","相同,导致溢出到内存。","相干寄存器","种颜色可用于染色(对应","种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。","组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。","统计与","而在step5","获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。","这个思路相比代码框架中的启发式寄存器分配算法有以下好处:","这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配?","这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。","这篇实验要求实现的论文的解决方案","这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。","都是活跃变量。但观察代码可以发现","重用一下","首先检查是否存在空闲的寄存器,有则直接分配给当前变量。"],"docs/contest/intro.html":["&","(两周)","*","/","1","1.67","10%","100","12","20","2023","2024","3","30%","35%","4","40%。","42%","48%。","5","5%))","50%","55%。","5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)stage","6","60%","6),包括附加测试样例。","7","90%,剩余","analyzer):检查ast是否符合语法规则和语义规则。","arm","ast","ast,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现","bison)辅助你生成","c++,rust","code","cpu","gcc","gcc编译程序运行时间","generator):将","generator):将优化后的中间代码转换为目标机器代码。","ir","ir、完成中间代码生成","ir,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。","lr(1)、ll(1)","minidecaf","minidecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低","min{100,","o1与","o2优化的性能的","o2)。","qemu","qemu与","represent","risc","riscv","stage","step","step12","sysi","v","一个编译器主要由以下几个部分构成:","不再要求完成基础实验以后再进行大实验","中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等","中端:负责中间代码生成、优化。","中间代码生成器(intermedi","中间代码生成:将","为书面作业和日常成绩。","为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:ir","为满分,按照比例折算。如果一个程序","也是需要进行代码编写的,可以参考基础实验框架的ir在代码层面是如何实现的(utils/tac)。","仅完成竞赛第一阶段(达到课程基础实验的要求)","介绍","优化器(optimizer):对中间代码进行优化。","作为你的最终性能测试成绩。","你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。","你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除","你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评","你可以选择","你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩)","你的单个测试点的得分为:","你的程序运行时间}","你的编译器应该能完成将简单的程序转换为","你的编译器应该能通过所有的测试样例(stage","其中这90%构成为:","分工建议:两位同学负责中端优化,两位同学负责后端优化。","分(总评","前端:你可以使用现有的框架完成前端(如:antlr、flex","前端:负责词法分析、语法分析、语义分析,生成抽象语法树(ast)。","即为满分。","参加大实验的同学应该需要自己从头设计一个符合","参考实现进度及顺序","可以通过后续的文档了解每个部分的更多细节。","后端优化:图染色寄存器分配、线性扫描法、指令折叠等等","后端:负责目标代码生成。","因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案:","增加中端优化和后端优化(剩下的时间)","增加了实验文档","大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。","大实验参考文档","大实验在","大实验的语法规范与","大实验简介","大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。","大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。","完成","完成后端(两周)","完成竞赛第二阶段的优化编译器,替代期末考试","实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。","实现你的编译器,你的编译器生成的目标代码可以是","实现后端代码生成、栈帧管理","实验成绩","实验评测仓库在这里。","实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个","寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。","年有一些变化,主要体现在:","年相对于","性能测试,将根据你的编译器的性能进行评分。","性能评分方案:","成绩占比","我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的","或者","截止之前完成","截止前完成","所有测试点取算数平均值,最后结果","打开","报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。","有两个原因我们要求同学们从头设计一个编译器:","架构的","架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。","模拟","正确性测试:你需要通过","此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。","汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)stage","注意:大实验工作量较大,并不推荐所有同学都参加。","注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。","的。根据通过测试样例情况评分。","的实验,不会有额外扣分。","的所有测试样例以及附加测试的测试样例,这样你可以获得","的正确性得分。","的测试样例。","的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。","的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。","的规范是一致的。不过有一点需要注意:","目标代码生成器(target","真实硬件的性能相对差值是比较恒定的(如比较","第一次进度检查:第六周周六(10.19)","第三次进度检查:第十二周周六(11.23)","第二次进度检查(中期检查):第八周周六(11.2)","第四次进度检查(期末检查):第十六周周末(12.29)","等分析器。","编写前端、设计","编译后运行时间为","编译器的构成","规范","让你的编译器能够通过","设计","评分方法","评测将会在我们提供的服务器上进行,通过","词法分析器(lexer):将输入的源代码转换为一个个的标记(token)。","语义分析器(semant","语法分析器(parser):将标记(token)转换为抽象语法树(ast)。","语法改为了","语法要求从","调用约定。","转换为","转换为中间代码。","运行你的程序。经过测试","这时候你的编译器应该能通过基础实验的所有测试样例(stage","进度检查","选项一","选项二","附加测试中performance部分测试样例,以",",不额外扣分。也可以继续大实验不做基础实验,但是至少要在",",书面作业和日常成绩",",如果你的程序执行时间为",",期末成绩"],"docs/contest/frontend.html":["!=","\"${cmake_cxx_flags_debug}","\"${cmake_cxx_flags}\")","\"*.cpp\")","\"antlr4","\"frontend/lexer/simplecbasevisitor.h\"","\"frontend/lexer/simpleclexer.h\"","\"frontend/lexer/simplecparser.h\"","\"src/*.cpp\")","#","#includ","${antlr4_src})","${src})","&","&&","&name)","&name){","&name,","&symbol)","'","'('","')'","'*'","'+'","'/'","';'","'='","'if'","'int'","'return'","'{'","'}'","(","(!isvalidtype(vartype))","(!lefttyp","('else'","(anoth","(ctx","(express","(funcdeclar","(lefttyp","(program","(statement",")","*.cpp","*.h","*ctx)","*node)","+","...","./my_compil",".cpp",".g4","//","//···","/path/to/antlr","1","1)","1))","1.","16","17)","19","2","2))","2.","21","3.","3.10)","3rd_party/","3rd_party/antlr4","4.13.2","5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。","9]+","9_]*",":",";",";)",";))","=",">",">equals(righttype))",">expr());",">insert(name,",">isfloat()",">isfloat())",">isinteger()",">isinteger())",">left);",">lookup(name);",">parent;",">right);",">statement(0));",">statement(1))",">statement(1));",">type;","[","[0","[a","\\t\\r\\n]+","___","a)","add_executable(my_compil","add_library(antlr4_runtim","add_subdirectory(3rd_party/antlr4","addexpr","antlr","antlr4","antlr4;","antlr4_runtim","antlr4_runtime)","antlr4_src","antlrinputstream","antlr。前几行(3","antlr简介","apt","argc,","argv[])","assign","assign:","ast","ast/","astbuildervisitor","astnod","astvisitor","ast),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。","atn","augment","auto","b","b))","backend/","basevisitor","binari","bison,","book","bool","c","c)","c++","c++17","c++。通过定义语法文件(.g4","c++)","c++,你可以从","char*","class","clone","cmake","cmake_minimum_required(vers","cmakelists.txt","common.h","commontokenstream","complete.jar","complete.jar(截至文档写作时此为最新版)。","complete.jar替换成你的","cond","cond(std::move(cond)),","cond,","cond;","const","cout","cpp的","currentscop","currentscope;","cxx)","ddebug\")","debug","declarevariable(const","diagram","directori","div","div:","divexpr","dlanguage=cpp","download","dragon","e.g.,","elsebranch","encod","encoding;","enterscope()","euc","exampl","exitscope()","expr","express","expression.\");","expression:","f_stream.open(argv[1]);","f_stream;","file","file(glob_recurs","flex","floattype();","frontend/","funcdeclar","funcdeclaration:","gener","git","github","glob_recurs","grammar","grammars,","has_otherwise(oth","has_otherwise;","id","id:","ifcontext","ifcontext,对应的语法规则如下:","ifnod","ifnode(std::unique_ptr","ifnode,并返回","ifnode:","ifstat","ifstream","include_directories(3rd_party/antlr4","include_directories(src)","input(f_stream);","insert(const","instal","int","int:","intexpr","jar","java","java、python","jdk","jp","jvm","languag","lc","lc:","lefttyp","lefttype;","lex","lexer","lexer(&input);","lexer/","lib","listen","listener(默认是激活的)和激活","locat","lookup(const","lp","lp:","main","main(){","main(int","main.cpp","midend/","minidecaf","minu","minus:","mismatch","mul","mul:","mulexpr","my_compil","namespac","network","node","nullptr)","nullptr;","o","openjdk","option","other(std::move(other)),","other;","output","overrid","parenexpr","parent","parent(parent)","parent;","pars","parser","parser(&tokens);","parser.program();","parser/","parser,只需要执行","parsetree*","plu","plus:","program:","project(my_compil","public","public:","rc","rc:","recognition)","resolvevariable(const","return","righttyp","rp","rp:","rule","runtim","runtime)","runtime.h","runtime.h\"","runtime/","runtime/cmakelists.txt","semanticanalyz","semi","semi:","set(cmake_cxx_flag","set(cmake_cxx_flags_debug","set(cmake_cxx_standard","simplec","simplec.g4","simplec.g4,并利用它生成一个","simplec;","simplecbasevisitor>","simpleclex","simplecpars","skip","specifi","src","src/","src/frontend/lexer_pars","src/main.cpp","statement","statement)?","statement*","statement:","statements:","static","std::make_shared(currentscope);","std::make_unique(std::move(cond),","std::move(elsebranch));","std::move(thenbranch),","std::runtime_error(\"invalid","std::runtime_error(\"typ","std::shared_ptr","std::string","std::unique_ptr","std::unordered_map>","std;","subexpr","sudo","symbol)","symbol);","symbolt","symboltable(std::shared_ptr","syntax","table;","table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。","target_link_libraries(my_compil","test.c","then(std::move(then)),","then,","then;","thenbranch","throw","token","tokens(&lexer);","token,然后解析器分析","tool","tostringtree(&parser,","transit","tree","tree,","tree/","tree:","tree;","tree。","tree。最终把一个简单的","tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用","tree)并根据其结构生成对应的","tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(ast)。ast","true)","type","type:","typecheckervisitor","us","vardeclar","variable.\");","vartyp","vartype;","version","visit(ctx","visit(nod","visitbinaryexpr(binaryexprnod","visitifstat","visitifstatement(simplecparser::ifstatementcontext","visitor","visitvariabledecl(variabledeclnod","void","ws:","yacc","z0","z_]","za","{","{}","|","}","}))","};","│","└──","├──","下载","下面我们以","中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。","中设置使用","中间代码目录","为","仓库下载","仓库下载预编译的库或者自己编译安装。但是官方的","代表","以下是一个简单的类型检查器示例:","以产生","作用域管理","你应该能看到类似以下的输出:","你需要从","使用","使用以下命令(记得把/path/to/antlr","使用文法文件生成","使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的","假设我们有一个解析树","其他类型检查逻辑...","函数声明规则","函数,为","函数,以生成","分支。通过","分支,并生成对应的","创建名为","利用","到头文件搜索路径","前端代码目录","前端参考资料","前端梗概","前端的主要任务是将源代码转换为抽象语法树(abstract","前端设计","前端预期目标","只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。","可执行文件链接","后端代码目录","向符号表中插入新的符号","和","和文法文件生成所需的","在当前作用域查找符号","在生成","在确认环境配置无误后,我们可以使用","在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。","在该类型检查器中,我们遍历","在这个项目中,我们推荐使用","声明和表达式","头文件","子目录作为子项目进行构建","安装","完成符号解析和类型检查后,编译器应该能够:","完成这部分内容后,你的编译器应该能够通过","宏","官方文档","定义","定义括号和符号","定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的","实现","实现了词法分析器分析输入(即字符)并产生","对应的","将","将整数提升为浮点数","工具需要","并填充其条件表达式、then","库与","忽略空格和换行","忽略规则:通常用来忽略空格、换行等空白字符。","总的来说,我们现在利用","我们使用词法分析器产生一个","我们创建一个在令牌流上工作的解析器","我们创建一个在该输入上工作的词法分析器","我们可以继承","我们将输入转换为","才能执行。","报告语义错误,如未定义的符号、类型不匹配等。","抽象语法树相关代码","指向父作用域的符号表","指定","提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。","操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。","支持多种语言,包括","教程","整数的规则","文件","文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与cmake文件实例.","文件包含以下几个部分:","文件名:","文件是","文件结构","文件),antlr","文件,我们能够为","方法遍历解析树中的","时,我们通常是在解析树(pars","时,我们需要遍历解析树(pars","是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。antlr","是什么,不用担心,我们稍后会看到。","是对大小写敏感的)","条件表达式","来处理","来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。","构建","构建并运行我们自己实现的编译器,你将会看到","标准为","标识符的规则","根目录下的","格式","框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如","检查变量声明的类型是否正确","检查右操作数的类型","检查左操作数的类型","检查所有的操作数和运算符的类型是否匹配;","检查操作数的类型是否匹配","检查是否有","模式。如果你还不知道","模式生成","模式的遍历代码,逐个解析树结点处理并生成","模式递归查找","模式遍历这个树并对这个树的每个节点进行一些操作。","模式,代码变得结构清晰且便于扩展。","模式,针对解析树的不同节点调用对应的处理函数,来生成合适的","流","添加","添加一个相应的","添加第三方库目录","添加项目的","源代码到你的代码仓库里,并为你的整个项目编写一个","源代码目录","源文件","然后,21","现在我们可以看到如何在","现在,使用","生成","生成词法分析器和语法分析器,能够将","生成词法分析器和语法分析器,解析源代码生成解析树。","由于","的","的可执行文件,将所有源文件编译链接到这个可执行文件中","的完整流程","的文法文件","的最小版本要求","的生成","的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。","的词法分析和语法分析部分。","的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。","目录下)","目录下所有的","目录中输出生成的代码。","目录到头文件搜索路径","直接使用包管理器安装:","示例","程序中使用我们生成的解析器。","程序入口文件","程序的语义分析。","程序的起始规则","程序解析为抽象语法树(ast),并完成对","符号表","符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(ast),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。","符号解析的核心工具是符号表(symbol","符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。","符号解析(namer)","第一部分:依赖环境准备","第三方库","第三部分:ast","第二部分:文法文件的编写与","第四部分:语义分析","等。","类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。","类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。","类型检查(typer)","类型的规则(这里只支持","类型系统","类型转换","类型)","类的","终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的","结点","结点。","结点。这里我们可以使用","结点包含条件表达式cond、then","结点构建抽象语法树,最终生成中间表示或目标代码。","结点,生成","编写","编写simplec.g4","编译原理经典书籍","编译器标志,这里没有额外添加,使用默认","编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。","能够帮助我们生成解析源代码所需的词法分析和语法分析工具。","脚本会从官方","自动生成的","节点","获取","行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。","行展示了使用","表达式的规则","被输出到终端中。","规则:定义语言中各种结构的模式。","解析器的标准方式:","设置","设置调试模式下的编译器标志,开启","设置项目名称和使用的语言(cxx","访问","访问并生成","访问并生成条件表达式的","词法分析与语法分析","词法分析器头文件","词法分析器源文件","词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。","词法分析相关代码","词法规则:定义词法单元(如关键字、标识符、符号等)。","语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出","语句块","语句块。","语句块和可选的","语句的","语句的规则","语句结点的定义:","语法分析器头文件","语法分析器源文件","语法分析相关代码","语法定义","语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为","语法文件,定义源语言的解析规则。","语言子集","语言程序","路径)测试是否能正常使用:","转换为一个","运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接","运行时库","运行时库是解析器生成的代码在运行时所依赖的代码。对于","运行时库的","运行时的编译链接","运行时目录(在源码的","返回表达式的类型","这个","这是我们程序的主文件,展示了如何在","进行隐式类型转换","选项分别用于禁止生成","选项用于设置输出目录。我们将在","通过","通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。","通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用;","通过编写","通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。","通过这种方式,我们能够将解析树转换为精简的抽象语法树(ast),为后续的中端和后端处理提供基础。","配置文件","配置文件,需要你手动添加一个","项目结构","预期目标","首先,我们需要为"],"docs/contest/midend/midend.html":["!=","#","&","(body)","(children[0])","(children[1])","(children[2])","(children[3])","(cond)","(expr)","(ident)","(init)","(lhs)","(ret_t)","(rhs)","(type)","*","+","/","0","0;","0,跳转到_l0,否则跳转到_l1","1","100","11","18","1;","2","26","2;","35","5","6","7","8","9","=","_l0,","_l0:","_l1","_l1:","_l2","_l2:","_main:","_t0","_t0,","_t1","_t2","_t3","_t4","_t5","arm...)和源语言(minidecaf,","assign","ast","b","b;","block","bnez","book","c,","compil","def链、def","engin","function","gcm","gvm","identifier(\"a\")","identifier(\"b\")","identifier(\"main\")","if(a)","int","intliteral(0)","intliteral(1)","intliteral(2)","ir","ir。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。","ir)是介于语法树和汇编代码之间的一种程序表示。","ir)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的ast转换为中端代码。","ir,只需要写","ir,并能够输出","java...)。由于不同源语言的","jump","llvm","m","main(){","minidecaf","mips,","n","program","represent","representation,","ret","return","ssa","tint","unaryop(neg)","use链、可达定义分析等。","v","v,","vardecl","x86,","|","}","一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的","不同,直接从","个","个模块。","个汇编生成器,只有","个源语言和","个目标代码生成模块。如果有了","个目标指令集,需要写","中端介绍","中端优化","中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。","中端参考资料","中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。","中端的设计包括:中间表示的设计、中端代码生成和中端优化。","中端设计","中间代码生成","中间表示","中间表示(也称中间代码,intermedi","什么是中间表示?","从这个ir例子中,我们可以看到,相对于c语言,ir中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在ir中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,ir中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。","代码:","代表a","代表b","你需要通过遍历ast的节点来将其转换为ir。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。","例如上述代码转化为ir后可能如下:","例如以下是一个ir代码的例子:","便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。","到","到汇编的步骤一分为二。如果目标代码有误,通过检查","到汇编翻译有误。","前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(intermedi","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。","如以下是一个简单的例子:","如果a","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","完成这部分内容后,你的编译器应该能将","将","我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。","我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。","我们将在中间表示设计中介绍ir设计时候需要考虑的地方和并列举一些实例。","我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如use","是否正确就可以知道:是ast","本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。","死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","生成器和","生成汇编的话,为了支持","生成的ast可能如下:","由于源语言(minidecaf)和目标语言(risc","程序翻译成","经过常量传播优化后,可以得到:","缩小调试范围,通过把","翻译有误,还是","跳转到_l2","跳转到_l2,跳过else块","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","进一步如果我们进行死代码消除,可以得到:","适配不同指令集(risc","预期目标"],"docs/contest/midend/ir.html":["#","(foo,","(func_name,","*target;","+","...","...)","//","0","1","2","40",":","=","_b0:","_l0","_l1,","_l2","_t0","_t0,","_t1","_t1)","_t1,","_t1。下面是另一个ir输出格式的例子:","_t2","_t3","add","add,","addr,","address","alloc","arg1,","arg2,","arithmet","arithmetic,将","basicblock","basicblock,每个","binari","blocks;","bool","call","code,","cond,","controlflow","controlflow,","div","dst;","enum","function","functions;","function,每个","globals;","i32","instruct","instructions;","instruction。","instruction,然后根据不同的指令类型定义不同的子类。","int","ir","ir。在静态单赋值的","ir,这里有一些参考:","is_reg","is_reg;","jump","label","label1,","label2","label;","llvm","load","main","main()","main:","malloc","mips)规定的物理寄存器,其数目有限;而","mul,","name;","neg","offset","op","opcod","opcode;","operand","program","public","reg_id;","return","risc","size","src","src,","src1,","src1;","src2","src2;","std::string","std::vector","struct","sub,","tac","tac)是一种经典的","type","type;","unari","union","union{","v,","value;","x86,","{","}","};","——","“虚拟寄存器”","一些tips:","一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。","一元运算(如取负、取位反)","三地址码","三地址码为例,介绍中间表示的设计。","三地址码(three","下面以二元运算指令为例,展示如何定义一个具体的指令类。","不同,主要用于在栈上分配内存)","中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。","中间表示设计","中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。","临时变量赋值操作","二元运算需要两个操作数,并且会产生一个计算结果。","二元运算(如加、减、乘、除)","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出","代码的格式,只要方便自己调试即可。例如,你也可以将","以上给出了一份","你会发现,我们的程序组织成了一个树状结构,即","你会发现,这种ir输出格式包含了一些类型信息,也更加易读。","你可以在instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。","你可以在instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将","你完全可以不按照我们给出的这些结构来设计你的","使用的是","内存数据结构","内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的","函数入口标签","函数调用语句","函数返回","加法操作","加载操作:dst","加载立即数","包含多个","包含多条","北大编译实验koopa","取负操作","和","因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体:","在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体:","在编译器中有着广泛的应用,比如","基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可:","存储操作:store","就是一种静态单赋值的","形式:branch","形式:dst","形式:jump","形式:return","我们使用一个","我们可以为所有指令定义一个基类","我们是以函数为单位来组织基本块的,函数定义为如下的结构体:","我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句?","指令与汇编指令比较类似,每条","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。","操作数一","操作数二","操作码","整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体:","无条件跳转语句","有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器:","有了这些语句以后,我们的ir就可以描述源程序的语义了。","条件跳转语句","来存储操作数的值或者寄存器编号,使用一个","来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要","汇编里面使用的是目标平台(如","的","目标寄存器","看起来很像汇编,与汇编最大的区别在于","示例程序。请注意","示例:_t2","示例:_t3","示例:branch","示例:jump","示例:return","示例:store","算术语句:这是计算机最基础的语义。","继承自","而操作数可能是一个立即数,也可能是一个变量。例如以下的情况:","设计,tac","访存语句","赋值语句","跳转目标","跳转语句应该怎么定义?这里我们需要引入基本块的概念。","跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。","输出成","返回语句","这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。","这里我们以一种经典","进一步地,你可以实现符合静态单赋值要求的","都继承自","静态单赋值(ssa)","(也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。",",静态单赋值的"],"docs/contest/midend/irgen.html":["#","$a","'='","(args)","(array)","(body)","(children[0])","(children[1])","(children[2])","(children[3])","(cond)","(decl)","(expr)","(func)","(ident)","(index)","(init)","(lhs)","(params)","(ret_t)","(rhs)","(spec)","(type)","*","*(i32*","*(i32[3]*","+","0","0)","0;","1","10","12)","16)","1;","1;语句,ir会如何改变?)","2","2,","20)","24","2;","3","3,","4","4)","4,","4的式子来计算出y[1]的地址)","5","5,","6","6};","8)","=","==","_b0:","_b1","_b1:","_b2","_b2,","_b2:","_b2结尾都是jump指令,表示从true_bb、false_bb跳转到next_bb。","_b3","_b3:","_b3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_b0的结尾是一个branch指令,_b1,","_b3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_b4,","_b5两个基本块。多出来的_b6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_b6?提示:如果break;语句后面加上a","_t0","_t0,","_t0[i32","_t1","_t1)","_t10","_t10)","_t11","_t1[i32","_t1。为了满足","_t2","_t3","_t4","_t4]","_t5","_t6","_t7","_t8","_t8,","_t9","_t9]","alloca","alloca、load、stor","argumentlist","arrayref","arraytype())","arraytype(2,","arraytype(3,","assign","b","b;","b[1]);","b[2][3]","binaryop(add)","binaryop(eq)","binaryop(lt)","binop(add)","block","break","call","conditional,表示条件表达式。","declar","declaration,","declarator(identifier(\"b\"),","declarator(identifier(\"x\"))","declarator(identifier(\"y\"),","elementptr:","empti","express","expression,表示赋值表达式。","foo(a,","foo(i32","foo(int","foo函数的参数表示为_t0,","function","i32","i32*","i32[3]*","identifier(\"a\")","identifier(\"b\")","identifier(\"foo\")","identifier(\"main\")","identifier(\"x\")","identifier(\"y\")","if(a)","initlist","int","intliteral(0)","intliteral(1)","intliteral(10)","intliteral(2)","intliteral(3)","intliteral(4)","intliteral(5)","intliteral(6)","ir。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。","ir,并能够输出","jump","load","loadaddr","lvalu","lvalue节点的例子,希望能帮到你。","lvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释)","main()","main(){","main函数中对于数组b,先使用alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在loadaddr指令获取a的地址之后,还要用load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。","minidecaf","paramet","parameter_list","parameterlist","program","return","specifier(tint)","ssa","store","tint","tint)))","unari","unaryop(neg)","vardecl","while(a","x","x,","y[1];","y[])","{","{1,","|","}","上述代码转化为ir后可能如下:","中场休息","中间代码生成","什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。","介绍","例:","先给当前函数新增一个基本块true_bb表示if语句的true分支入口。","先通过前端变量到ir的data对象的映射表,找到该节点所表示的前端变量对应的data对象。","具体示例可以参考短路求值。","分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用","和","在本例中,","在本例中,_b0的最后是第一个while语句的条件部分,while语句还生成了_b1,","在本例中,生成了_b1,","在遍历ast的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到ir的data对象的映射表等。","如果子节点是declaration,说明这是一个全局变量,就新建一个data对象,再访问该declaration节点,从而将该全局变量的前端信息存入data对象中,最后将其加入到当前program对象中的global_data列表。","如果子节点是function,就新建一个ir的function对象,再访问该function节点,从而将该函数的前端信息存入function对象中,最后将其加入到当前program对象中的functions列表。","如果是数组参数,则可以直接保存在寄存器中。","如果是标量参数,要另外在栈上开空间。(这是为了满足","如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个jump指令,表示从false_bb跳转到next_bb。","如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。","如果有初始化,","如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。","如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then","如果这是个全局变量,则新增loadaddr指令,表示加载全局变量的地址,获取对应地址的寄存器","如果这是个局部变量,则直接通过data对象获取对应地址的寄存器","如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的getelementptr指令,表示通过数组基地址和下标获取元素的地址。","完成这部分内容后,你的编译器应该能将","对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足","对于parameter_list节点,可以把前几个寄存器编号分配给参数。","对于program节点,先新建一个ir的program对象,然后我们只需要再遍历子节点。","对于数组则需要遍历integer节点,并分别使用store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。","对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增store指令,表示将得到的寄存器的值存入该标量对应的地址。","对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。","对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。","将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从body_bb跳转到body_cond_bb。","将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从true_bb跳转到next_bb。","开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。","形式的","形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是ssa)。","形式)","形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_t2来进行。对于y[1],利用下标和getelementptr指令可以得到其地址,然后通过load指令可以得到其值。(getelementptr指令是为了写起来方便快捷;这里你也可以通过基地址_t1和下标1,构造出_t1","形式,哪怕是局部标量,也要用alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。","指令来简单地实现","整体思路是通过遍历ast的节点,根据节点类型进行相应的处理。推荐先根据ast的遍历顺序写一个框架,再填充具体的处理逻辑。","是两个表达式节点,对于if语句,这两个变量是两个语句节点。","最后将当前基本块改为next_bb。","最后新增store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。","本部分仅供参考,你需要根据自己设计的ast和ir进行调整。","注意:","生成的ast可能如下:","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值进行学习。","由于每个组的ast和ir设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。","目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。","看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list,","程序翻译成满足","给当前函数新增一个基本块body_bb表示while语句的循环体入口。","给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。","给当前函数新增一个基本块next_bb表示if之后的基本块。","给当前函数新增一个基本块next_bb表示while之后的基本块。","访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理:","这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。","部分处理思路","预期目标"],"docs/contest/midend/ssa.html":["#","+","...","0","1","2","3","4","5","=",">","[,","[1,","[_t0,","[_t1,","[_t3,","[_t6,","[_t7,","]","],","_l0:","_l0],","_l1","_l1:","_l2","_l2:","_l2]","_t0","_t0,","_t1","_t2","_t2,","_t3","_t4","_t4,","_t5","_t5,","_t6","alloc","alloca","alloca、load","alloca、load、stor","alloc、load","alloc,load","analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。","assign","assignment,","beqz","book","c","cfg:https://szp15.com/post/how","chapter3:https://pfalcon.github.io/ssabook/latest/","code","compiling.github.io/minisysi","construct","definit","elimination)、常量传播(const","https://buaa","int","ir","jump","load","main:","main],","mem2reg","phi","propagation)、值域传播(valu","propagation)等。","rang","ret","se","singl","ssa","ssa/","ssa)是编译器中间表示(ir)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。","static","store","temp","tutorial/challenge/mem2reg/help.html","x","x1","y","y1","y2","。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。","一种可能的方案是使用","上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到","举个例子,一种可能的中间代码表示为:","仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次)","但如果将上述代码变为","使得我们可以在生成中间代码时,使用","例如,考虑下面这段伪代码:","例如,考虑使用","函数和变量重命名,两个阶段。","另一种可能的方案是使用","可以简化每个变量的属性,进而简化编译器的优化过程。","呢?","和","因为","在前端生成中间代码时,首先使用第二种方案利用","在实现","在此基础上,进行","在此表示感谢!","在第一阶段,记录每个局部变量相关的","在第二阶段,遍历所有基本块,对其中局部变量相关的","如何构建","将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入","形式的","形式:","很显然,其中变量","很遗憾,上述程序并不符合","我们为什么要这样做呢?","我们如何实现","我们注意到,变量","或","技术。","指令。","指令。phi","指令分配到内存中,之后每次访问变量都通过","指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的","指令快速地构建满足","指令显式地读写内存。使用上述方案编写的程序满足","指令的语法是","指令的顺序对结果没有影响)。","指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的","指令,但频繁地访问内存将导致严重的性能问题。","指令,并由此在基本块的开头插入","按照","时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。","有没有更好的解决方案呢?","有,我们可以将两种方案结合起来。","构造算法。一种常用的算法是将整个过程分为:插入","正因如此,许多编译器优化算法都建立在","由于循环体的存在可能被赋值多次,因此上述写法并不符合","由此,上述程序中每一个变量只被赋值了一次,满足了","由此,我们的程序可以改写为:","的","的值来自于","的值,一种可能的写法为:","的基础之上,例如:死代码消除(dead","的第一次赋值是不必须的,因为变量","的组合。ssa","的组合针对局部变量生成符合","的要求。","的要求。(注意,ssa","的要求,且避免了繁琐地构造","的要求,因为其中变量","的阶乘。","相关的解释和详细说明可以参考:","编写程序使用循环计算","编写程序计算","被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(reach","被赋值了两次。正确的写法应该为:","要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用","要求的代码。","语言的思路,我们可能给出如下写法:","转化:","这一信息。","这一解决方案也被称为","随后,在上述代码的基础上,","随后,我们需要实现","需要注意的是,所有的","静态单赋值","静态单赋值这一小节参考并改编自北航的编译课程实验文档:","静态单赋值(static"],"docs/contest/midend/cp.html":["*","+","0","10","15","2","3","5","=","_main:","_t0","_t0和_t1的值是常量,将_t0和_t1的值分别存入常量表。","_t1","_t2","_t3","_t4","_t5","_t6","def和def","ret","use关系,找出所有用到常量_t0和_t1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_t2的值为5,也是一个常量,将_t2的值加入常量表。","use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","例如,对于如下代码:","依据def","常量传播","常量传播/常量折叠","常量传播/常量折叠的实现","常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下:","常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。","常量传播通常依赖use","经过常量传播/常量折叠优化后,代码变为:","遍历所有语句,找出常量定义,将其全部加入常量表。例如:","重复上述过程,直到常量表不再增加为止。"],"docs/contest/midend/dce.html":["#","*","+","1","2","2,因此","5","5,因此","=","_main:","_t0","_t0、_t3、_t4","_t1","_t1、_t2","_t2","_t3","_t4","code","code。","code,可以删除。","dce","dce)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。","def和def","elimination,","return","use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","也是必要值。最终","也是必要值。继续找到","具体实现上,可以借助du/ud链来实现:","函数中的指令,如果不在set中,就可以认为是dead","因此可以优化为:","对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","当以上迭代函数稳定不变时,所有未标记的指令都可以认为是dead","找出函数所有的必要值,标记这些值的定义指令。","是必要值","此处举个例子:","死代码消除","死代码消除通常依赖于use","死代码消除(dead","然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。","的定义指令都可以认为是dead","的方法(来源于《高级编译器设计与实现》(鲸书)):","维护一个set,存储所有必要值的定义指令。","这里介绍一种","都是必要值,而","重复上一步,直到set不再变化。","顺着ud链,可以找到","首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。"],"docs/contest/backend.html":["#","#2","#2]","(some","...","//","0","0(t0)","0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(risc","1","2","3","4","5","6","=","[r0,","[r0]","_t0","_t0,","_t1","_t1,","a0","a0,","a1","a1,","add","ai即可。","aj,","architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。","array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为stackobject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如","bne","call","coalescing的论文中并没有提及函数调用约定的处理方式,在这里以risc","epilogu","f(int","first","getint","getint();","immedi","int","ir中的phi指令。通常phi指令会被翻译为mv指令,但留意多条phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。","ir里通常会假设数量无限的虚拟寄存器(或称作变量),但目标isa(instruct","label1","label1,后续再通过无用指令消除去掉li","ld","ldr","length","li","loadfromstack","loadstackaddr","lot","lsl","main()","main:","mov","move","mv","obj,","offset(sp)就足够了。需要注意的是storetostack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为loadstackaddr和一条store指令。","offset)","offset:","offset:将t0中的内容写入到栈上对象obj偏移offset处","offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0","omit","phase","pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。","prologu","putint","putint(int);","putint(x);","putint的liveout集合中,会与全部的cal","r0,","r1","r1,","regist","ret","return","s0","s0,","saved寄存器上。经过后续优化可能的最终汇编代码如下:","saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有cal","saved寄存器加入到call指令的def集合中,剩下的事情交给寄存器分配算法处理。考虑以下c语言片段:","saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g.","saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在cal","saved寄存器相干涉,这样x就会自动被分配到calle","second","set","sp,","ssa","storetostack","stuff...","swap","swap(int","swap(y,","swap:","t0","t0,","ti,","ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。","void","v为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个c语言片段:","v指令序列","v指令序列:","v汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。","v的i型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。","weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。","x","x)","x);","x,","x;","xi,","xi的方式将全部xi移入ti中,接下来再生成mv","y","y)","y,","zero,","{","}","代码生成","代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame","以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下:","但大多数时候ld","例如以下的risc","具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参)","再举一个arm的例子。arm的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列","函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。","可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。","可以被合并为一条指令:","可以被替换为bne","后端设计","在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。","在寄存器分配前可能对应如下代码:","在生成函数调用的代码时,除传参外,还需要考虑caller","在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码:","在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。","在这里我们介绍一种可能的实现方式。我们暂不考虑vla(vari","处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在iter","处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv","寄存器分配","寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spil","对于一条ir指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些ir指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。","对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。","将栈上对象obj偏移offset(立即数)处的内容加载到","常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。","必须是8的整数倍)。","指令调度","指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造dag,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。","指令选择","指令选择相关的窥孔优化","最终我们将以上的这些“指令”展开。例如loadfromstack可以保守地展开为以下risc","栈帧确定和最终代码生成","此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。","目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将ir翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。","目标架构相关优化","确定栈帧后生成函数的prologue和epilogue,其中主要包括calle","编译器后端的主要功能是将中间表示(ir)转换为目标架构的汇编代码,在我们的课程实验中即将tac翻译为risc","课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度)","调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量t1到tn,然后按照mv","这种汇编代码模式在数组访问中较为常见。","这里举几个例子:","这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_t0与a1相干涉(指令4的use集合、指令3的liveout集合包含a1,_t0在指令3的def集合中),因此_t0不能被分配到a1;同时_t0也与a0相干涉(指令6的use集合,指令5的liveout集合包含_t0,a0在指令5的def集合中),最终_t0被分配到一个新的寄存器t0。而_t1可以安全地被分配到a1,故指令4被视作无用指令消除。","这里简单地举几个例子。","逻辑与和逻辑或。可详见step4。","采用上述方式,x处于call","附:函数调用相关"],"REFERENCE.html":[":","abdulaziz","approach","book","c","c17","compil","compiler:","construct","ghuloum","gustedt","increment","jen","languag","live","monkey:","n2176(n2176","nora","program","risc","sandler","v","v(非官方)汇编指令用法","write","参考资料","手册","是","标准正式发布前的最后一版草案,根据","标准的编者之一","标准相比只有表述上的差异)","标准草案","的博文,其与"]},"length":63},"tokenStore":{"root":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.02531645569620253},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.035211267605633804},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.013440860215053764},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.018433179723502304},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.02247191011235955},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},",":{"docs":{},"g":{"docs":{},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"a":{"docs":{},"是":{"docs":{},"上":{"docs":{},"一":{"docs":{},"行":{"docs":{},"的":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"请":{"docs":{},"与":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}},")":{"docs":{},"完":{"docs":{},"成":{"docs":{},"通":{"docs":{},"过":{"docs":{},"例":{"docs":{},"子":{"docs":{},"学":{"docs":{},"习":{"docs":{},"一":{"docs":{},"节":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.016581632653061226}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},";":{"docs":{},"当":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{},"请":{"docs":{},"问":{"docs":{},"这":{"docs":{},"时":{"docs":{},"除":{"docs":{},"法":{"docs":{},"的":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"和":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"请":{"docs":{},"将":{"docs":{},"这":{"docs":{},"时":{"docs":{},"除":{"docs":{},"法":{"docs":{},"的":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"和":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"填":{"docs":{},"入":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"(":{"docs":{},"请":{"docs":{},"标":{"docs":{},"明":{"docs":{},"你":{"docs":{},"的":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"其":{"docs":{},"行":{"docs":{},"为":{"docs":{},"都":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{},"当":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"_":{"docs":{},"l":{"0":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"_":{"docs":{},"l":{"1":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"docs":{}}}}}}}}}},"docs":{}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"对":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"为":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{},"当":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"说":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"但":{"docs":{},"判":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"更":{"docs":{},"低":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"任":{"docs":{},"意":{"docs":{},"一":{"docs":{},"对":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"中":{"docs":{},"有":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"(":{"docs":{},"t":{"0":{"docs":{},")":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{}}},"(":{"docs":{},"假":{"docs":{},"设":{"docs":{},"该":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"使":{"docs":{},"用":{"docs":{},")":{"docs":{},"。":{"docs":{},"总":{"docs":{},"的":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"一":{"docs":{},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},"机":{"docs":{},"会":{"docs":{},"包":{"docs":{},"括":{"docs":{},"识":{"docs":{},"别":{"docs":{},"出":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"中":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"至":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"1":{"0":{"0":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.022321428571428572}},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},",":{"docs":{},"对":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"的":{"docs":{},"回":{"docs":{},"答":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}},".":{"1":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},".":{"0":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}}},"2":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"3":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"docs":{}},";":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"这":{"docs":{},"类":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"都":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"1":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},".":{"1":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"2":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"3":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"4":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"docs":{}}},"2":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},".":{"1":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"2":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"docs":{}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"3":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},"5":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}},"6":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"7":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"8":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"docs":{},".":{"1":{"docs":{},",":{"docs":{},"端":{"docs":{},"口":{"docs":{},"为":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{"./":{"ref":"./","tf":0.013745704467353952},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.15625},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.05154639175257732},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.01838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.043478260869565216},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.04424778761061947},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.04017857142857143},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03763440860215054},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"2":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"3":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"6":{"7":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"整":{"docs":{},"个":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.033707865168539325},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"不":{"docs":{},"会":{"docs":{},"见":{"docs":{},"到":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"一":{"docs":{},"条":{"docs":{},"声":{"docs":{},"明":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"上":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"i":{"docs":{},"r":{"docs":{},"会":{"docs":{},"如":{"docs":{},"何":{"docs":{},"改":{"docs":{},"变":{"docs":{},"?":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}},"一":{"docs":{},"起":{"docs":{},"提":{"docs":{},"交":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}},",":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"]":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}},",":{"docs":{},"补":{"docs":{},"码":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}},",":{"docs":{},"!":{"docs":{},"!":{"2":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},"docs":{}}},"当":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}},")":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"讲":{"docs":{},"讲":{"docs":{},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"docs":{}}}}}}}},"则":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"以":{"docs":{},"下":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"这":{"docs":{},"些":{"docs":{},"实":{"docs":{},"现":{"docs":{},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}},")":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"(":{"docs":{},"待":{"docs":{},"我":{"docs":{},"们":{"docs":{},"加":{"docs":{},"上":{"docs":{},"四":{"docs":{},"则":{"docs":{},"运":{"docs":{},"算":{"docs":{},"后":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}},"+":{"2":{"docs":{},"*":{"docs":{},"(":{"4":{"docs":{},"/":{"2":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"3":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"=":{"docs":{},"=":{"4":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"docs":{}}}},"docs":{}},"=":{"2":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}},"docs":{}},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},"其":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}}}}}}}}},"2":{"0":{"2":{"0":{"docs":{},".":{"0":{"4":{"docs":{},".":{"0":{"docs":{},")":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}}},"8":{"docs":{},".":{"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}}},"docs":{}},"docs":{}}},"3":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"4":{"0":{"0":{"0":{"0":{"0":{"1":{"docs":{},"@":{"1":{"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"docs":{},".":{"1":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"年":{"docs":{},"秋":{"docs":{},"季":{"docs":{},"学":{"docs":{},"期":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"配":{"docs":{},"置":{"docs":{},"好":{"docs":{},"的":{"docs":{},"机":{"docs":{},"器":{"docs":{},",":{"docs":{},"节":{"docs":{},"省":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"花":{"docs":{},"费":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"docs":{}},"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},".":{"0":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}},"docs":{}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"1":{"2":{"3":{"docs":{},")":{"docs":{},",":{"docs":{},"对":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"非":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"不":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"要":{"docs":{},"求":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"4":{"7":{"4":{"8":{"3":{"6":{"4":{"7":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025}}},"8":{"docs":{},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"写":{"docs":{},"成":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"2":{"3":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}},",":{"docs":{},"则":{"docs":{},"命":{"docs":{},"令":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}},"docs":{}},"3":{"3":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},";":{"docs":{},"}":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"docs":{},".":{"0":{"4":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"docs":{}},"docs":{}}},"4":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},":":{"0":{"0":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}},"docs":{}},"docs":{}}},"5":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"6":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.031914893617021274},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.024193548387096774},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.03409090909090909},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"2":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"3":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"4":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"5":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"报":{"docs":{},"告":{"docs":{},"的":{"docs":{},"标":{"docs":{},"题":{"docs":{},"是":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}},";":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.017006802721088437},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{},"则":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"否":{"docs":{},"则":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"^":{"3":{"1":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955}},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"docs":{}},"docs":{}},")":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377}},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"”":{"docs":{},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},"因":{"docs":{},"此":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}},"下":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"分":{"docs":{},"支":{"docs":{},"并":{"docs":{},"继":{"docs":{},"承":{"docs":{},"当":{"docs":{},"前":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"业":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"分":{"docs":{},"支":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"要":{"docs":{},"求":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"不":{"docs":{},"短":{"docs":{},"路":{"docs":{},",":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"该":{"docs":{},"做":{"docs":{},"何":{"docs":{},"种":{"docs":{},"修":{"docs":{},"改":{"docs":{},"?":{"docs":{},"简":{"docs":{},"述":{"docs":{},"你":{"docs":{},"的":{"docs":{},"思":{"docs":{},"路":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"对":{"docs":{},"于":{"docs":{},"后":{"docs":{},"端":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"的":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"和":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"+":{"3":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}},"docs":{}},",":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"3":{"0":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}}}},"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"5":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154}},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04411764705882353},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.024390243902439025},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"0":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"1":{"docs":{},".":{"4":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"docs":{}}},"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"2":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"3":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"4":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"5":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}},",":{"docs":{},"即":{"docs":{},"其":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"是":{"docs":{},"未":{"docs":{},"指":{"docs":{},"定":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}},"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353}}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"报":{"docs":{},"告":{"docs":{},"的":{"docs":{},"标":{"docs":{},"题":{"docs":{},"是":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}},")":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}},")":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}},"(":{"docs":{},"前":{"docs":{},"序":{"docs":{},"表":{"docs":{},"示":{"docs":{},")":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"应":{"docs":{},"该":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}}}}},"4":{"0":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"%":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"2":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"8":{"docs":{},"%":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.04054054054054054},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.03333333333333333},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"3":{"docs":{},".":{"2":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}}},"docs":{}}},"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"2":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"3":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"4":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"5":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"}":{"docs":{},";":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"的":{"docs":{},"式":{"docs":{},"子":{"docs":{},"来":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"y":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"docs":{}}}}}}}}}}},"5":{"0":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}},"2":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}}}}},"5":{"docs":{},"%":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"6":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603}}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0375},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.017857142857142856},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.03409090909090909},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}},".":{"1":{"0":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}},"1":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"2":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"3":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"对":{"docs":{},"于":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"至":{"docs":{},"多":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"4":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"使":{"docs":{},"用":{"docs":{},"不":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"开":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"是":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}},"5":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"6":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"必":{"docs":{},"然":{"docs":{},"是":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"一":{"docs":{},"个":{"docs":{},"内":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"完":{"docs":{},"全":{"docs":{},"被":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"外":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"所":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"。":{"docs":{},"且":{"docs":{},"在":{"docs":{},"内":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"外":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"该":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"所":{"docs":{},"指":{"docs":{},"派":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"或":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{},"不":{"docs":{},"可":{"docs":{},"见":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"7":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"8":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"9":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"报":{"docs":{},"告":{"docs":{},"的":{"docs":{},"标":{"docs":{},"题":{"docs":{},"是":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}}}},"中":{"docs":{},"对":{"docs":{},"于":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"来":{"docs":{},"回":{"docs":{},"想":{"docs":{},"一":{"docs":{},"下":{"docs":{},"后":{"docs":{},"端":{"docs":{},"每":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"做":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"%":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}}}}},")":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"取":{"docs":{},"消":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"资":{"docs":{},"格":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"新":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"第":{"docs":{},"十":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"1":{"7":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"的":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"基":{"docs":{},"本":{"docs":{},"上":{"docs":{},"是":{"docs":{},"你":{"docs":{},"总":{"docs":{},"是":{"docs":{},"会":{"docs":{},"包":{"docs":{},"含":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"两":{"docs":{},"个":{"docs":{},"是":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"准":{"docs":{},"备":{"docs":{},"的":{"docs":{},"。":{"docs":{},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"而":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"但":{"docs":{},"概":{"docs":{},"念":{"docs":{},"保":{"docs":{},"持":{"docs":{},"不":{"docs":{},"变":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}},"6":{"0":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.047619047619047616},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.046153846153846156},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"中":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"把":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"信":{"docs":{},"息":{"docs":{},"改":{"docs":{},"成":{"docs":{},"“":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"”":{"docs":{},"。":{"docs":{},"也":{"docs":{},"即":{"docs":{},"定":{"docs":{},"义":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"1":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"2":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"3":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"4":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}},")":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"附":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"}":{"docs":{},";":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"7":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.061224489795918366},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}},".":{"1":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"2":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"3":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}},"8":{"0":{"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"会":{"docs":{},"被":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"优":{"docs":{},"化":{"docs":{},"为":{"5":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}}}}}}}}},".":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"2":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"3":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},".":{"0":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"\"":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}}},"4":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"5":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"7":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"8":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"9":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"docs":{}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"9":{"0":{"docs":{},"%":{"docs":{},",":{"docs":{},"剩":{"docs":{},"余":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"]":{"docs":{},"+":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"代":{"docs":{},"表":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"而":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"t":{"docs":{},"则":{"docs":{},"是":{"docs":{},"被":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"中":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"将":{"docs":{},"其":{"docs":{},"变":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"看":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}},".":{"1":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"2":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"3":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"4":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"5":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"6":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"docs":{}},"_":{"docs":{},"]":{"docs":{},"*":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"docs":{},"(":{"0":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}},")":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.03125}}}},"1":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.07547169811320754}},")":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}},"2":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377}}},"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"i":{"docs":{"./":{"ref":"./","tf":0.010309278350515464}},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}}}}}}},"n":{"docs":{},"t":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513}},"e":{"docs":{},"g":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}},"i":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"docs":{}}},"k":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}},"g":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"t":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},")":{"docs":{},"来":{"docs":{},"快":{"docs":{},"速":{"docs":{},"获":{"docs":{},"得":{"docs":{},"一":{"docs":{},"个":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"s":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}}}}},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}}}},"s":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"v":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"y":{"docs":{},"s":{"docs":{},"v":{"docs":{},")":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"u":{"docs":{},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01913265306122449}}}}},"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591}}}}},"2":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}},"3":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"docs":{}}}}}}}}},"t":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"l":{"docs":{},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"s":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}}}}},"e":{"docs":{},"f":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0084530853761623}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"'":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},"*":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"/":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"%":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}},"+":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},"=":{"docs":{},"=":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},",":{"docs":{},"'":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.027777777777777776},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}}},"o":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}},"a":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"d":{"docs":{},"d":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}},"/":{"docs":{},"b":{"docs":{},")":{"docs":{},"*":{"docs":{},"b":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}},"=":{"1":{"docs":{},")":{"docs":{},"+":{"docs":{},"(":{"docs":{},"a":{"docs":{},"=":{"docs":{},"a":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"docs":{}}}}}}}}},"docs":{}},",":{"docs":{},"b":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"如":{"docs":{},"此":{"docs":{},"检":{"docs":{},"查":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"docs":{},"否":{"docs":{},"可":{"docs":{},"以":{"docs":{},"合":{"docs":{},"并":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"r":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}},"x":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"o":{"docs":{},"o":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"2":{"docs":{},")":{"docs":{},",":{"docs":{},"(":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}}}},"3":{"docs":{},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}},"2":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"3":{"docs":{},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}},"docs":{}}},"两":{"docs":{},"周":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"!":{"docs":{},"i":{"docs":{},"s":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"s":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}},"+":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.00847457627118644},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.020833333333333332},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.02247191011235955},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.025423728813559324},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.016778523489932886},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.026785714285714284},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.021505376344086023},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.045454545454545456}},"、":{"docs":{},"减":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}},".":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},".":{"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}},"a":{"docs":{},".":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}},"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}}},"a":{"docs":{},"l":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},",":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{},"@":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},".":{"docs":{},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.049019607843137254},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888}}}}},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.031746031746031744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"=":{"docs":{"./":{"ref":"./","tf":0.030927835051546393},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.025423728813559324},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02027027027027027},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.03860294117647059},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.04504504504504504},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.045346062052505964},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.03048780487804878},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.08163265306122448},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.04081632653061224},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.06440677966101695},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03686635944700461},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.02771362586605081},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.030120481927710843},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.034722222222222224},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.056179775280898875},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0205761316872428},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.05084745762711865},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.018596787827557058},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.09060402684563758},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.07065217391304347},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0663265306122449},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.11021505376344086},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.2073170731707317},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.11363636363636363},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"=":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}},"(":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"和":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},">":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0392156862745098},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},"=":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"s":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"1":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"docs":{}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.015267175572519083}},",":{"2":{"3":{"3":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},"docs":{}},"docs":{}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.026717557251908396}},"a":{"0":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}}}},"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}},"7":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"1":{"docs":{},"]":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"docs":{}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"7":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}},"docs":{}}}},"2":{"docs":{},"]":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"docs":{}}}},"4":{"docs":{},"]":{"docs":{},"[":{"5":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}},"docs":{}}}},"docs":{},"(":{"docs":{},"l":{"docs":{},"+":{"docs":{},"r":{"docs":{},")":{"docs":{},"/":{"2":{"docs":{},"]":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"docs":{}}}}}}},"]":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},";":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}},"[":{"1":{"2":{"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"docs":{}},"docs":{}},")":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"i":{"1":{"docs":{},"]":{"docs":{},"[":{"docs":{},"i":{"2":{"docs":{},"]":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}},"docs":{}}}},"d":{"2":{"docs":{},"d":{"3":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"d":{"docs":{},"n":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}},"docs":{}}},"docs":{}}},"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"j":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"d":{"1":{"docs":{},"]":{"docs":{},"[":{"docs":{},"d":{"2":{"docs":{},"]":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"[":{"docs":{},"d":{"docs":{},"n":{"docs":{},"]":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"元":{"docs":{},"素":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"[":{"docs":{},"m":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}},"b":{"docs":{},"]":{"docs":{},",":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"后":{"docs":{},"端":{"docs":{},"除":{"docs":{},"了":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"部":{"docs":{},"分":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"本":{"docs":{},"地":{"docs":{},"测":{"docs":{},"试":{"docs":{},"或":{"docs":{},"者":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"多":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.031073446327683617},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.013513513513513514},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.01838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.013524936601859678},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308}},")":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"省":{"docs":{},"略":{"docs":{},"掉":{"docs":{},"了":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},"中":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"旁":{"docs":{},"边":{"docs":{},"的":{"docs":{},"括":{"docs":{},"号":{"docs":{},")":{"docs":{},",":{"docs":{},"有":{"docs":{},"利":{"docs":{},"于":{"docs":{},"简":{"docs":{},"化":{"docs":{},"树":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"后":{"docs":{},"续":{"docs":{},"对":{"docs":{},"树":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"下":{"docs":{},"面":{"docs":{},"这":{"docs":{},"一":{"docs":{},"段":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"为":{"docs":{},"中":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"提":{"docs":{},"供":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"前":{"docs":{},"端":{"docs":{},"会":{"docs":{},"经":{"docs":{},"历":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"等":{"docs":{},"多":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"逐":{"docs":{},"一":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"检":{"docs":{},"验":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"以":{"docs":{},"及":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"想":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"锻":{"docs":{},"炼":{"docs":{},"你":{"docs":{},"对":{"docs":{},"分":{"docs":{},"析":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{},"理":{"docs":{},"解":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"m":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},".":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.02880658436213992}},"。":{"docs":{},"但":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"操":{"docs":{},"作":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"获":{"docs":{},"取":{"docs":{},"返":{"docs":{},"回":{"docs":{},"码":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}}}}},":":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},")":{"docs":{},"通":{"docs":{},"常":{"docs":{},"只":{"docs":{},"允":{"docs":{},"许":{"docs":{},"有":{"docs":{},"限":{"docs":{},"数":{"docs":{},"量":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"必":{"docs":{},"须":{"docs":{},"将":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"上":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"无":{"docs":{},"法":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"架":{"docs":{},"构":{"docs":{},"上":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"访":{"docs":{},"问":{"docs":{},"开":{"docs":{},"销":{"docs":{},"显":{"docs":{},"著":{"docs":{},"低":{"docs":{},"于":{"docs":{},"内":{"docs":{},"存":{"docs":{},"访":{"docs":{},"问":{"docs":{},"开":{"docs":{},"销":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"发":{"docs":{},"生":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"2":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549}},"e":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"c":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"v":{"docs":{},"[":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"m":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{},"和":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"中":{"docs":{},"和":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},",":{"docs":{},"v":{"docs":{},"l":{"docs":{},"a":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"它":{"docs":{},"。":{"docs":{},"请":{"docs":{},"你":{"docs":{},"简":{"docs":{},"要":{"docs":{},"回":{"docs":{},"答":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"决":{"docs":{},"定":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"可":{"docs":{},"变":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"2":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"3":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"认":{"docs":{},"为":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"对":{"docs":{},"象":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"期":{"docs":{},"确":{"docs":{},"定":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"统":{"docs":{},"一":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"为":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"、":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"所":{"docs":{},"有":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"均":{"docs":{},"使":{"docs":{},"用":{"docs":{},"单":{"docs":{},"独":{"docs":{},"的":{"docs":{},"“":{"docs":{},"指":{"docs":{},"令":{"docs":{},"”":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"2":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"3":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},"=":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},",":{"0":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"docs":{}},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"docs":{}}},"docs":{}}}}},"4":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"docs":{}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"i":{"docs":{},"c":{"docs":{},",":{"docs":{},"将":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}},"d":{"docs":{},"d":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.00847457627118644},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603}},"t":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.02608695652173913},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.030927835051546393},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"3":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.034722222222222224},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},":":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"信":{"docs":{},"息":{"docs":{},"决":{"docs":{},"定":{"docs":{},"为":{"docs":{},"当":{"docs":{},"前":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"、":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"、":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}},"、":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}},",":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"p":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.006762468300929839}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.02282333051563821}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"。":{"docs":{},"前":{"docs":{},"几":{"docs":{},"行":{"docs":{},"(":{"3":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}},"简":{"docs":{},"介":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{},"检":{"docs":{},"查":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"是":{"docs":{},"否":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"和":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},")":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"称":{"docs":{},"为":{"docs":{},"“":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"析":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"在":{"docs":{},"很":{"docs":{},"多":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"上":{"docs":{},"述":{"docs":{},"过":{"docs":{},"程":{"docs":{},"将":{"docs":{},"变":{"docs":{},"得":{"docs":{},"更":{"docs":{},"加":{"docs":{},"困":{"docs":{},"难":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"%":{"docs":{},"b":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}},"1":{"docs":{},"+":{"3":{"docs":{},";":{"docs":{},"。":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}},"docs":{}}},"2":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693}}}},"4":{"docs":{},";":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}},"docs":{},"f":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},",":{"docs":{},"其":{"docs":{},"大":{"docs":{},"致":{"docs":{},"实":{"docs":{},"现":{"docs":{},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},";":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.019230769230769232},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"}":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}},"i":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}},"t":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"u":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"t":{"docs":{},"o":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609}}}}},"j":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"b":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"z":{"docs":{},"i":{"docs":{},"z":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.038135593220338986},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}},",":{"docs":{},"当":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"、":{"docs":{},"b":{"docs":{},"e":{"docs":{},"q":{"docs":{},"z":{"docs":{},"(":{"docs":{},"条":{"docs":{},"件":{"docs":{},"为":{"docs":{},"假":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"转":{"docs":{},")":{"docs":{},"、":{"docs":{},"b":{"docs":{},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{},"(":{"docs":{},"条":{"docs":{},"件":{"docs":{},"为":{"docs":{},"真":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"转":{"docs":{},")":{"docs":{},"或":{"docs":{},"者":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.059907834101382486},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.022222222222222223},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}}},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},":":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},"就":{"docs":{},"终":{"docs":{},"止":{"docs":{},"循":{"docs":{},"环":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}},",":{"docs":{},"或":{"docs":{},"者":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}}}}}}}}}},"。":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"(":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478}},"(":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},")":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}},"h":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"e":{"docs":{},",":{"docs":{},"索":{"docs":{},"引":{"docs":{},"下":{"docs":{},"标":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"r":{"docs":{},"k":{"docs":{},"u":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"_":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},"*":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},")":{"docs":{},"和":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"s":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"s":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},",":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"选":{"docs":{},"项":{"docs":{},"中":{"docs":{},"写":{"docs":{},"上":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"e":{"docs":{},"q":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"l":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"o":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},")":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"你":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"b":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"i":{"docs":{},"r":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"对":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"无":{"docs":{},"任":{"docs":{},"何":{"docs":{},"限":{"docs":{},"制":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}},"其":{"docs":{},"行":{"docs":{},"为":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"多":{"docs":{},"种":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"可":{"docs":{},"能":{"docs":{},"性":{"docs":{},"之":{"docs":{},"一":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"对":{"docs":{},"子":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"求":{"docs":{},"值":{"docs":{},"都":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}},"z":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},":":{"docs":{},"开":{"docs":{},"始":{"docs":{},"下":{"docs":{},"一":{"docs":{},"轮":{"docs":{},"迭":{"docs":{},"代":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}},"本":{"docs":{},"轮":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"进":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"次":{"docs":{},"迭":{"docs":{},"代":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},",":{"docs":{},"则":{"docs":{},"图":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"从":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"n":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"z":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.018433179723502304},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504}}}},"o":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}},"s":{"docs":{},"s":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}},",":{"docs":{},"f":{"docs":{},"涂":{"docs":{},"成":{"docs":{},"相":{"docs":{},"同":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}},"有":{"docs":{},"边":{"docs":{},"相":{"docs":{},"连":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},"中":{"docs":{},"有":{"docs":{},"多":{"docs":{},"少":{"docs":{},"个":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"2":{"docs":{},"]":{"docs":{},"[":{"3":{"docs":{},"]":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}},"docs":{}}},"c":{"1":{"7":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.1111111111111111}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"3":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"p":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"/":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"r":{"docs":{},"*":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.013745704467353952},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"(":{"docs":{},"持":{"docs":{},"续":{"docs":{},"集":{"docs":{},"成":{"docs":{},")":{"docs":{},"来":{"docs":{},"测":{"docs":{},"试":{"docs":{},"大":{"docs":{},"家":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"及":{"docs":{},"提":{"docs":{},"交":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"修":{"docs":{},"改":{"docs":{},"此":{"docs":{},"文":{"docs":{},"件":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}},"这":{"docs":{},"不":{"docs":{},"会":{"docs":{},"对":{"docs":{},"你":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"产":{"docs":{},"生":{"docs":{},"影":{"docs":{},"响":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"d":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04411764705882353},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"(":{"docs":{},"截":{"docs":{},"至":{"docs":{},"文":{"docs":{},"档":{"docs":{},"写":{"docs":{},"作":{"docs":{},"时":{"docs":{},"此":{"docs":{},"为":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"成":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"n":{"docs":{},"d":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.04054054054054054},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}},",":{"docs":{},"真":{"docs":{},"分":{"docs":{},"支":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}},"更":{"docs":{},"新":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03225806451612903},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513}},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"通":{"docs":{},"常":{"docs":{},"在":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"层":{"docs":{},"级":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"课":{"docs":{},"上":{"docs":{},"也":{"docs":{},"有":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"是":{"docs":{},"低":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"缺":{"docs":{},"乏":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"标":{"docs":{},"号":{"docs":{},"、":{"docs":{},"地":{"docs":{},"址":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"规":{"docs":{},"定":{"docs":{},"如":{"docs":{},"何":{"docs":{},"用":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"机":{"docs":{},"制":{"docs":{},"实":{"docs":{},"现":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"的":{"docs":{},"论":{"docs":{},"文":{"docs":{},"中":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"提":{"docs":{},"及":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"以":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"g":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"见":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"z":{"docs":{},"p":{"1":{"5":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"d":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0392156862745098},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}}}}}},"p":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"u":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"p":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"a":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}},"l":{"docs":{},"l":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.018475750577367205},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.022900763358778626}},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722}},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},",":{"docs":{},"语":{"docs":{},"句":{"docs":{},"中":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"返":{"docs":{},"还":{"docs":{},"给":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549}},"是":{"docs":{},"单":{"docs":{},"一":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"到":{"docs":{},"了":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203}}}},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},",":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"docs":{}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728}},"}":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"docs":{}},"+":{"docs":{},"+":{"1":{"7":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}},"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}},",":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"(":{"docs":{},".":{"docs":{},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}},"_":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"x":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"d":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"新":{"docs":{},"的":{"docs":{},"且":{"docs":{},"更":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"下":{"docs":{},"复":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"*":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"f":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.029411764705882353},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.014705882352941176},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}},"链":{"docs":{},"、":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"和":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"a":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"z":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"只":{"docs":{},"用":{"docs":{},"里":{"docs":{},"面":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"t":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},")":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"g":{"docs":{},"(":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"图":{"docs":{},")":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},",":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.04672897196261682}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}},"}":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},",":{"docs":{},"到":{"docs":{},"底":{"docs":{},"是":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"?":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"docs":{}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"i":{"docs":{},"a":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"v":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"=":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"c":{"docs":{},"e":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}},")":{"docs":{},"即":{"docs":{},"无":{"docs":{},"用":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},",":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"不":{"docs":{},"可":{"docs":{},"达":{"docs":{},"代":{"docs":{},"码":{"docs":{},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{},"前":{"docs":{},"者":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"作":{"docs":{},"用":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"多":{"docs":{},"余":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},")":{"docs":{},",":{"docs":{},"后":{"docs":{},"者":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"永":{"docs":{},"远":{"docs":{},"无":{"docs":{},"法":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"m":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},".":{"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.05357142857142857},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{},",":{"docs":{},"托":{"docs":{},"管":{"docs":{},"至":{"docs":{},"私":{"docs":{},"有":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"请":{"docs":{},"不":{"docs":{},"要":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"任":{"docs":{},"何":{"docs":{},"访":{"docs":{},"问":{"docs":{},"权":{"docs":{},"限":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"c":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.03640776699029126},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.03292181069958848},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"这":{"docs":{},"种":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"编":{"docs":{},"译":{"docs":{},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}},"m":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"s":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"p":{"docs":{},"h":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},"以":{"docs":{},"及":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"(":{"docs":{},"助":{"docs":{},"教":{"docs":{},"写":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},"暴":{"docs":{},"力":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"觉":{"docs":{},"得":{"docs":{},"它":{"docs":{},"不":{"docs":{},"够":{"docs":{},"好":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"的":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"换":{"docs":{},"掉":{"docs":{},"它":{"docs":{},")":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"这":{"docs":{},"里":{"docs":{},"最":{"docs":{},"主":{"docs":{},"要":{"docs":{},"的":{"docs":{},"是":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"将":{"docs":{},"中":{"docs":{},"端":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"采":{"docs":{},"用":{"docs":{},"了":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"模":{"docs":{},"式":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"进":{"docs":{},"行":{"docs":{},"上":{"docs":{},"述":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"将":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"优":{"docs":{},"化":{"docs":{},"后":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"v":{"docs":{},"m":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"2":{"0":{"0":{"6":{"docs":{},".":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"g":{"docs":{},"o":{"docs":{},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"/":{"1":{"1":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"2":{"4":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"2":{"4":{"docs":{},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"a":{"docs":{},"y":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"2":{"2":{"2":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"8":{"7":{"9":{"6":{"8":{"0":{"7":{"8":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"a":{"docs":{},"a":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"m":{"docs":{},"i":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}},"s":{"docs":{},"_":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}}},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"习":{"docs":{},"惯":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"i":{"2":{"docs":{},"d":{"3":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"*":{"docs":{},"d":{"docs":{},"n":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}},"docs":{}}},"3":{"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.016304347826086956},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.061224489795918366}},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.012755102040816327}}},"[":{"3":{"docs":{},"]":{"docs":{},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}},"docs":{}}},"docs":{}},"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.024054982817869417},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.03333333333333333},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.03818615751789976},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.030612244897959183},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.05},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.0763888888888889},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.11235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.009298393913778529},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.012755102040816327},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.022900763358778626}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}},"2":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"docs":{},"t":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"e":{"docs":{},"g":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}},"e":{"docs":{},"r":{"docs":{},"(":{"2":{"0":{"2":{"4":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"1":{"0":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.008928571428571428}}}},"2":{"0":{"2":{"4":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}},"docs":{}},"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"3":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"4":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"5":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"6":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}},";":{"docs":{},"关":{"docs":{},"于":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}}},")":{"docs":{},"从":{"docs":{},"左":{"docs":{},"到":{"docs":{},"右":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.009708737864077669},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},"(":{"docs":{},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{},"传":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"根":{"docs":{},"据":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"子":{"docs":{},"类":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}},".":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.024691358024691357}},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.01646090534979424}}},"s":{"docs":{},",":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"化":{"docs":{},"等":{"docs":{},"级":{"docs":{},"(":{"docs":{},"否":{"docs":{},"则":{"docs":{},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"会":{"docs":{},"很":{"docs":{},"冗":{"docs":{},"长":{"docs":{},")":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"f":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},",":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"、":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}},"、":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}},"]":{"docs":{},"。":{"docs":{},"在":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"索":{"docs":{},"引":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"3":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}}}}},"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}},"p":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"s":{"docs":{},"a":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"=":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"g":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}},"docs":{}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"d":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.0425531914893617},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0375},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.023166023166023165},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.023076923076923078},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.021834061135371178},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.05555555555555555},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02880658436213992}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01403061224489796}}}}},"b":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"表":{"docs":{},"示":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}}}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"f":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}}}}},";":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728}}}}},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014124293785310734},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03686635944700461},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.020134228187919462},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.021739130434782608},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},")":{"docs":{},"是":{"docs":{},"介":{"docs":{},"于":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"和":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"一":{"docs":{},"种":{"docs":{},"程":{"docs":{},"序":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"连":{"docs":{},"接":{"docs":{},"前":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"。":{"docs":{},"也":{"docs":{},"只":{"docs":{},"有":{"docs":{},"我":{"docs":{},"们":{"docs":{},"定":{"docs":{},"义":{"docs":{},"好":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"将":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"前":{"docs":{},"端":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"中":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"部":{"docs":{},"分":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"能":{"docs":{},"够":{"docs":{},"输":{"docs":{},"出":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"参":{"docs":{},"考":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"地":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"希":{"docs":{},"望":{"docs":{},"参":{"docs":{},"加":{"docs":{},"性":{"docs":{},"能":{"docs":{},"评":{"docs":{},"测":{"docs":{},",":{"docs":{},"你":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}},"、":{"docs":{},"完":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}},"中":{"docs":{},"的":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"会":{"docs":{},"被":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"但":{"docs":{},"留":{"docs":{},"意":{"docs":{},"多":{"docs":{},"条":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"同":{"docs":{},"时":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"上":{"docs":{},"“":{"docs":{},"同":{"docs":{},"时":{"docs":{},"发":{"docs":{},"生":{"docs":{},"”":{"docs":{},",":{"docs":{},"而":{"docs":{},"实":{"docs":{},"际":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"具":{"docs":{},"有":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},"被":{"docs":{},"错":{"docs":{},"误":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"假":{"docs":{},"设":{"docs":{},"数":{"docs":{},"量":{"docs":{},"无":{"docs":{},"限":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"或":{"docs":{},"称":{"docs":{},"作":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"但":{"docs":{},"目":{"docs":{},"标":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"=":{"0":{"docs":{},";":{"docs":{},";":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"docs":{}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}},"1":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"docs":{}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.01718213058419244},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"不":{"docs":{},"同":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}},"、":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"选":{"docs":{},"择":{"docs":{},"希":{"docs":{},"望":{"docs":{},"查":{"docs":{},"看":{"docs":{},"的":{"docs":{},"评":{"docs":{},"测":{"docs":{},"结":{"docs":{},"果":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"测":{"docs":{},"试":{"docs":{},"输":{"docs":{},"出":{"docs":{},"无":{"docs":{},"法":{"docs":{},"显":{"docs":{},"示":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"点":{"docs":{},"击":{"docs":{},"输":{"docs":{},"出":{"docs":{},"框":{"docs":{},"右":{"docs":{},"上":{"docs":{},"角":{"docs":{},"四":{"docs":{},"个":{"docs":{},"按":{"docs":{},"钮":{"docs":{},"中":{"docs":{},"最":{"docs":{},"左":{"docs":{},"边":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"如":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"/":{"1":{"2":{"3":{"4":{"5":{"6":{"docs":{},")":{"docs":{},"的":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},"(":{"docs":{},"如":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"/":{"1":{"2":{"3":{"4":{"5":{"6":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"取":{"docs":{},"测":{"docs":{},"试":{"docs":{},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}},"d":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"v":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"e":{"docs":{},"n":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},",":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"i":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"s":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"=":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"3":{"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{}}}}}}},"e":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"是":{"docs":{},"激":{"docs":{},"活":{"docs":{},"的":{"docs":{},")":{"docs":{},"和":{"docs":{},"激":{"docs":{},"活":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.01699029126213592},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"用":{"docs":{},"户":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"k":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"v":{"docs":{},"e":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}},"(":{"docs":{},"s":{"docs":{},"u":{"docs":{},"c":{"docs":{},"c":{"docs":{},"(":{"docs":{},"b":{"docs":{},")":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}},"、":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.030612244897959183}},"(":{"docs":{},"b":{"docs":{},")":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},"u":{"docs":{},"s":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}}}}}},"b":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.024096385542168676},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}},"e":{"docs":{},"r":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.024096385542168676}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}},"o":{"docs":{},"r":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.02654867256637168},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}}}}}}},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"信":{"docs":{},"息":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"o":{"docs":{},"p":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.018433179723502304}}},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"s":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"b":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}},"t":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"s":{"docs":{},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"e":{"docs":{},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"/":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126}},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"作":{"docs":{},"业":{"docs":{},";":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"一":{"docs":{},"些":{"docs":{},"较":{"docs":{},"为":{"docs":{},"详":{"docs":{},"细":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"来":{"docs":{},"系":{"docs":{},"统":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"(":{"docs":{},"或":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}},"(":{"docs":{},"&":{"docs":{},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"f":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}},"l":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}},"b":{"docs":{},"e":{"docs":{},"l":{"1":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"再":{"docs":{},"通":{"docs":{},"过":{"docs":{},"无":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"消":{"docs":{},"除":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}},"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03225806451612903},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"(":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"为":{"docs":{},"t":{"0":{"docs":{},"、":{"docs":{},"t":{"1":{"docs":{},"等":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}}},"docs":{}}}}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"n":{"docs":{},"d":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728}}},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}}},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{},"左":{"docs":{},"值":{"docs":{},"(":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},"即":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"为":{"docs":{},"某":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"如":{"docs":{},"在":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"能":{"docs":{},"帮":{"docs":{},"到":{"docs":{},"你":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"为":{"docs":{},":":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"的":{"docs":{},"等":{"docs":{},"号":{"docs":{},"左":{"docs":{},"边":{"docs":{},"部":{"docs":{},"分":{"docs":{},"、":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"后":{"docs":{},"者":{"docs":{},"且":{"docs":{},"该":{"docs":{},"节":{"docs":{},"点":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"存":{"docs":{},"有":{"docs":{},"该":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"(":{"docs":{},"下":{"docs":{},"面":{"docs":{},"会":{"docs":{},"对":{"docs":{},"“":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},"”":{"docs":{},"进":{"docs":{},"行":{"docs":{},"解":{"docs":{},"释":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"r":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},"、":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}}}}}}},"docs":{}}},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"l":{"docs":{},"v":{"docs":{},"m":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}},"d":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}},"m":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.027491408934707903},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":5.033898305084746},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"差":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"标":{"docs":{},"志":{"docs":{},"符":{"docs":{},"号":{"docs":{},"、":{"docs":{},"数":{"docs":{},"组":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"等":{"docs":{},"语":{"docs":{},"法":{"docs":{},"上":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},",":{"docs":{},"难":{"docs":{},"度":{"docs":{},"有":{"docs":{},"所":{"docs":{},"降":{"docs":{},"低":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},"u":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"{":{"1":{"0":{"0":{"docs":{},",":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}},"docs":{}}},"p":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"s":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},")":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"其":{"docs":{},"数":{"docs":{},"目":{"docs":{},"有":{"docs":{},"限":{"docs":{},";":{"docs":{},"而":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}},"u":{"docs":{},"l":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"t":{"docs":{},"i":{"docs":{},"_":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"l":{"docs":{},"p":{"3":{"2":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}},"docs":{}},"docs":{}}}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"=":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}}}},"docs":{}},"docs":{}}}}}}},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},")":{"docs":{},",":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"可":{"docs":{},"以":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"自":{"docs":{},"行":{"docs":{},"根":{"docs":{},"据":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.0205761316872428},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.016706443914081145},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.030612244897959183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"(":{"docs":{},")":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"{":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},":":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}},"y":{"docs":{},",":{"docs":{},"它":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"(":{"docs":{},"可":{"docs":{},"忽":{"docs":{},"略":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"对":{"docs":{},"于":{"docs":{},"数":{"docs":{},"组":{"docs":{},"b":{"docs":{},",":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"指":{"docs":{},"令":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"再":{"docs":{},"将":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"存":{"docs":{},"到":{"docs":{},"各":{"docs":{},"个":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"a":{"docs":{},"是":{"docs":{},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"知":{"docs":{},"道":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"在":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"获":{"docs":{},"取":{"docs":{},"a":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"还":{"docs":{},"要":{"docs":{},"用":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},"将":{"docs":{},"其":{"docs":{},"值":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"b":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"也":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"由":{"docs":{},"于":{"docs":{},"它":{"docs":{},"不":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"]":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}},"o":{"docs":{},"d":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"e":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"m":{"2":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012}}}}}},"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.05343511450381679}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"则":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}},"n":{"2":{"1":{"7":{"6":{"docs":{},"(":{"docs":{},"n":{"2":{"1":{"7":{"6":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"e":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}},"]":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"d":{"docs":{},"e":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"c":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"e":{"docs":{},"g":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},"e":{"docs":{},"d":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"r":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"(":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"[":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},",":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"u":{"docs":{},"r":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"p":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.05263157894736842}},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"实":{"docs":{},"际":{"docs":{},"不":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"为":{"docs":{},"缩":{"docs":{},"短":{"docs":{},"文":{"docs":{},"件":{"docs":{},"夹":{"docs":{},"名":{"docs":{},"字":{"docs":{},"的":{"docs":{},"长":{"docs":{},"度":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"修":{"docs":{},"改":{"docs":{},"~":{"docs":{},"/":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"=":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"%":{"docs":{},"d":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}}}}},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"’":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"、":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"类":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"的":{"docs":{},"构":{"docs":{},"造":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"受":{"docs":{},"了":{"docs":{},"三":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"代":{"docs":{},"表":{"docs":{},"了":{"docs":{},"构":{"docs":{},"建":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"左":{"docs":{},"部":{"docs":{},",":{"docs":{},"p":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"右":{"docs":{},"部":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"即":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"p":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"右":{"docs":{},"部":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"没":{"docs":{},"有":{"docs":{},")":{"docs":{},",":{"docs":{},"以":{"docs":{},"此":{"docs":{},"类":{"docs":{},"推":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"递":{"docs":{},"归":{"docs":{},"下":{"docs":{},"去":{"docs":{},",":{"docs":{},"就":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"完":{"docs":{},"整":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"最":{"docs":{},"后":{"docs":{},"就":{"docs":{},"会":{"docs":{},"变":{"docs":{},"为":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}}}}}}}}}},"docs":{}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"[":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"[":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},")":{"docs":{},",":{"docs":{},"大":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"打":{"docs":{},"头":{"docs":{},"的":{"docs":{},"是":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"e":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"、":{"docs":{},"值":{"docs":{},"域":{"docs":{},"传":{"docs":{},"播":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549}},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.02531645569620253}}}}}}}},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}},"x":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"与":{"docs":{},"全":{"docs":{},"部":{"docs":{},"的":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757}},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"下":{"docs":{},"面":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"指":{"docs":{},"出":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"$":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.020785219399538105}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"e":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.027777777777777776},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"最":{"docs":{},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"是":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}},"(":{"docs":{},"&":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"*":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"i":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"docs":{}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"3":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0392156862745098}},".":{"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"docs":{}}},"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.09803921568627451},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{},"展":{"docs":{},"开":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"偏":{"docs":{},"移":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"打":{"docs":{},"算":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"s":{"docs":{},"p":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寻":{"docs":{},"址":{"docs":{},",":{"docs":{},"你":{"docs":{},"最":{"docs":{},"好":{"docs":{},"维":{"docs":{},"护":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"中":{"docs":{},"s":{"docs":{},"p":{"docs":{},"发":{"docs":{},"生":{"docs":{},"的":{"docs":{},"变":{"docs":{},"化":{"docs":{},"并":{"docs":{},"计":{"docs":{},"算":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"s":{"docs":{},"p":{"docs":{},"的":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"(":{"docs":{},"主":{"docs":{},"要":{"docs":{},"为":{"docs":{},"了":{"docs":{},"应":{"docs":{},"对":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"参":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.019417475728155338},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"那":{"docs":{},"是":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"l":{"docs":{},"i":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}},"y":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"为":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"模":{"docs":{},"块":{"docs":{},"而":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"为":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"相":{"docs":{},"关":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"u":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"p":{"docs":{},"a":{"docs":{},":":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}},"1":{"docs":{},"]":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"则":{"docs":{},"是":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{},"p":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},"为":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"。":{"docs":{},"你":{"docs":{},"会":{"docs":{},"看":{"docs":{},"到":{"docs":{},"我":{"docs":{},"们":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"这":{"docs":{},"里":{"docs":{},"不":{"docs":{},"太":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"符":{"docs":{},"号":{"docs":{},"不":{"docs":{},"止":{"docs":{},"有":{"docs":{},"减":{"docs":{},"号":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"将":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"解":{"docs":{},"析":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"2":{"docs":{},"]":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"6":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"docs":{}},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"i":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03225806451612903}}},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}}}},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.019417475728155338},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}}}}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"即":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},")":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}},"与":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"如":{"docs":{},"何":{"docs":{},"提":{"docs":{},"交":{"docs":{},"课":{"docs":{},"程":{"docs":{},"报":{"docs":{},"告":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}},"我":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"知":{"docs":{},"道":{"docs":{},"我":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"0":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.015267175572519083}}}},"1":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}}}},"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"e":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.024390243902439025},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.024774774774774775},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.02389705882352941},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.019305019305019305},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.033707865168539325},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.012755102040816327},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.02531645569620253}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},".":{"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"l":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"o":{"docs":{},"g":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"g":{"0":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"1":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"docs":{},"_":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":3.3888888888888884},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":3.3648867313915853},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":3.3662551440329214},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01977401129943503},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.015765765765765764},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.05555555555555555}},"v":{"3":{"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},"docs":{}},"6":{"4":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.009708737864077669},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}},"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.014563106796116505},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},".":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}}}}}}}}},"v":{"3":{"2":{"docs":{},"/":{"6":{"4":{"docs":{},"g":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"docs":{}},"docs":{}},"i":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"m":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"docs":{}},"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}},"a":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"、":{"docs":{},"s":{"docs":{},"p":{"docs":{},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"、":{"docs":{},"f":{"docs":{},"p":{"docs":{},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"、":{"docs":{},"a":{"0":{"docs":{},"&":{"docs":{},"a":{"1":{"docs":{},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},")":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"单":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"简":{"docs":{},"化":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"n":{"docs":{},"g":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"s":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}},".":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"[":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}}},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"s":{"0":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"1":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"2":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"v":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.023094688221709007},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"d":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"即":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},"全":{"docs":{},"部":{"docs":{},"是":{"docs":{},"无":{"docs":{},"效":{"docs":{},"的":{"docs":{},"。":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"如":{"docs":{},"果":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"前":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"从":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"获":{"docs":{},"取":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"(":{"docs":{},"潜":{"docs":{},"在":{"docs":{},"的":{"docs":{},")":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},",":{"docs":{},"故":{"docs":{},"对":{"docs":{},"于":{"docs":{},"所":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"这":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"之":{"docs":{},"为":{"docs":{},"“":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"时":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"或":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"r":{"docs":{},"a":{"docs":{},"会":{"docs":{},"在":{"docs":{},"什":{"docs":{},"么":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"被":{"docs":{},"修":{"docs":{},"改":{"docs":{},"?":{"docs":{},"不":{"docs":{},"过":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"总":{"docs":{},"是":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"r":{"docs":{},"a":{"docs":{},"。":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"某":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"和":{"docs":{},"u":{"docs":{},"n":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"来":{"docs":{},"达":{"docs":{},"到":{"docs":{},"上":{"docs":{},"述":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"且":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"解":{"docs":{},"除":{"docs":{},"所":{"docs":{},"有":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"后":{"docs":{},"续":{"docs":{},"仍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"必":{"docs":{},"须":{"docs":{},"被":{"docs":{},"倒":{"docs":{},"腾":{"docs":{},"到":{"docs":{},"别":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},",":{"docs":{},"如":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},",":{"docs":{},"这":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"让":{"docs":{},"所":{"docs":{},"有":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"被":{"docs":{},"丢":{"docs":{},"到":{"docs":{},"了":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"?":{"docs":{},"似":{"docs":{},"乎":{"docs":{},"有":{"docs":{},"些":{"docs":{},"多":{"docs":{},"余":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"在":{"docs":{},"其":{"docs":{},"它":{"docs":{},"指":{"docs":{},"令":{"docs":{},"看":{"docs":{},"来":{"docs":{},"是":{"docs":{},"无":{"docs":{},"事":{"docs":{},"发":{"docs":{},"生":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"种":{"docs":{},"更":{"docs":{},"简":{"docs":{},"便":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"它":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"上":{"docs":{},"一":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"被":{"docs":{},"放":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"得":{"docs":{},"空":{"docs":{},"闲":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"于":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"在":{"docs":{},"a":{"0":{"docs":{},"到":{"docs":{},"a":{"7":{"docs":{},"中":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}},"或":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"先":{"docs":{},"将":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"且":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"照":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"现":{"docs":{},"r":{"docs":{},"a":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"。":{"docs":{},"(":{"docs":{},"备":{"docs":{},"注":{"docs":{},":":{"docs":{},"严":{"docs":{},"格":{"docs":{},"来":{"docs":{},"讲":{"docs":{},"r":{"docs":{},"a":{"docs":{},"并":{"docs":{},"不":{"docs":{},"是":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"、":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"的":{"docs":{},"调":{"docs":{},"整":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"有":{"docs":{},"些":{"docs":{},"架":{"docs":{},"构":{"docs":{},"可":{"docs":{},"能":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"有":{"docs":{},"对":{"docs":{},"齐":{"docs":{},"要":{"docs":{},"求":{"docs":{},"(":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},".":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},"前":{"docs":{},"后":{"docs":{},"保":{"docs":{},"存":{"docs":{},"并":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"且":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"似":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"而":{"docs":{},"言":{"docs":{},"只":{"docs":{},"有":{"docs":{},"当":{"docs":{},"某":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"为":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"调":{"docs":{},"用":{"docs":{},"了":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},",":{"docs":{},"它":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"r":{"docs":{},"a":{"docs":{},"中":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"掉":{"docs":{},",":{"docs":{},"这":{"docs":{},"与":{"docs":{},"其":{"docs":{},"它":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"干":{"docs":{},"涉":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"x":{"docs":{},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},"鉴":{"docs":{},"于":{"docs":{},"r":{"docs":{},"a":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"用":{"docs":{},"途":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"它":{"docs":{},"视":{"docs":{},"作":{"docs":{},"一":{"docs":{},"个":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"1":{"docs":{},"中":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"保":{"docs":{},"证":{"docs":{},"了":{"docs":{},"传":{"docs":{},"参":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"都":{"docs":{},"是":{"docs":{},"空":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"地":{"docs":{},",":{"docs":{},"用":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"a":{"0":{"docs":{},"~":{"docs":{},"a":{"7":{"docs":{},"传":{"docs":{},"递":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"前":{"8":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"假":{"docs":{},"设":{"docs":{},"这":{"8":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},")":{"docs":{},"为":{"docs":{},"v":{"0":{"docs":{},"~":{"docs":{},"v":{"7":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"第":{"docs":{},"i":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"将":{"docs":{},"v":{"docs":{},"i":{"docs":{},"的":{"docs":{},"值":{"docs":{},"加":{"docs":{},"载":{"docs":{},"入":{"docs":{},"a":{"docs":{},"i":{"docs":{},"。":{"docs":{},"若":{"docs":{},"v":{"docs":{},"i":{"docs":{},"已":{"docs":{},"经":{"docs":{},"与":{"docs":{},"某":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"x":{"docs":{},"j":{"docs":{},"绑":{"docs":{},"定":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"指":{"docs":{},"令":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{},"但":{"docs":{},"它":{"docs":{},"有":{"docs":{},"着":{"docs":{},"和":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"上":{"docs":{},"。":{"docs":{},"经":{"docs":{},"过":{"docs":{},"后":{"docs":{},"续":{"docs":{},"优":{"docs":{},"化":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},",":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"交":{"docs":{},"给":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"以":{"docs":{},"下":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"片":{"docs":{},"段":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"5":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"6":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},"7":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"无":{"docs":{},"法":{"docs":{},"获":{"docs":{},"得":{"docs":{},"对":{"docs":{},"应":{"docs":{},"分":{"docs":{},"数":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.05154639175257732},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.05063291139240506},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.15625},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.041237113402061855},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.05319148936170213},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.058823529411764705},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05405405405405406},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.044444444444444446},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.05},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.06349206349206349},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.06153846153846154},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.05555555555555555},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.08163265306122448},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.03571428571428571}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"一":{"docs":{},"起":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{},"无":{"docs":{},"论":{"docs":{},"如":{"docs":{},"何":{"docs":{},",":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"好":{"docs":{},"好":{"docs":{},"休":{"docs":{},"息":{"docs":{},"一":{"docs":{},"下":{"docs":{},"吧":{"docs":{},"☕":{"docs":{},"️":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"_":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},")":{"docs":{},"这":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"在":{"docs":{},"进":{"docs":{},"行":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"动":{"docs":{},"态":{"docs":{},"维":{"docs":{},"护":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"结":{"docs":{},"点":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"从":{"docs":{},"内":{"docs":{},"到":{"docs":{},"外":{"docs":{},"所":{"docs":{},"有":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"我":{"docs":{},"们":{"docs":{},"开":{"docs":{},"启":{"docs":{},"一":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"时":{"docs":{},",":{"docs":{},"要":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"并":{"docs":{},"压":{"docs":{},"栈":{"docs":{},";":{"docs":{},"而":{"docs":{},"当":{"docs":{},"退":{"docs":{},"出":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"时":{"docs":{},",":{"docs":{},"要":{"docs":{},"弹":{"docs":{},"栈":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"此":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.029411764705882353},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.05555555555555555},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.023166023166023165},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.023076923076923078},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.026200873362445413},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.024691358024691357},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"(":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"*":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},")":{"docs":{},"?":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"s":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"r":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405}}}}},"e":{"docs":{},"p":{"1":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},":":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}},"1":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471}},":":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}}},"2":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},":":{"docs":{},"为":{"docs":{},"数":{"docs":{},"组":{"docs":{},"添":{"docs":{},"加":{"docs":{},"更":{"docs":{},"多":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}},"3":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},":":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"改":{"docs":{},"进":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}},"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.08},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},")":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"为":{"docs":{},"跟":{"docs":{},"着":{"docs":{},"文":{"docs":{},"档":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"学":{"docs":{},"习":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"请":{"docs":{},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}},":":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仅":{"docs":{},"有":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}},"2":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},":":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"3":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728}},":":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}}},"4":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},":":{"docs":{},"比":{"docs":{},"较":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}},"5":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}},":":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}},"6":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},":":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}},"7":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},":":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"8":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},":":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}},"9":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},":":{"docs":{},"函":{"docs":{},"数":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}},"docs":{"./":{"ref":"./","tf":0.037800687285223365},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"_":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"=":{"1":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}},"docs":{}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.021505376344086023}},",":{"docs":{},"搜":{"docs":{},"索":{"docs":{},"u":{"docs":{},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"u":{"docs":{},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"2":{"0":{"docs":{},".":{"0":{"4":{"docs":{},".":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"]":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.019021739130434784}}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0076077768385460695}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},">":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.010869565217391304}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}},"e":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"q":{"docs":{},"z":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"序":{"docs":{},"列":{"docs":{},"中":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"问":{"docs":{},"题":{"docs":{},"需":{"docs":{},"要":{"docs":{},"解":{"docs":{},"决":{"docs":{},":":{"docs":{},"如":{"docs":{},"何":{"docs":{},"进":{"docs":{},"行":{"docs":{},"参":{"docs":{},"数":{"docs":{},"传":{"docs":{},"递":{"docs":{},"?":{"docs":{},"如":{"docs":{},"何":{"docs":{},"获":{"docs":{},"取":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"?":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"和":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},")":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"保":{"docs":{},"存":{"docs":{},"?":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"和":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"以":{"docs":{},"上":{"docs":{},"问":{"docs":{},"题":{"docs":{},"约":{"docs":{},"定":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"并":{"docs":{},"同":{"docs":{},"时":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"这":{"docs":{},"些":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"与":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"共":{"docs":{},"同":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"的":{"docs":{},"约":{"docs":{},"定":{"docs":{},"称":{"docs":{},"为":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"f":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"分":{"docs":{},"配":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"m":{"4":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"e":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"m":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"a":{"0":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"docs":{}}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"a":{"0":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"docs":{}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"i":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"。":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}}}}}}}}},"\"":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},",":{"docs":{},"另":{"docs":{},"外":{"docs":{},"这":{"docs":{},"里":{"docs":{},"也":{"docs":{},"有":{"docs":{},"(":{"docs":{},"非":{"docs":{},"官":{"docs":{},"方":{"docs":{},"的":{"docs":{},")":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"法":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{},"下":{"docs":{},"图":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.014563106796116505},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}},"(":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}},",":{"docs":{},"并":{"docs":{},"恢":{"docs":{},"复":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.018475750577367205},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"s":{"docs":{},"h":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.10526315789473684},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}},"a":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03225806451612903},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"/":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}},")":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"重":{"docs":{},"要":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"它":{"docs":{},"要":{"docs":{},"求":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},",":{"docs":{},"那":{"docs":{},"加":{"docs":{},"到":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"t":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"v":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"m":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},".":{"docs":{},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},",":{"docs":{},"并":{"docs":{},"利":{"docs":{},"用":{"docs":{},"它":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"docs":{}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},">":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"z":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"g":{"docs":{},"n":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}},"u":{"docs":{},"d":{"docs":{},"o":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"l":{"docs":{},"t":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"a":{"docs":{},"p":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}},"y":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"r":{"docs":{},"c":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"u":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"/":{"docs":{},";":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"n":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.030927835051546393},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.016544117647058824},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0375},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.021834061135371178},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0205761316872428},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"y":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"就":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"docs":{}}}}},"那":{"docs":{},"么":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"o":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}},"i":{"docs":{},"x":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}},"o":{"docs":{},"n":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"{":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"函":{"docs":{},"数":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"思":{"docs":{},"考":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"何":{"docs":{},"处":{"docs":{},"进":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"1":{"4":{"docs":{},"/":{"docs":{},"*":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"改":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"docs":{}},"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}},",":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"可":{"docs":{},"用":{"docs":{},"的":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"s":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"e":{"docs":{},"r":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"@":{"docs":{},"i":{"docs":{},"p":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"链":{"docs":{},"、":{"docs":{},"可":{"docs":{},"达":{"docs":{},"定":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"所":{"docs":{},"有":{"docs":{},"用":{"docs":{},"到":{"docs":{},"常":{"docs":{},"量":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"这":{"docs":{},"些":{"docs":{},"地":{"docs":{},"方":{"docs":{},"计":{"docs":{},"算":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"也":{"docs":{},"是":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"将":{"docs":{},"计":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"也":{"docs":{},"加":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},"的":{"docs":{},"值":{"docs":{},"为":{"5":{"docs":{},",":{"docs":{},"也":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"将":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},"的":{"docs":{},"值":{"docs":{},"加":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{},")":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"可":{"docs":{},"以":{"docs":{},"帮":{"docs":{},"我":{"docs":{},"们":{"docs":{},"找":{"docs":{},"到":{"docs":{},"每":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"可":{"docs":{},"以":{"docs":{},"帮":{"docs":{},"我":{"docs":{},"们":{"docs":{},"找":{"docs":{},"到":{"docs":{},"每":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"b":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},"e":{"docs":{},",":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}},"]":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}},"v":{"0":{"docs":{},",":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":3.3666666666666663},"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":3.3721682847896437},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":3.3580246913580245},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01977401129943503},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.015765765765765764},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.024096385542168676},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"(":{"3":{"2":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}},"docs":{}},"官":{"docs":{},"方":{"docs":{},"资":{"docs":{},"料":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"指":{"docs":{},"令":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"序":{"docs":{},"列":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}},"相":{"docs":{},"关":{"docs":{},"内":{"docs":{},"容":{"docs":{},"补":{"docs":{},"充":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}},"s":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.015765765765765764},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":5.0130718954248366},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0084530853761623}},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"[":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"[":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"便":{"docs":{},"于":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"(":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}}}},"i":{"docs":{},"f":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},":":{"docs":{},"i":{"docs":{},"f":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"r":{"docs":{},"_":{"docs":{},"t":{"docs":{},",":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"按":{"docs":{},"照":{"docs":{},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"话":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"种":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"与":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"链":{"docs":{},"接":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{},"等":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"直":{"docs":{},"观":{"docs":{},"的":{"docs":{},"想":{"docs":{},"法":{"docs":{},"是":{"docs":{},"将":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"预":{"docs":{},"着":{"docs":{},"色":{"docs":{},"为":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"明":{"docs":{},"显":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"展":{"docs":{},"示":{"docs":{},"两":{"docs":{},"个":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"片":{"docs":{},"段":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"与":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"架":{"docs":{},"构":{"docs":{},"紧":{"docs":{},"密":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"也":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"进":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"i":{"docs":{},"型":{"docs":{},"指":{"docs":{},"令":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"无":{"docs":{},"效":{"docs":{},"果":{"docs":{},"指":{"docs":{},"令":{"docs":{},"消":{"docs":{},"除":{"docs":{},"(":{"docs":{},"m":{"docs":{},"v":{"docs":{},"到":{"docs":{},"自":{"docs":{},"身":{"docs":{},"、":{"docs":{},"加":{"0":{"docs":{},"、":{"docs":{},"乘":{"1":{"docs":{},")":{"docs":{},"、":{"docs":{},"强":{"docs":{},"度":{"docs":{},"削":{"docs":{},"减":{"docs":{},"(":{"docs":{},"乘":{"docs":{},"除":{"2":{"docs":{},"的":{"docs":{},"幂":{"docs":{},"转":{"docs":{},"移":{"docs":{},"位":{"docs":{},",":{"docs":{},"除":{"docs":{},"法":{"docs":{},"转":{"docs":{},"乘":{"docs":{},"法":{"docs":{},")":{"docs":{},"等":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"非":{"docs":{},"官":{"docs":{},"方":{"docs":{},")":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"法":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}},"i":{"docs":{},"n":{"1":{"0":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353}}}}}}},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}},"\"":{"docs":{},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"运":{"docs":{},"行":{"docs":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{},"假":{"docs":{},"设":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"知":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"的":{"docs":{},"是":{"docs":{},"常":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"它":{"docs":{},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"开":{"docs":{},"销":{"docs":{},"都":{"docs":{},"会":{"docs":{},"比":{"docs":{},"其":{"docs":{},"它":{"docs":{},"变":{"docs":{},"量":{"docs":{},"更":{"docs":{},"低":{"docs":{},":":{"docs":{},"无":{"docs":{},"须":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"时":{"docs":{},"只":{"docs":{},"需":{"docs":{},"一":{"docs":{},"条":{"docs":{},"l":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"而":{"docs":{},"不":{"docs":{},"必":{"docs":{},"生":{"docs":{},"成":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"。":{"docs":{},"这":{"docs":{},"种":{"docs":{},"低":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"开":{"docs":{},"销":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"优":{"docs":{},"先":{"docs":{},"成":{"docs":{},"为":{"docs":{},"被":{"docs":{},"踢":{"docs":{},"出":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"倒":{"docs":{},"霉":{"docs":{},"蛋":{"docs":{},"候":{"docs":{},"选":{"docs":{},"。":{"docs":{},"(":{"docs":{},"思":{"docs":{},"考":{"docs":{},":":{"docs":{},"我":{"docs":{},"们":{"docs":{},"是":{"docs":{},"否":{"docs":{},"应":{"docs":{},"该":{"docs":{},"优":{"docs":{},"先":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"?":{"docs":{},")":{"docs":{},"为":{"docs":{},"了":{"docs":{},"给":{"docs":{},"变":{"docs":{},"量":{"docs":{},"设":{"docs":{},"定":{"docs":{},"合":{"docs":{},"理":{"docs":{},"的":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"权":{"docs":{},"重":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"一":{"docs":{},"些":{"docs":{},"分":{"docs":{},"析":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.01944209636517329},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.024456521739130436},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}},"1":{"docs":{},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"2":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}},"i":{"docs":{},"f":{"docs":{},"(":{"docs":{},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}}}}},"}":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"}":{"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.033707865168539325},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.014370245139475908},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"]":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"”":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},",":{"docs":{},"且":{"docs":{},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"被":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.024456521739130436}}}},"↩":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"上":{"docs":{},"实":{"docs":{},"现":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},",":{"docs":{},"如":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"标":{"docs":{},"注":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"静":{"docs":{},"态":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"打":{"docs":{},"开":{"docs":{},"你":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"在":{"docs":{},"界":{"docs":{},"面":{"docs":{},"的":{"docs":{},"右":{"docs":{},"侧":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"作":{"docs":{},"为":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"面":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},",":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"将":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"只":{"docs":{},"是":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"了":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"原":{"docs":{},"理":{"docs":{},",":{"docs":{},"请":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"论":{"docs":{},"文":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},"描":{"docs":{},"述":{"docs":{},"是":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"图":{"docs":{},"所":{"docs":{},"示":{"docs":{},"(":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"先":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"图":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"线":{"docs":{},"边":{"docs":{},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"母":{"docs":{},"看":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"看":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"图":{"docs":{},"中":{"docs":{},"的":{"docs":{},"染":{"docs":{},"色":{"docs":{},"方":{"docs":{},"案":{"docs":{},"就":{"docs":{},"对":{"docs":{},"应":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"述":{"docs":{},"步":{"docs":{},"骤":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"i":{"docs":{},"r":{"docs":{},"后":{"docs":{},"可":{"docs":{},"能":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}}}}}}}}},"关":{"docs":{},"系":{"docs":{},"变":{"docs":{},"得":{"docs":{},"更":{"docs":{},"加":{"docs":{},"显":{"docs":{},"而":{"docs":{},"易":{"docs":{},"见":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"轻":{"docs":{},"松":{"docs":{},"地":{"docs":{},"得":{"docs":{},"到":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}},"下":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}},"运":{"docs":{},"行":{"docs":{},"(":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"面":{"docs":{},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"是":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"指":{"docs":{},"南":{"docs":{},",":{"docs":{},"请":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"小":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"段":{"docs":{},"含":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"无":{"docs":{},"需":{"docs":{},"与":{"docs":{},"其":{"docs":{},"完":{"docs":{},"全":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"总":{"docs":{},"一":{"docs":{},"下":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"我":{"docs":{},"们":{"docs":{},"列":{"docs":{},"出":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}}},"将":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"以":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"指":{"docs":{},"出":{"docs":{},"了":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"是":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"一":{"docs":{},"定":{"docs":{},"要":{"docs":{},"记":{"docs":{},"得":{"docs":{},"区":{"docs":{},"分":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"和":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"于":{"docs":{},"m":{"docs":{},"v":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"前":{"docs":{},"者":{"docs":{},"是":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"时":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"后":{"docs":{},"者":{"docs":{},"是":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"被":{"docs":{},"标":{"docs":{},"以":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"每":{"docs":{},"行":{"docs":{},"语":{"docs":{},"句":{"docs":{},"右":{"docs":{},"边":{"docs":{},"都":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"该":{"docs":{},"语":{"docs":{},"句":{"docs":{},"后":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"集":{"docs":{},"合":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"些":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"预":{"docs":{},"备":{"docs":{},"知":{"docs":{},"识":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"展":{"docs":{},"示":{"docs":{},"如":{"docs":{},"何":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{},"但":{"docs":{},"不":{"docs":{},"保":{"docs":{},"证":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"和":{"docs":{},"在":{"docs":{},"线":{"docs":{},"测":{"docs":{},"试":{"docs":{},"环":{"docs":{},"境":{"docs":{},"下":{"docs":{},"程":{"docs":{},"序":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"各":{"docs":{},"种":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"。":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}},"载":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"个":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"基":{"docs":{},"础":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"们":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"分":{"docs":{},"数":{"docs":{},"(":{"3":{"5":{"docs":{},"%":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"(":{"docs":{},"其":{"docs":{},"中":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"汇":{"docs":{},"编":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"分":{"docs":{},"配":{"docs":{},"空":{"docs":{},"间":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"这":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"栈":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"变":{"docs":{},"化":{"docs":{},"过":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"a":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"通":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"无":{"docs":{},"法":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"带":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"用":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"分":{"docs":{},"类":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}},"字":{"docs":{},"节":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},",":{"docs":{},"倍":{"docs":{},"数":{"docs":{},"为":{"4":{"docs":{},")":{"docs":{},"即":{"docs":{},"为":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"于":{"docs":{},"高":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"其":{"docs":{},"视":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"展":{"docs":{},"开":{"docs":{},"成":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"大":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"元":{"docs":{},"素":{"docs":{},"(":{"docs":{},"从":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"m":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"存":{"docs":{},"放":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"照":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}},"点":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}},"结":{"docs":{},"点":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}},"docs":{}}}}}}},",":{"docs":{},"m":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"最":{"docs":{},"多":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}},"中":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"且":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"视":{"docs":{},"为":{"docs":{},"通":{"docs":{},"过":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"你":{"docs":{},"将":{"docs":{},"实":{"docs":{},"现":{"docs":{},"常":{"docs":{},"量":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"你":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"写":{"docs":{},"很":{"docs":{},"多":{"docs":{},"有":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"了":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"判":{"docs":{},"断":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"就":{"docs":{},"从":{"docs":{},"线":{"docs":{},"性":{"docs":{},"结":{"docs":{},"构":{"docs":{},"程":{"docs":{},"序":{"docs":{},"到":{"docs":{},"了":{"docs":{},"有":{"docs":{},"分":{"docs":{},"支":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"支":{"docs":{},"持":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"与":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"将":{"docs":{},"支":{"docs":{},"持":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"支":{"docs":{},"持":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"请":{"docs":{},"联":{"docs":{},"系":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"已":{"docs":{},"经":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"略":{"docs":{},"过":{"docs":{},",":{"docs":{},"新":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"和":{"docs":{},"技":{"docs":{},"术":{"docs":{},"会":{"docs":{},"被":{"docs":{},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{},"如":{"docs":{},"何":{"docs":{},"运":{"docs":{},"行":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"替":{"docs":{},"代":{"docs":{},"当":{"docs":{},"前":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"数":{"docs":{},"组":{"docs":{},"中":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"给":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},":":{"docs":{},"取":{"docs":{},"负":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"维":{"docs":{},"护":{"docs":{},"了":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"算":{"docs":{},"术":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"于":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"未":{"docs":{},"做":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"但":{"docs":{},"在":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}},"会":{"docs":{},"将":{"docs":{},"左":{"docs":{},"值":{"docs":{},"的":{"docs":{},"范":{"docs":{},"围":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"包":{"docs":{},"括":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"新":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"负":{"docs":{},"数":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"不":{"docs":{},"被":{"docs":{},"整":{"docs":{},"体":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"里":{"docs":{},"有":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"把":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"将":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"最":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"所":{"docs":{},"有":{"docs":{},"这":{"docs":{},"些":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"退":{"docs":{},"栈":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"i":{"docs":{},"=":{"0":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"docs":{}}},"使":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"加":{"docs":{},"模":{"docs":{},"块":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{},"这":{"docs":{},"使":{"docs":{},"得":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"更":{"docs":{},"容":{"docs":{},"易":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"搭":{"docs":{},"建":{"docs":{},"开":{"docs":{},"发":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"安":{"docs":{},"装":{"docs":{},"或":{"docs":{},"保":{"docs":{},"证":{"docs":{},"如":{"docs":{},"下":{"docs":{},"软":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"话":{"docs":{},"同":{"docs":{},"时":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"表":{"docs":{},"示":{"docs":{},"中":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"出":{"docs":{},"自":{"docs":{},"于":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"与":{"docs":{},"这":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"也":{"docs":{},"十":{"docs":{},"分":{"docs":{},"相":{"docs":{},"似":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"再":{"docs":{},"赘":{"docs":{},"述":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"比":{"docs":{},"如":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"常":{"docs":{},"量":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"均":{"docs":{},"用":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"结":{"docs":{},"点":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"另":{"docs":{},"外":{"docs":{},",":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"循":{"docs":{},"环":{"docs":{},"本":{"docs":{},"身":{"docs":{},"也":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"!":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"其":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"二":{"docs":{},"元":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"左":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"确":{"docs":{},"保":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"可":{"docs":{},"以":{"docs":{},"作":{"docs":{},"用":{"docs":{},"于":{"docs":{},"该":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"等":{"docs":{},"其":{"docs":{},"他":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"检":{"docs":{},"查":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"方":{"docs":{},"保":{"docs":{},"存":{"docs":{},"?":{"docs":{},"为":{"docs":{},"何":{"docs":{},"保":{"docs":{},"存":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"第":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}},"详":{"docs":{},"细":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"基":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"高":{"docs":{},"级":{"docs":{},"的":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"图":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"不":{"docs":{},"作":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"别":{"docs":{},"提":{"docs":{},"出":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":10.001275510204081}},"器":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},":":{"docs":{},"将":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"表":{"docs":{},"达":{"docs":{},"指":{"docs":{},"令":{"docs":{},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"示":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"应":{"docs":{},"该":{"docs":{},"更":{"docs":{},"接":{"docs":{},"近":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"高":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},")":{"docs":{},"还":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"也":{"docs":{},"称":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"内":{"docs":{},"存":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"不":{"docs":{},"仅":{"docs":{},"需":{"docs":{},"要":{"docs":{},"方":{"docs":{},"便":{"docs":{},"阅":{"docs":{},"读":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"方":{"docs":{},"便":{"docs":{},"进":{"docs":{},"行":{"docs":{},"后":{"docs":{},"续":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"如":{"docs":{},"优":{"docs":{},"化":{"docs":{},"、":{"docs":{},"翻":{"docs":{},"译":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":10.002717391304348}}}}}},"的":{"docs":{},"虚":{"docs":{},"线":{"docs":{},"边":{"docs":{},"改":{"docs":{},"为":{"docs":{},"实":{"docs":{},"线":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"不":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"二":{"docs":{},"者":{"docs":{},"合":{"docs":{},"并":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.08}},"加":{"docs":{},"法":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"操":{"docs":{},"作":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"—":{"docs":{},"—":{"docs":{},"单":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"全":{"docs":{},"部":{"docs":{},"放":{"docs":{},"入":{"docs":{},"内":{"docs":{},"存":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"如":{"docs":{},"约":{"docs":{},"定":{"docs":{},"好":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"遍":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"加":{"docs":{},"入":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"分":{"docs":{},"派":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},"越":{"docs":{},"界":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"修":{"docs":{},"改":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}},"运":{"docs":{},"算":{"docs":{},"均":{"docs":{},"为":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},")":{"docs":{},"、":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"等":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"正":{"docs":{},"确":{"docs":{},"调":{"docs":{},"用":{"docs":{},"和":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"保":{"docs":{},"证":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{},"那":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"是":{"docs":{},"否":{"docs":{},"可":{"docs":{},"达":{"docs":{},"的":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"限":{"docs":{},"制":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"实":{"docs":{},"际":{"docs":{},"机":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"数":{"docs":{},"量":{"docs":{},"是":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"选":{"docs":{},"择":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"任":{"docs":{},"务":{"docs":{},"有":{"docs":{},":":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"将":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"放":{"docs":{},"到":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"存":{"docs":{},"在":{"docs":{},"双":{"docs":{},"目":{"docs":{},"标":{"docs":{},"分":{"docs":{},"支":{"docs":{},"(":{"docs":{},"标":{"docs":{},"签":{"docs":{},")":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"其":{"docs":{},"形":{"docs":{},"式":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}},"储":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{},"与":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"相":{"docs":{},"差":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},"采":{"docs":{},"用":{"docs":{},"了":{"docs":{},"单":{"docs":{},"分":{"docs":{},"支":{"docs":{},"目":{"docs":{},"标":{"docs":{},"(":{"docs":{},"标":{"docs":{},"签":{"docs":{},")":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"即":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"中":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"是":{"docs":{},"标":{"docs":{},"签":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"分":{"docs":{},"支":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"则":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"向":{"docs":{},"下":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"在":{"docs":{},"其":{"docs":{},"它":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"定":{"docs":{},"不":{"docs":{},"管":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"都":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}},"即":{"docs":{},"使":{"docs":{},"标":{"docs":{},"明":{"docs":{},"了":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"依":{"docs":{},"然":{"docs":{},"会":{"docs":{},"当":{"docs":{},"作":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"是":{"docs":{},"空":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"如":{"docs":{},"何":{"docs":{},"理":{"docs":{},"解":{"docs":{},"这":{"docs":{},"一":{"docs":{},"设":{"docs":{},"计":{"docs":{},"?":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"当":{"docs":{},"前":{"docs":{},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"在":{"docs":{},"给":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"大":{"docs":{},"致":{"docs":{},"思":{"docs":{},"路":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},":":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"、":{"docs":{},"复":{"docs":{},"写":{"docs":{},"传":{"docs":{},"播":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"不":{"docs":{},"变":{"docs":{},"量":{"docs":{},"外":{"docs":{},"提":{"docs":{},"等":{"docs":{},"等":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"与":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"、":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"了":{"docs":{},"解":{"docs":{},"一":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"知":{"docs":{},"识":{"docs":{},"才":{"docs":{},"能":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"负":{"docs":{},"责":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"重":{"docs":{},"要":{"docs":{},"组":{"docs":{},"成":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"它":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"保":{"docs":{},"持":{"docs":{},"程":{"docs":{},"序":{"docs":{},"功":{"docs":{},"能":{"docs":{},"不":{"docs":{},"变":{"docs":{},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},",":{"docs":{},"提":{"docs":{},"高":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"。":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},",":{"docs":{},"减":{"docs":{},"少":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"和":{"docs":{},"资":{"docs":{},"源":{"docs":{},"消":{"docs":{},"耗":{"docs":{},"。":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"、":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"不":{"docs":{},"变":{"docs":{},"量":{"docs":{},"外":{"docs":{},"提":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"展":{"docs":{},"开":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"内":{"docs":{},"联":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":10}}}}},"设":{"docs":{},"置":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"场":{"docs":{},"休":{"docs":{},"息":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"为":{"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"升":{"docs":{},"级":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"学":{"docs":{},"有":{"docs":{},"余":{"docs":{},"力":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"它":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"减":{"docs":{},"少":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{},"在":{"docs":{},"总":{"docs":{},"评":{"docs":{},"中":{"docs":{},"所":{"docs":{},"占":{"docs":{},"的":{"docs":{},"比":{"docs":{},"重":{"docs":{},"(":{"docs":{},"完":{"docs":{},"整":{"docs":{},"完":{"docs":{},"成":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{},"占":{"docs":{},"总":{"docs":{},"评":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"熟":{"docs":{},"悉":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},")":{"docs":{},"。":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"和":{"docs":{},"框":{"docs":{},"架":{"docs":{},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"无":{"docs":{},"需":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"程":{"docs":{},",":{"docs":{},"不":{"docs":{},"计":{"docs":{},"入":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"阶":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"依":{"docs":{},"然":{"docs":{},"学":{"docs":{},"有":{"docs":{},"余":{"docs":{},"力":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"完":{"docs":{},"整":{"docs":{},"完":{"docs":{},"成":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{},"占":{"docs":{},"总":{"docs":{},"评":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"是":{"docs":{},"必":{"docs":{},"不":{"docs":{},"可":{"docs":{},"少":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"。":{"docs":{},"已":{"docs":{},"知":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},"建":{"docs":{},"立":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"呢":{"docs":{},"?":{"docs":{},"通":{"docs":{},"常":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"步":{"docs":{},"进":{"docs":{},"行":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"安":{"docs":{},"全":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"仅":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{},"校":{"docs":{},"内":{"docs":{},"网":{"docs":{},"络":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"便":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"某":{"docs":{},"些":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"照":{"docs":{},"已":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},"完":{"docs":{},"成":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"定":{"docs":{},":":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},"、":{"docs":{},"如":{"docs":{},"何":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"借":{"docs":{},"此":{"docs":{},"引":{"docs":{},"入":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"所":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"至":{"docs":{},"少":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"让":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"这":{"docs":{},"点":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"对":{"docs":{},"于":{"docs":{},"形":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}},"化":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"在":{"docs":{},"设":{"docs":{},"计":{"docs":{},"时":{"docs":{},"并":{"docs":{},"未":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"需":{"docs":{},"求":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"i":{"docs":{},"r":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},"框":{"docs":{},"架":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"有":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"能":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"类":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},"由":{"docs":{},"于":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"无":{"docs":{},"需":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"类":{"docs":{},"的":{"docs":{},"基":{"docs":{},"类":{"docs":{},",":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"止":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"应":{"docs":{},"当":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"真":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"按":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"何":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"全":{"docs":{},"局":{"docs":{},"符":{"docs":{},"号":{"docs":{},";":{"docs":{},".":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"书":{"docs":{},"面":{"docs":{},"作":{"docs":{},"业":{"docs":{},"和":{"docs":{},"日":{"docs":{},"常":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"满":{"docs":{},"分":{"docs":{},",":{"docs":{},"按":{"docs":{},"照":{"docs":{},"比":{"docs":{},"例":{"docs":{},"折":{"docs":{},"算":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"如":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}},"从":{"2":{"0":{"2":{"3":{"docs":{},"年":{"docs":{},"起":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"环":{"docs":{},"节":{"docs":{},",":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"选":{"docs":{},"环":{"docs":{},"节":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"参":{"docs":{},"考":{"docs":{},"文":{"docs":{},"档":{"docs":{},"获":{"docs":{},"取":{"docs":{},"更":{"docs":{},"多":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"这":{"docs":{},"里":{"docs":{},"下":{"docs":{},"载":{"docs":{},"我":{"docs":{},"们":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"程":{"docs":{},"序":{"docs":{},"包":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"好":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}}}}}}}},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"i":{"docs":{},"r":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"了":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"、":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"、":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"循":{"docs":{},"环":{"docs":{},"。":{"docs":{},"高":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"许":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},"在":{"docs":{},"i":{"docs":{},"r":{"docs":{},"中":{"docs":{},"都":{"docs":{},"被":{"docs":{},"抹":{"docs":{},"去":{"docs":{},"了":{"docs":{},",":{"docs":{},"让":{"docs":{},"代":{"docs":{},"码":{"docs":{},"更":{"docs":{},"加":{"docs":{},"简":{"docs":{},"洁":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{},"而":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"i":{"docs":{},"r":{"docs":{},"中":{"docs":{},"无":{"docs":{},"需":{"docs":{},"关":{"docs":{},"注":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"与":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"架":{"docs":{},"构":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"尽":{"docs":{},"管":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},"级":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},",":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"和":{"docs":{},"传":{"docs":{},"递":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"的":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"节":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"对":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"规":{"docs":{},"范":{"docs":{},"进":{"docs":{},"行":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"名":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"必":{"docs":{},"要":{"docs":{},"时":{"docs":{},"调":{"docs":{},"用":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},"端":{"docs":{},"出":{"docs":{},"来":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"对":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"条":{"docs":{},"数":{"docs":{},"这":{"docs":{},"个":{"docs":{},"角":{"docs":{},"度":{"docs":{},"(":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"雷":{"docs":{},"同":{"docs":{},"情":{"docs":{},"节":{"docs":{},"严":{"docs":{},"重":{"docs":{},"的":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"有":{"docs":{},"权":{"docs":{},"上":{"docs":{},"报":{"docs":{},"至":{"docs":{},"院":{"docs":{},"系":{"docs":{},"和":{"docs":{},"学":{"docs":{},"校":{"docs":{},",":{"docs":{},"并":{"docs":{},"按":{"docs":{},"照":{"docs":{},"相":{"docs":{},"关":{"docs":{},"规":{"docs":{},"定":{"docs":{},"严":{"docs":{},"肃":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"需":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"对":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"”":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{},"交":{"docs":{},"叉":{"docs":{},"编":{"docs":{},"译":{"docs":{},"(":{"docs":{},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"那":{"docs":{},"样":{"docs":{},"有":{"docs":{},"严":{"docs":{},"格":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"选":{"docs":{},"择":{"docs":{},"输":{"docs":{},"出":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"选":{"docs":{},"择":{"docs":{},"输":{"docs":{},"出":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"只":{"docs":{},"有":{"docs":{},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"方":{"docs":{},"便":{"docs":{},"自":{"docs":{},"己":{"docs":{},"调":{"docs":{},"试":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"段":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"了":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}},"没":{"docs":{},"有":{"docs":{},"特":{"docs":{},"别":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"(":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"精":{"docs":{},"确":{"docs":{},"了":{"docs":{},"解":{"docs":{},"它":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},",":{"docs":{},"大":{"docs":{},"致":{"docs":{},"理":{"docs":{},"解":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"的":{"docs":{},"标":{"docs":{},"签":{"docs":{},"只":{"docs":{},"有":{"docs":{},"标":{"docs":{},"志":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}},",":{"docs":{},"x":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"没":{"docs":{},"有":{"docs":{},"为":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"(":{"2":{"0":{"2":{"4":{"docs":{},")":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},",":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"时":{"docs":{},"通":{"docs":{},"过":{"docs":{},"读":{"docs":{},"取":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"得":{"docs":{},"到":{"docs":{},"初":{"docs":{},"值":{"docs":{},"。":{"docs":{},"此":{"docs":{},"处":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"显":{"docs":{},"式":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"可":{"docs":{},"简":{"docs":{},"化":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"中":{"docs":{},"端":{"docs":{},"与":{"docs":{},"后":{"docs":{},"端":{"docs":{},"完":{"docs":{},"全":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}},"不":{"docs":{},"过":{"docs":{},"不":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}},"也":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"的":{"docs":{},"大":{"docs":{},"部":{"docs":{},"分":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"均":{"docs":{},"保":{"docs":{},"持":{"docs":{},"以":{"docs":{},"上":{"docs":{},"指":{"docs":{},"令":{"docs":{},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"确":{"docs":{},"定":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"时":{"docs":{},",":{"docs":{},"统":{"docs":{},"计":{"docs":{},"所":{"docs":{},"有":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"并":{"docs":{},"为":{"docs":{},"它":{"docs":{},"们":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"一":{"docs":{},"个":{"docs":{},"相":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"打":{"docs":{},"算":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"指":{"docs":{},"针":{"docs":{},"f":{"docs":{},"p":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"了":{"docs":{},"返":{"docs":{},"回":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"表":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"b":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731}}}}},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"且":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"算":{"docs":{},"作":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"先":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"没":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"进":{"docs":{},"行":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"首":{"docs":{},"先":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"中":{"docs":{},"(":{"docs":{},"花":{"docs":{},"括":{"docs":{},"号":{"docs":{},"括":{"docs":{},"起":{"docs":{},"来":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"会":{"docs":{},"先":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"变":{"docs":{},"为":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"作":{"docs":{},"用":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"域":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"6":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}}}}}}}}}},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}},"栈":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}},"里":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"管":{"docs":{},"理":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"任":{"docs":{},"意":{"docs":{},"多":{"docs":{},"条":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"性":{"docs":{},"能":{"docs":{},"测":{"docs":{},"试":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}},"你":{"docs":{},"做":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"工":{"docs":{},"作":{"docs":{},"(":{"docs":{},"即":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}},"的":{"docs":{},"学":{"docs":{},"号":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"姓":{"docs":{},"名":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},"将":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"单":{"docs":{},"个":{"docs":{},"测":{"docs":{},"试":{"docs":{},"点":{"docs":{},"的":{"docs":{},"得":{"docs":{},"分":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"}":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"将":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"中":{"docs":{},"名":{"docs":{},"字":{"docs":{},"改":{"docs":{},"为":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},"看":{"docs":{},"看":{"docs":{},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"会":{"docs":{},"发":{"docs":{},"生":{"docs":{},"什":{"docs":{},"么":{"docs":{},"变":{"docs":{},"化":{"docs":{},"吧":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"可":{"docs":{},"变":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"长":{"docs":{},"度":{"docs":{},"不":{"docs":{},"大":{"docs":{},"于":{"0":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"选":{"docs":{},"择":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"在":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"中":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{},"成":{"docs":{},"员":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"如":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"和":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"后":{"docs":{},"记":{"docs":{},"录":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"结":{"docs":{},"果":{"docs":{},"用":{"docs":{},"于":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"上":{"docs":{},"再":{"docs":{},"次":{"docs":{},"进":{"docs":{},"行":{"docs":{},"抽":{"docs":{},"象":{"docs":{},",":{"docs":{},"将":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"和":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"分":{"docs":{},"开":{"docs":{},",":{"docs":{},"设":{"docs":{},"计":{"docs":{},"专":{"docs":{},"门":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"和":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"更":{"docs":{},"加":{"docs":{},"清":{"docs":{},"晰":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"会":{"docs":{},"觉":{"docs":{},"得":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"不":{"docs":{},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"发":{"docs":{},"现":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"能":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"空":{"docs":{},"间":{"docs":{},"大":{"docs":{},"小":{"docs":{},"有":{"docs":{},"限":{"docs":{},",":{"docs":{},"存":{"docs":{},"放":{"docs":{},"不":{"docs":{},"了":{"docs":{},"太":{"docs":{},"多":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"而":{"docs":{},"言":{"docs":{},"的":{"docs":{},"确":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"你":{"docs":{},"无":{"docs":{},"需":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"那":{"docs":{},"种":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"开":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"应":{"docs":{},"该":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"自":{"docs":{},"己":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"实":{"docs":{},"现":{"docs":{},"、":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"和":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"卷":{"docs":{},"页":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"应":{"docs":{},"该":{"docs":{},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"你":{"docs":{},"们":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"缺":{"docs":{},"少":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"不":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"任":{"docs":{},"何":{"docs":{},"报":{"docs":{},"告":{"docs":{},"成":{"docs":{},"绩":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"类":{"docs":{},"似":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{},"输":{"docs":{},"出":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"添":{"docs":{},"加":{"docs":{},"合":{"docs":{},"理":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"以":{"docs":{},"便":{"docs":{},"批":{"docs":{},"阅":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"新":{"docs":{},"测":{"docs":{},"例":{"docs":{},"(":{"docs":{},"见":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},")":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"检":{"docs":{},"测":{"docs":{},"新":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"通":{"docs":{},"过":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"来":{"docs":{},"将":{"docs":{},"其":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"i":{"docs":{},"r":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"当":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"f":{"docs":{},"节":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"三":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"整":{"docs":{},"个":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"结":{"docs":{},"束":{"docs":{},"。":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"判":{"docs":{},"断":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"i":{"docs":{},"f":{"docs":{},"条":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"标":{"docs":{},"签":{"docs":{},"以":{"docs":{},"及":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"块":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"生":{"docs":{},"成":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"块":{"docs":{},"的":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"哪":{"docs":{},"种":{"docs":{},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},"设":{"docs":{},"计":{"docs":{},"(":{"docs":{},"单":{"docs":{},"目":{"docs":{},"标":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"主":{"docs":{},"要":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"即":{"docs":{},"为":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"与":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"两":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"倾":{"docs":{},"向":{"docs":{},"采":{"docs":{},"纳":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"中":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"(":{"docs":{},"一":{"docs":{},"整":{"docs":{},"条":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"更":{"docs":{},"高":{"docs":{},"效":{"docs":{},"的":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"吗":{"docs":{},"?":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"参":{"docs":{},"加":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"你":{"docs":{},"的":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"将":{"docs":{},"会":{"docs":{},"是":{"docs":{},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"案":{"docs":{},"一":{"docs":{},"、":{"docs":{},"二":{"docs":{},"取":{"docs":{},"最":{"docs":{},"高":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"交":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"每":{"docs":{},"个":{"docs":{},"同":{"docs":{},"学":{"docs":{},"在":{"docs":{},"上":{"docs":{},"次":{"docs":{},"检":{"docs":{},"查":{"docs":{},"后":{"docs":{},"的":{"docs":{},"分":{"docs":{},"工":{"docs":{},"以":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"缺":{"docs":{},"少":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"报":{"docs":{},"告":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"将":{"docs":{},"会":{"docs":{},"被":{"docs":{},"扣":{"docs":{},"除":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"的":{"docs":{},"分":{"docs":{},"工":{"docs":{},"以":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"缺":{"docs":{},"少":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"报":{"docs":{},"告":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"将":{"docs":{},"会":{"docs":{},"被":{"docs":{},"扣":{"docs":{},"除":{"5":{"docs":{},"分":{"docs":{},"(":{"docs":{},"总":{"docs":{},"评":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"会":{"docs":{},"发":{"docs":{},"现":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"组":{"docs":{},"织":{"docs":{},"成":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"树":{"docs":{},"状":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"即":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"i":{"docs":{},"r":{"docs":{},"输":{"docs":{},"出":{"docs":{},"格":{"docs":{},"式":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"也":{"docs":{},"更":{"docs":{},"加":{"docs":{},"易":{"docs":{},"读":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"全":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"按":{"docs":{},"照":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"这":{"docs":{},"些":{"docs":{},"结":{"docs":{},"构":{"docs":{},"来":{"docs":{},"设":{"docs":{},"计":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}},"docs":{}}}}},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"不":{"docs":{},"是":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"放":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"固":{"docs":{},"定":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"写":{"docs":{},"在":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"不":{"docs":{},"是":{"docs":{},"被":{"docs":{},"狭":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"是":{"docs":{},"被":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"被":{"docs":{},"链":{"docs":{},"接":{"docs":{},"器":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"或":{"docs":{},"加":{"docs":{},"载":{"docs":{},"器":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"栈":{"docs":{},"底":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"与":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"是":{"docs":{},"升":{"docs":{},"级":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"留":{"docs":{},"给":{"docs":{},"同":{"docs":{},"学":{"docs":{},"自":{"docs":{},"行":{"docs":{},"思":{"docs":{},"考":{"docs":{},"(":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"究":{"docs":{},"竟":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},"更":{"docs":{},"大":{"docs":{},"?":{"docs":{},"提":{"docs":{},"示":{"docs":{},":":{"1":{"docs":{},".":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},"于":{"docs":{},"名":{"docs":{},"字":{"docs":{},"由":{"docs":{},"来":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"往":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"给":{"docs":{},"出":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"提":{"docs":{},"供":{"docs":{},"注":{"docs":{},"释":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"学":{"docs":{},"习":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"与":{"docs":{},"数":{"docs":{},"学":{"docs":{},"文":{"docs":{},"献":{"docs":{},"中":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}},"双":{"docs":{},"引":{"docs":{},"号":{"docs":{},"下":{"docs":{},"的":{"docs":{},"和":{"docs":{},"大":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"开":{"docs":{},"头":{"docs":{},"的":{"docs":{},"都":{"docs":{},"为":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"可":{"docs":{},"能":{"docs":{},"长":{"docs":{},"这":{"docs":{},"样":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"a":{"docs":{},"是":{"docs":{},"上":{"docs":{},"一":{"docs":{},"行":{"docs":{},"的":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"和":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"是":{"docs":{},"标":{"docs":{},"签":{"docs":{},"。":{"docs":{},"其":{"docs":{},"语":{"docs":{},"义":{"docs":{},"为":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"的":{"docs":{},"值":{"docs":{},"为":{"0":{"docs":{},"(":{"docs":{},"假":{"docs":{},")":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{},";":{"docs":{},"若":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"非":{"0":{"docs":{},"(":{"docs":{},"真":{"docs":{},")":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{},"。":{"docs":{},"它":{"docs":{},"与":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"总":{"docs":{},"是":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"两":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"9":{"0":{"docs":{},"%":{"docs":{},"构":{"docs":{},"成":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"docs":{}},"docs":{}}},"他":{"docs":{},"测":{"docs":{},"试":{"docs":{},"点":{"docs":{},",":{"docs":{},"太":{"docs":{},"长":{"docs":{},"省":{"docs":{},"略":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},"设":{"docs":{},"定":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"其":{"docs":{},"含":{"docs":{},"义":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"时":{"docs":{},"候":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"反":{"docs":{},"直":{"docs":{},"观":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"0":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"也":{"docs":{},"支":{"docs":{},"持":{"docs":{},"非":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"期":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"代":{"docs":{},"表":{"docs":{},"性":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"它":{"docs":{},"的":{"docs":{},"整":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"流":{"docs":{},"程":{"docs":{},"。":{"docs":{},"在":{"docs":{},"之":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"于":{"1":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"恢":{"docs":{},"复":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"docs":{}}}},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"方":{"docs":{},"法":{"docs":{},"并":{"docs":{},"不":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{},"但":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"来":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"某":{"docs":{},"个":{"docs":{},"“":{"docs":{},"一":{"docs":{},"整":{"docs":{},"条":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"”":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"大":{"docs":{},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"(":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"只":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"传":{"docs":{},"参":{"docs":{},")":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"上":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"借":{"docs":{},"助":{"docs":{},"d":{"docs":{},"u":{"docs":{},"/":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"9":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}}}}},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}},"部":{"docs":{},"分":{"docs":{},"由":{"docs":{},"于":{"docs":{},"难":{"docs":{},"度":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},"预":{"docs":{},"留":{"docs":{},"了":{"docs":{},"四":{"docs":{},"周":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"请":{"docs":{},"大":{"docs":{},"家":{"docs":{},"不":{"docs":{},"要":{"docs":{},"等":{"docs":{},"到":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"周":{"docs":{},"再":{"docs":{},"开":{"docs":{},"始":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"标":{"docs":{},"签":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},")":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"作":{"docs":{},"为":{"docs":{},"分":{"docs":{},"支":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"目":{"docs":{},"标":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"个":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"而":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"标":{"docs":{},"签":{"docs":{},"来":{"docs":{},"指":{"docs":{},"示":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"用":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"3":{"7":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"递":{"docs":{},"归":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}},")":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"抽":{"docs":{},"象":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"里":{"docs":{},",":{"docs":{},"各":{"docs":{},"种":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"进":{"docs":{},"行":{"docs":{},"深":{"docs":{},"度":{"docs":{},"优":{"docs":{},"先":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"。":{"docs":{},"容":{"docs":{},"易":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"d":{"docs":{},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"被":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"执":{"docs":{},"行":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"把":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"压":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"直":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"(":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},")":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},",":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},")":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"了":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"目":{"docs":{},"前":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"函":{"docs":{},"数":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"不":{"docs":{},"同":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"对":{"docs":{},"于":{"docs":{},"在":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"中":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"调":{"docs":{},"用":{"docs":{},"了":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"应":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"找":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"集":{"docs":{},"中":{"docs":{},"于":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"和":{"docs":{},"加":{"docs":{},"载":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"参":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"视":{"docs":{},"为":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"被":{"docs":{},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"被":{"docs":{},"以":{"docs":{},"实":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},")":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"形":{"docs":{},"参":{"docs":{},"均":{"docs":{},"为":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"且":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},"直":{"docs":{},"接":{"docs":{},"重":{"docs":{},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"是":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"更":{"docs":{},"小":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"的":{"docs":{},"块":{"docs":{},"中":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"上":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},"可":{"docs":{},"以":{"docs":{},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"所":{"docs":{},"有":{"docs":{},"出":{"docs":{},"现":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"在":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"中":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"单":{"docs":{},"张":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},"至":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}},"调":{"docs":{},"用":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"通":{"docs":{},"常":{"docs":{},"不":{"docs":{},"止":{"docs":{},"一":{"docs":{},"条":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"在":{"docs":{},"它":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"传":{"docs":{},"参":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"参":{"docs":{},"数":{"docs":{},"少":{"docs":{},"时":{"docs":{},"用":{"docs":{},"m":{"docs":{},"v":{"docs":{},",":{"docs":{},"多":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"压":{"docs":{},"栈":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{},"它":{"docs":{},"之":{"docs":{},"后":{"docs":{},"可":{"docs":{},"能":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"参":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"以":{"docs":{},"及":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"传":{"docs":{},"递":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"docs":{}},"docs":{}}}},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"原":{"docs":{},"型":{"docs":{},",":{"docs":{},"三":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"长":{"docs":{},"度":{"docs":{},"(":{"docs":{},"以":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"个":{"docs":{},"数":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},")":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},"条":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"列":{"docs":{},"表":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}},"参":{"docs":{},"考":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"资":{"docs":{},"料":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":3.333333333333333},"REFERENCE.html":{"ref":"REFERENCE.html","tf":10.027777777777779}}}},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"度":{"docs":{},"及":{"docs":{},"顺":{"docs":{},"序":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"加":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"应":{"docs":{},"该":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"从":{"docs":{},"头":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}},"及":{"docs":{},"触":{"docs":{},"发":{"docs":{},"此":{"docs":{},"次":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"更":{"docs":{},"高":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.017006802721088437}},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}}}}}}}}},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"读":{"docs":{},"取":{"docs":{},"/":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"指":{"docs":{},"定":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"符":{"docs":{},"号":{"docs":{},"究":{"docs":{},"竟":{"docs":{},"存":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"程":{"docs":{},"序":{"docs":{},"不":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"同":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"学":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"面":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"但":{"docs":{},"不":{"docs":{},"必":{"docs":{},"担":{"docs":{},"心":{"docs":{},",":{"docs":{},"实":{"docs":{},"验":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"几":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"中":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"种":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"设":{"docs":{},"计":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"应":{"docs":{},"只":{"docs":{},"能":{"docs":{},"作":{"docs":{},"为":{"docs":{},"至":{"docs":{},"多":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},",":{"docs":{},"即":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"声":{"docs":{},"明":{"docs":{},"重":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"地":{"docs":{},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"完":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"不":{"docs":{},"要":{"docs":{},"忘":{"docs":{},"记":{"docs":{},"为":{"docs":{},"其":{"docs":{},"分":{"docs":{},"配":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"自":{"docs":{},"行":{"docs":{},"思":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"才":{"docs":{},"能":{"docs":{},"尝":{"docs":{},"试":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"面":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{},":":{"docs":{},"(":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"负":{"docs":{},"号":{"docs":{},"配":{"docs":{},"合":{"docs":{},"正":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"来":{"docs":{},"间":{"docs":{},"接":{"docs":{},"表":{"docs":{},"示":{"docs":{},"负":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}},"续":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"选":{"docs":{},"做":{"docs":{},"“":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},":":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"线":{"docs":{},"性":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"法":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"docs":{},"折":{"docs":{},"叠":{"docs":{},"等":{"docs":{},"等":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"负":{"docs":{},"责":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":10.00381679389313}}}}}},"和":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.014319809069212411},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.027649769585253458},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.031746031746031744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.013440860215053764}},"常":{"docs":{},"说":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"最":{"docs":{},"近":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"生":{"docs":{},"成":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"列":{"docs":{},"出":{"docs":{},"与":{"docs":{},"实":{"docs":{},"验":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},",":{"docs":{},"它":{"docs":{},"会":{"docs":{},"和":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"上":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"部":{"docs":{},"分":{"docs":{},"保":{"docs":{},"持":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"问":{"docs":{},"题":{"docs":{},"时":{"docs":{},",":{"docs":{},"请":{"docs":{},"先":{"docs":{},"在":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"查":{"docs":{},"看":{"docs":{},"是":{"docs":{},"否":{"docs":{},"已":{"docs":{},"有":{"docs":{},"解":{"docs":{},"答":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"暂":{"docs":{},"不":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"v":{"docs":{},"l":{"docs":{},"a":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"x":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"a":{"0":{"docs":{},"上":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"a":{"0":{"docs":{},"即":{"docs":{},"x":{"docs":{},"具":{"docs":{},"有":{"docs":{},"超":{"docs":{},"长":{"docs":{},"的":{"docs":{},"生":{"docs":{},"命":{"docs":{},"周":{"docs":{},"期":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"与":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"节":{"docs":{},"点":{"docs":{},"相":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"中":{"docs":{},"间":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"含":{"docs":{},"有":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"对":{"docs":{},"a":{"0":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"存":{"docs":{},"在":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"段":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"左":{"docs":{},"边":{"docs":{},"输":{"docs":{},"入":{"docs":{},"以":{"docs":{},"下":{"docs":{},"例":{"docs":{},"子":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"线":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"第":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}},"二":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"对":{"docs":{},"其":{"docs":{},"中":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"用":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"器":{"docs":{},"中":{"docs":{},"有":{"docs":{},"着":{"docs":{},"广":{"docs":{},"泛":{"docs":{},"的":{"docs":{},"应":{"docs":{},"用":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}},"分":{"docs":{},"析":{"docs":{},"各":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"时":{"docs":{},",":{"docs":{},"若":{"docs":{},"它":{"docs":{},"们":{"docs":{},"引":{"docs":{},"用":{"docs":{},"了":{"docs":{},"某":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"docs":{},"询":{"docs":{},"这":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"及":{"docs":{},"相":{"docs":{},"关":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"如":{"docs":{},"类":{"docs":{},"型":{"docs":{},")":{"docs":{},";":{"docs":{},"(":{"2":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"即":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"跟":{"docs":{},"任":{"docs":{},"何":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"建":{"docs":{},"立":{"docs":{},"关":{"docs":{},"联":{"docs":{},"关":{"docs":{},"系":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"有":{"docs":{},"则":{"docs":{},"选":{"docs":{},"择":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"作":{"docs":{},"为":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"其":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"已":{"docs":{},"经":{"docs":{},"不":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"说":{"docs":{},"明":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"未":{"docs":{},"来":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"回":{"docs":{},"收":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"而":{"docs":{},"不":{"docs":{},"用":{"docs":{},"担":{"docs":{},"心":{"docs":{},"引":{"docs":{},"起":{"docs":{},"数":{"docs":{},"据":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"是":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"将":{"docs":{},"把":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"(":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},")":{"docs":{},"中":{"docs":{},",":{"docs":{},"腾":{"docs":{},"出":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"这":{"docs":{},"也":{"docs":{},"称":{"docs":{},"为":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"所":{"docs":{},"腾":{"docs":{},"空":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"是":{"docs":{},"随":{"docs":{},"机":{"docs":{},"选":{"docs":{},"取":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"所":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"有":{"docs":{},"些":{"docs":{},"暴":{"docs":{},"力":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"优":{"docs":{},"化":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"已":{"docs":{},"知":{"docs":{},"定":{"docs":{},"型":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"编":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"算":{"docs":{},"法":{"docs":{},"并":{"docs":{},"不":{"docs":{},"困":{"docs":{},"难":{"docs":{},"—":{"docs":{},"—":{"docs":{},"往":{"docs":{},"往":{"docs":{},"只":{"docs":{},"要":{"docs":{},"逐":{"docs":{},"条":{"docs":{},"将":{"docs":{},"其":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"我":{"docs":{},"们":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},",":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"最":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"有":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"际":{"docs":{},"操":{"docs":{},"作":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"已":{"docs":{},"经":{"docs":{},"给":{"docs":{},"出":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"集":{"docs":{},"中":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"存":{"docs":{},"在":{"docs":{},"短":{"docs":{},"路":{"docs":{},"现":{"docs":{},"象":{"docs":{},"。":{"docs":{},"即":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"中":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"均":{"docs":{},"是":{"docs":{},"单":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"从":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"已":{"docs":{},"经":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"了":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"类":{"docs":{},"型":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"下":{"docs":{},"一":{"docs":{},"步":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"则":{"docs":{},"是":{"docs":{},"将":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"便":{"docs":{},"于":{"docs":{},"移":{"docs":{},"植":{"docs":{},"和":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"就":{"docs":{},"是":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"。":{"docs":{},"如":{"docs":{},"何":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"?":{"docs":{},"当":{"docs":{},"然":{"docs":{},"还":{"docs":{},"是":{"docs":{},"无":{"docs":{},"所":{"docs":{},"不":{"docs":{},"能":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"上":{"docs":{},"对":{"docs":{},"应":{"docs":{},"父":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},",":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"实":{"docs":{},"际":{"docs":{},"拥":{"docs":{},"有":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"数":{"docs":{},"目":{"docs":{},",":{"docs":{},"将":{"docs":{},"无":{"docs":{},"法":{"docs":{},"生":{"docs":{},"成":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"采":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"和":{"docs":{},"分":{"docs":{},"配":{"docs":{},"数":{"docs":{},"目":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"资":{"docs":{},"源":{"docs":{},",":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"伪":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"都":{"docs":{},"有":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"与":{"docs":{},"之":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"时":{"docs":{},"刻":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"即":{"docs":{},"两":{"docs":{},"个":{"docs":{},"同":{"docs":{},"时":{"docs":{},"有":{"docs":{},"效":{"docs":{},"且":{"docs":{},"将":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"将":{"docs":{},"造":{"docs":{},"成":{"docs":{},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"问":{"docs":{},"题":{"docs":{},"是":{"docs":{},"n":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"分":{"docs":{},"解":{"docs":{},"为":{"docs":{},"多":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"是":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"部":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"是":{"docs":{},"固":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"且":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"其":{"docs":{},"他":{"docs":{},"指":{"docs":{},"令":{"docs":{},"打":{"docs":{},"断":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"课":{"docs":{},"程":{"docs":{},"学":{"docs":{},"习":{"docs":{},"中":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"接":{"docs":{},"触":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"下":{"docs":{},"面":{"docs":{},"简":{"docs":{},"单":{"docs":{},"回":{"docs":{},"顾":{"docs":{},"一":{"docs":{},"下":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"和":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"辟":{"docs":{},"一":{"docs":{},"块":{"docs":{},"新":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"块":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"就":{"docs":{},"叫":{"docs":{},"做":{"docs":{},"“":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"”":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"各":{"docs":{},"种":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"需":{"docs":{},"要":{"docs":{},"临":{"docs":{},"时":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"临":{"docs":{},"时":{"docs":{},"申":{"docs":{},"请":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"(":{"docs":{},"如":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"语":{"docs":{},"句":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"逐":{"docs":{},"一":{"docs":{},"访":{"docs":{},"问":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"它":{"docs":{},"存":{"docs":{},"入":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"在":{"docs":{},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"同":{"docs":{},"名":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"并":{"docs":{},"随":{"docs":{},"着":{"docs":{},"进":{"docs":{},"入":{"docs":{},"和":{"docs":{},"退":{"docs":{},"出":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"函":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},"时":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"当":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"或":{"docs":{},"变":{"docs":{},"量":{"docs":{},"引":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"查":{"docs":{},"找":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"以":{"docs":{},"确":{"docs":{},"保":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"已":{"docs":{},"定":{"docs":{},"义":{"docs":{},"且":{"docs":{},"在":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"正":{"docs":{},"在":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"已":{"docs":{},"被":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"但":{"docs":{},"其":{"docs":{},"值":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"正":{"docs":{},"在":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"已":{"docs":{},"被":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"会":{"docs":{},"隐":{"docs":{},"藏":{"docs":{},"(":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},")":{"docs":{},"外":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"同":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"但":{"docs":{},"其":{"docs":{},"值":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"a":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{},"(":{"docs":{},"=":{"docs":{},")":{"docs":{},"中":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"被":{"docs":{},"存":{"docs":{},"在":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"指":{"docs":{},"派":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"处":{"docs":{},"需":{"docs":{},"要":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"在":{"docs":{},"该":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"定":{"docs":{},"值":{"docs":{},"就":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"处":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"但":{"docs":{},"是":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"定":{"docs":{},"值":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"因":{"docs":{},"为":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"初":{"docs":{},"值":{"docs":{},"必":{"docs":{},"定":{"docs":{},"是":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"基":{"docs":{},"本":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"划":{"docs":{},"分":{"docs":{},"好":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"头":{"docs":{},"到":{"docs":{},"尾":{"docs":{},"依":{"docs":{},"次":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"建":{"docs":{},"立":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"都":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"毕":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"建":{"docs":{},"立":{"docs":{},"了":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"满":{"docs":{},"足":{"docs":{},"前":{"docs":{},"两":{"docs":{},"条":{"docs":{},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},"含":{"docs":{},"有":{"docs":{},"最":{"docs":{},"多":{"docs":{},"的":{"docs":{},"连":{"docs":{},"续":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"即":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"头":{"docs":{},"尾":{"docs":{},"再":{"docs":{},"纳":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"将":{"docs":{},"会":{"docs":{},"违":{"docs":{},"反":{"docs":{},"上":{"docs":{},"面":{"docs":{},"两":{"docs":{},"条":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"早":{"docs":{},"先":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"和":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"两":{"docs":{},"种":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},"只":{"docs":{},"对":{"docs":{},"应":{"docs":{},"实":{"docs":{},"际":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"一":{"docs":{},"道":{"docs":{},"关":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"或":{"docs":{},"许":{"docs":{},"能":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"你":{"docs":{},"思":{"docs":{},"考":{"docs":{},"(":{"docs":{},"你":{"docs":{},"无":{"docs":{},"需":{"docs":{},"回":{"docs":{},"答":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"标":{"docs":{},"准":{"docs":{},"答":{"docs":{},"案":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"中":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"_":{"docs":{},"b":{"0":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"还":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{},"_":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{},"_":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}},"准":{"docs":{},"备":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"会":{"docs":{},"被":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"赋":{"docs":{},"给":{"docs":{},"相":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"上":{"docs":{},"的":{"docs":{},"形":{"docs":{},"参":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"但":{"docs":{},"即":{"docs":{},"便":{"docs":{},"实":{"docs":{},"参":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{},"实":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"参":{"docs":{},"和":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"个":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"同":{"docs":{},"一":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"也":{"docs":{},"必":{"docs":{},"须":{"docs":{},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"其":{"docs":{},"值":{"docs":{},"全":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"而":{"docs":{},"对":{"docs":{},"于":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"其":{"docs":{},"值":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"有":{"docs":{},"一":{"docs":{},"种":{"docs":{},"合":{"docs":{},"并":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"进":{"docs":{},"阶":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{},"合":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"查":{"docs":{},"找":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"除":{"docs":{},"传":{"docs":{},"参":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"确":{"docs":{},"认":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"无":{"docs":{},"误":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"该":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"要":{"docs":{},"记":{"docs":{},"得":{"docs":{},"维":{"docs":{},"护":{"docs":{},"一":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"当":{"docs":{},"前":{"docs":{},"所":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"、":{"docs":{},"当":{"docs":{},"前":{"docs":{},"所":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"数":{"docs":{},"量":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"数":{"docs":{},"量":{"docs":{},"、":{"docs":{},"前":{"docs":{},"端":{"docs":{},"变":{"docs":{},"量":{"docs":{},"到":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"表":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"利":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},",":{"docs":{},"进":{"docs":{},"行":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"表":{"docs":{},"示":{"docs":{},"感":{"docs":{},"谢":{"docs":{},"!":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"早":{"docs":{},"期":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"我":{"docs":{},"们":{"docs":{},"无":{"docs":{},"法":{"docs":{},"确":{"docs":{},"定":{"docs":{},"最":{"docs":{},"终":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"变":{"docs":{},"量":{"docs":{},"会":{"docs":{},"使":{"docs":{},"得":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"大":{"docs":{},"小":{"docs":{},"增":{"docs":{},"加":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"追":{"docs":{},"踪":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},"和":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{},"留":{"docs":{},"意":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"和":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"允":{"docs":{},"许":{"docs":{},"的":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"当":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"具":{"docs":{},"有":{"docs":{},"巨":{"docs":{},"大":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"插":{"docs":{},"入":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"计":{"docs":{},"算":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"或":{"docs":{},"访":{"docs":{},"问":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"甚":{"docs":{},"至":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"新":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"前":{"docs":{},"可":{"docs":{},"能":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}},"经":{"docs":{},"过":{"docs":{},"带":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"合":{"docs":{},"并":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"后":{"docs":{},",":{"docs":{},"大":{"docs":{},"概":{"docs":{},"率":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"备":{"docs":{},"注":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"把":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"实":{"docs":{},"验":{"docs":{},"为":{"docs":{},"组":{"docs":{},"队":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"4":{"docs":{},"人":{"docs":{},"一":{"docs":{},"组":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"更":{"docs":{},"少":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"评":{"docs":{},"分":{"docs":{},"标":{"docs":{},"准":{"docs":{},"保":{"docs":{},"持":{"docs":{},"不":{"docs":{},"变":{"docs":{},")":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"情":{"docs":{},"况":{"docs":{},"时":{"docs":{},",":{"docs":{},"同":{"docs":{},"组":{"docs":{},"同":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"参":{"docs":{},"考":{"docs":{},"文":{"docs":{},"档":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"在":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"与":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"简":{"docs":{},"介":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":10}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"目":{"docs":{},"标":{"docs":{},":":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"有":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"。":{"docs":{},"部":{"docs":{},"分":{"docs":{},"达":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"能":{"docs":{},"力":{"docs":{},"设":{"docs":{},"计":{"docs":{},"大":{"docs":{},"赛":{"docs":{},"—":{"docs":{},"—":{"docs":{},"编":{"docs":{},"译":{"docs":{},"系":{"docs":{},"统":{"docs":{},"设":{"docs":{},"计":{"docs":{},"赛":{"docs":{},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"其":{"docs":{},"中":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"鼓":{"docs":{},"励":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"参":{"docs":{},"加":{"docs":{},"系":{"docs":{},"统":{"docs":{},"能":{"docs":{},"力":{"docs":{},"设":{"docs":{},"计":{"docs":{},"大":{"docs":{},"赛":{"docs":{},",":{"docs":{},"比":{"docs":{},"赛":{"docs":{},"有":{"docs":{},"查":{"docs":{},"重":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"开":{"docs":{},"始":{"docs":{},"参":{"docs":{},"加":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"并":{"docs":{},"参":{"docs":{},"与":{"docs":{},"后":{"docs":{},"续":{"docs":{},"比":{"docs":{},"赛":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"被":{"docs":{},"判":{"docs":{},"定":{"docs":{},"为":{"docs":{},"重":{"docs":{},"复":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"交":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"也":{"docs":{},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"过":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"可":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"间":{"docs":{},"接":{"docs":{},"渠":{"docs":{},"道":{"docs":{},"传":{"docs":{},"播":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"过":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"可":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"间":{"docs":{},"接":{"docs":{},"渠":{"docs":{},"道":{"docs":{},"传":{"docs":{},"播":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"果":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"你":{"docs":{},"复":{"docs":{},"用":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"了":{"docs":{},"参":{"docs":{},"考":{"docs":{},"代":{"docs":{},"码":{"docs":{},"或":{"docs":{},"其":{"docs":{},"他":{"docs":{},"资":{"docs":{},"源":{"docs":{},",":{"docs":{},"请":{"docs":{},"明":{"docs":{},"确":{"docs":{},"写":{"docs":{},"出":{"docs":{},"你":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"你":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"代":{"docs":{},"码":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"立":{"docs":{},"认":{"docs":{},"真":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"请":{"docs":{},"及":{"docs":{},"时":{"docs":{},"与":{"docs":{},"助":{"docs":{},"教":{"docs":{},"联":{"docs":{},"系":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"间":{"docs":{},"充":{"docs":{},"足":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"阅":{"docs":{},"读":{"docs":{},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"来":{"docs":{},"看":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"环":{"docs":{},"境":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"指":{"docs":{},"导":{"docs":{},"。":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}},"希":{"docs":{},"望":{"docs":{},"获":{"docs":{},"取":{"docs":{},"详":{"docs":{},"细":{"docs":{},"测":{"docs":{},"试":{"docs":{},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"点":{"docs":{},"击":{"docs":{},"这":{"docs":{},"个":{"docs":{},"画":{"docs":{},"圈":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"知":{"docs":{},"道":{"docs":{},"某":{"docs":{},"个":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"应":{"docs":{},"该":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"这":{"docs":{},"里":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"了":{"docs":{},"解":{"docs":{},"一":{"docs":{},"下":{"docs":{},"l":{"docs":{},"l":{"docs":{},"v":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"在":{"docs":{},"多":{"docs":{},"次":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"机":{"docs":{},"器":{"docs":{},"上":{"docs":{},"直":{"docs":{},"接":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"较":{"docs":{},"低":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"发":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"整":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"将":{"docs":{},"终":{"docs":{},"止":{"docs":{},",":{"docs":{},"并":{"docs":{},"报":{"docs":{},"告":{"docs":{},"编":{"docs":{},"译":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"且":{"docs":{},"只":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"分":{"docs":{},"别":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},"于":{"docs":{},"报":{"docs":{},"告":{"docs":{},"提":{"docs":{},"交":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"请":{"docs":{},"及":{"docs":{},"时":{"docs":{},"联":{"docs":{},"系":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"低":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"出":{"docs":{},"于":{"docs":{},"某":{"docs":{},"些":{"docs":{},"原":{"docs":{},"因":{"docs":{},"必":{"docs":{},"须":{"docs":{},"使":{"docs":{},"用":{"docs":{},"低":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"现":{"docs":{},"悬":{"docs":{},"吊":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}},"没":{"docs":{},"有":{"docs":{},"安":{"docs":{},"装":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"如":{"docs":{},"下":{"docs":{},"错":{"docs":{},"误":{"docs":{},":":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"想":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"某":{"docs":{},"个":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}},"输":{"docs":{},"入":{"docs":{},"程":{"docs":{},"序":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"以":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}}}}}}},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"没":{"docs":{},"有":{"docs":{},"加":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"规":{"docs":{},"定":{"docs":{},"来":{"docs":{},"解":{"docs":{},"决":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"面":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"解":{"docs":{},"除":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"绑":{"docs":{},"定":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"问":{"docs":{},"题":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"其":{"docs":{},"拥":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"合":{"docs":{},"并":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"把":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"图":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"没":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"则":{"docs":{},"进":{"docs":{},"入":{"docs":{},"步":{"docs":{},"骤":{"3":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"图":{"docs":{},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"点":{"docs":{},"都":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"至":{"docs":{},"少":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"a":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"就":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"再":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"将":{"docs":{},"该":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},"存":{"docs":{},"入":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},"的":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"列":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"就":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"再":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"将":{"docs":{},"该":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},"存":{"docs":{},"入":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},"的":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"列":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"数":{"docs":{},"组":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"量":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"要":{"docs":{},"另":{"docs":{},"外":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"(":{"docs":{},"这":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"则":{"docs":{},"将":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"改":{"docs":{},"为":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"再":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"该":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"且":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"先":{"docs":{},"新":{"docs":{},"增":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"将":{"docs":{},"地":{"docs":{},"址":{"docs":{},"里":{"docs":{},"的":{"docs":{},"值":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"返":{"docs":{},"回":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"返":{"docs":{},"回":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"是":{"docs":{},"个":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"o":{"docs":{},"r":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"o":{"docs":{},"r":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"可":{"docs":{},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"短":{"docs":{},"路":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"思":{"docs":{},"考":{"docs":{},"如":{"docs":{},"何":{"docs":{},"新":{"docs":{},"增":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"三":{"docs":{},"目":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},",":{"docs":{},"可":{"docs":{},"参":{"docs":{},"考":{"docs":{},"i":{"docs":{},"f":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},":":{"docs":{},"?":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},",":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"新":{"docs":{},"增":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"通":{"docs":{},"过":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},"应":{"docs":{},"该":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"标":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"下":{"docs":{},"标":{"docs":{},"都":{"docs":{},"是":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"故":{"docs":{},"需":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"每":{"docs":{},"个":{"docs":{},"下":{"docs":{},"标":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"存":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"存":{"docs":{},"进":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"s":{"docs":{},"中":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"利":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},"来":{"docs":{},"构":{"docs":{},"造":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"通":{"docs":{},"过":{"docs":{},"数":{"docs":{},"组":{"docs":{},"基":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"下":{"docs":{},"标":{"docs":{},"获":{"docs":{},"取":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"何":{"docs":{},"快":{"docs":{},"速":{"docs":{},"查":{"docs":{},"询":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"装":{"docs":{},"载":{"docs":{},"到":{"docs":{},"指":{"docs":{},"定":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"检":{"docs":{},"查":{"docs":{},"我":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"自":{"docs":{},"动":{"docs":{},"测":{"docs":{},"试":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{},")":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}},"找":{"docs":{},"到":{"docs":{},"所":{"docs":{},"有":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}},"解":{"docs":{},"决":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}},"学":{"docs":{},"术":{"docs":{},"规":{"docs":{},"范":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},",":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"细":{"docs":{},"节":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"。":{"docs":{},"但":{"docs":{},"有":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"“":{"docs":{},"既":{"docs":{},"可":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"a":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"重":{"docs":{},"新":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"a":{"docs":{},"”":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{},"这":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"新":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"示":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"让":{"docs":{},"所":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"默":{"docs":{},"认":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},",":{"docs":{},"保":{"docs":{},"证":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"能":{"docs":{},"够":{"docs":{},"完":{"docs":{},"成":{"docs":{},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"管":{"docs":{},"理":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"分":{"docs":{},"析":{"docs":{},"输":{"docs":{},"入":{"docs":{},"(":{"docs":{},"即":{"docs":{},"字":{"docs":{},"符":{"docs":{},")":{"docs":{},"并":{"docs":{},"产":{"docs":{},"生":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"验":{"docs":{},"思":{"docs":{},"路":{"docs":{},"指":{"docs":{},"导":{"docs":{},"与":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},"手":{"docs":{},"册":{"docs":{},"指":{"docs":{},"北":{"docs":{},":":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"看":{"docs":{},"起":{"docs":{},"来":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"长":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"庞":{"docs":{},"大":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"希":{"docs":{},"望":{"docs":{},"提":{"docs":{},"供":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"全":{"docs":{},"面":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"来":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"理":{"docs":{},"解":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"构":{"docs":{},"成":{"docs":{},"。":{"docs":{},"请":{"docs":{},"大":{"docs":{},"家":{"docs":{},"认":{"docs":{},"真":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"按":{"docs":{},"照":{"docs":{},"文":{"docs":{},"档":{"docs":{},"去":{"docs":{},"动":{"docs":{},"手":{"docs":{},"试":{"docs":{},"一":{"docs":{},"试":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"开":{"docs":{},"始":{"docs":{},"动":{"docs":{},"手":{"docs":{},"写":{"docs":{},"作":{"docs":{},"业":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},"指":{"docs":{},"导":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":10.004237288135593}},"书":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"(":{"docs":{},"首":{"docs":{},"页":{"docs":{},"有":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"提":{"docs":{},"交":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"概":{"docs":{},"述":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"简":{"docs":{},"介":{"docs":{"./":{"ref":"./","tf":10}}}},"起":{"docs":{},"点":{"docs":{},"和":{"docs":{},"基":{"docs":{},"本":{"docs":{},"要":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"进":{"docs":{},"度":{"docs":{},"安":{"docs":{},"排":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":10.012658227848101}}}}}},"环":{"docs":{},"境":{"docs":{},"简":{"docs":{},"介":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":10.026315789473685}}}}}},"框":{"docs":{},"架":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":10.019607843137255}}}}}},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"本":{"docs":{},"节":{"docs":{},"的":{"docs":{},"测":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"修":{"docs":{},"改":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"但":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"关":{"docs":{},"于":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{},"主":{"docs":{},"要":{"docs":{},"集":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"所":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"为":{"docs":{},"避":{"docs":{},"免":{"docs":{},"一":{"docs":{},"次":{"docs":{},"性":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"过":{"docs":{},"多":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},",":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":10},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":10},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":10},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":10},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":10},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":10},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":10},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":10},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":10},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":10},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":10},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":10},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":10}}}},"成":{"docs":{},"绩":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}},"评":{"docs":{},"测":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"占":{"docs":{},"比":{"docs":{},"与":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"一":{"docs":{},"致":{"docs":{},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"完":{"docs":{},"成":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"简":{"docs":{},"单":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"是":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"完":{"docs":{},"成":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"战":{"docs":{},"教":{"docs":{},"学":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"际":{"docs":{},"上":{"docs":{},"这":{"docs":{},"与":{"docs":{},"高":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"语":{"docs":{},"义":{"docs":{},"非":{"docs":{},"常":{"docs":{},"相":{"docs":{},"似":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"觉":{"docs":{},"得":{"docs":{},"一":{"docs":{},"个":{"docs":{},"与":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"语":{"docs":{},"义":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"没":{"docs":{},"差":{"docs":{},"别":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"有":{"docs":{},"点":{"docs":{},"多":{"docs":{},"余":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"设":{"docs":{},"计":{"docs":{},"和":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"分":{"docs":{},"配":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"算":{"docs":{},"法":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"3":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}},"docs":{}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"比":{"docs":{},"较":{"docs":{},"微":{"docs":{},"妙":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},":":{"docs":{},"当":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"得":{"docs":{},"不":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"时":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"选":{"docs":{},"择":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"这":{"docs":{},"里":{"docs":{},"是":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"的":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"个":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"或":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"权":{"docs":{},"重":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"代":{"docs":{},"码":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"8":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}}}}},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},":":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"请":{"docs":{},"写":{"docs":{},"出":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"如":{"docs":{},"果":{"docs":{},"还":{"docs":{},"有":{"docs":{},"其":{"docs":{},"他":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"则":{"docs":{},"以":{"docs":{},"从":{"docs":{},"右":{"docs":{},"向":{"docs":{},"左":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"压":{"docs":{},"栈":{"docs":{},",":{"docs":{},"第":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"是":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"(":{"docs":{},"又":{"docs":{},"名":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"认":{"docs":{},"为":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"行":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"非":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"指":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"可":{"docs":{},"以":{"docs":{},"期":{"docs":{},"望":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"仍":{"docs":{},"保":{"docs":{},"持":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"这":{"docs":{},"要":{"docs":{},"求":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"进":{"docs":{},"行":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"返":{"docs":{},"回":{"docs":{},"之":{"docs":{},"前":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"这":{"docs":{},"些":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},",":{"docs":{},"减":{"docs":{},"少":{"docs":{},"变":{"docs":{},"量":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"次":{"docs":{},"数":{"docs":{},"。":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"对":{"docs":{},"运":{"docs":{},"行":{"docs":{},"效":{"docs":{},"率":{"docs":{},"的":{"docs":{},"影":{"docs":{},"响":{"docs":{},"很":{"docs":{},"大":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"访":{"docs":{},"存":{"docs":{},"通":{"docs":{},"常":{"docs":{},"比":{"docs":{},"访":{"docs":{},"问":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"慢":{"docs":{},"很":{"docs":{},"多":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"的":{"docs":{},"回":{"docs":{},"答":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"但":{"docs":{},"禁":{"docs":{},"止":{"docs":{},"直":{"docs":{},"接":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}},"含":{"docs":{},"有":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{},"c":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"仅":{"docs":{},"对":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"整":{"docs":{},"数":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"做":{"docs":{},"要":{"docs":{},"求":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"为":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"分":{"docs":{},"配":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"新":{"docs":{},"测":{"docs":{},"例":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"之":{"docs":{},"前":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},",":{"docs":{},"测":{"docs":{},"量":{"docs":{},"并":{"docs":{},"统":{"docs":{},"计":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{},"改":{"docs":{},"进":{"docs":{},"后":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"效":{"docs":{},"率":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"显":{"docs":{},"著":{"docs":{},"提":{"docs":{},"升":{"docs":{},",":{"docs":{},"但":{"docs":{},"效":{"docs":{},"率":{"docs":{},"提":{"docs":{},"升":{"docs":{},"的":{"docs":{},"高":{"docs":{},"低":{"docs":{},"不":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"评":{"docs":{},"分":{"docs":{},"的":{"docs":{},"考":{"docs":{},"察":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"因":{"docs":{},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"一":{"docs":{},"对":{"docs":{},"点":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"数":{"docs":{},"组":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"前":{"docs":{},"几":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"编":{"docs":{},"号":{"docs":{},"分":{"docs":{},"配":{"docs":{},"给":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"先":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"存":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"相":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"是":{"docs":{},"否":{"docs":{},"加":{"docs":{},"入":{"docs":{},".":{"docs":{},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"量":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"新":{"docs":{},"增":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"将":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"存":{"docs":{},"入":{"docs":{},"该":{"docs":{},"标":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"等":{"docs":{},"号":{"docs":{},"右":{"docs":{},"边":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"docs":{},"边":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"顺":{"docs":{},"着":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},"找":{"docs":{},"到":{"docs":{},"所":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"新":{"docs":{},"加":{"docs":{},"入":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"继":{"docs":{},"续":{"docs":{},"顺":{"docs":{},"着":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},"找":{"docs":{},"到":{"docs":{},"所":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"条":{"docs":{},"i":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"物":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"大":{"docs":{},"部":{"docs":{},"分":{"docs":{},"算":{"docs":{},"术":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"一":{"docs":{},"对":{"docs":{},"一":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"这":{"docs":{},"没":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"难":{"docs":{},"度":{"docs":{},";":{"docs":{},"而":{"docs":{},"某":{"docs":{},"些":{"docs":{},"i":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"没":{"docs":{},"有":{"docs":{},"直":{"docs":{},"接":{"docs":{},"的":{"docs":{},"相":{"docs":{},"应":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"被":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"多":{"docs":{},"条":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"选":{"docs":{},"择":{"docs":{},"相":{"docs":{},"对":{"docs":{},"更":{"docs":{},"优":{"docs":{},"的":{"docs":{},"候":{"docs":{},"选":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"。":{"docs":{},"一":{"docs":{},"对":{"docs":{},"多":{"docs":{},"指":{"docs":{},"令":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"些":{"docs":{},"微":{"docs":{},"妙":{"docs":{},"之":{"docs":{},"处":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"可":{"docs":{},"能":{"docs":{},"引":{"docs":{},"入":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"有":{"docs":{},"潜":{"docs":{},"在":{"docs":{},"的":{"docs":{},"副":{"docs":{},"作":{"docs":{},"用":{"docs":{},"、":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"有":{"docs":{},"时":{"docs":{},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"视":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"整":{"docs":{},"体":{"docs":{},"是":{"docs":{},"更":{"docs":{},"合":{"docs":{},"理":{"docs":{},"的":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"地":{"docs":{},"选":{"docs":{},"择":{"docs":{},"将":{"docs":{},"一":{"docs":{},"条":{"docs":{},"“":{"docs":{},"指":{"docs":{},"令":{"docs":{},"”":{"docs":{},"彻":{"docs":{},"底":{"docs":{},"地":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"时":{"docs":{},"机":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"外":{"docs":{},"层":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},",":{"docs":{},"直":{"docs":{},"观":{"docs":{},"上":{"docs":{},"x":{"docs":{},"和":{"docs":{},"y":{"docs":{},"会":{"docs":{},"被":{"docs":{},"分":{"docs":{},"别":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"a":{"0":{"docs":{},"和":{"docs":{},"a":{"1":{"docs":{},";":{"docs":{},"而":{"docs":{},"中":{"docs":{},"间":{"docs":{},"再":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"时":{"docs":{},"却":{"docs":{},"又":{"docs":{},"要":{"docs":{},"求":{"docs":{},"y":{"docs":{},"在":{"docs":{},"a":{"0":{"docs":{},"且":{"docs":{},"x":{"docs":{},"在":{"docs":{},"a":{"1":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"种":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"免":{"docs":{},"不":{"docs":{},"了":{"docs":{},"一":{"docs":{},"番":{"docs":{},"折":{"docs":{},"腾":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"每":{"docs":{},"当":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"为":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"“":{"docs":{},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},"分":{"docs":{},"离":{"docs":{},"”":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"着":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"结":{"docs":{},"点":{"docs":{},"到":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}},"的":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"以":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"取":{"docs":{},"负":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"有":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},"虽":{"docs":{},"然":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}},"象":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"是":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"x":{"docs":{},"的":{"docs":{},"查":{"docs":{},"找":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"由":{"docs":{},"上":{"docs":{},"向":{"docs":{},"下":{"docs":{},"依":{"docs":{},"次":{"docs":{},"查":{"docs":{},"找":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"直":{"docs":{},"至":{"docs":{},"找":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"尤":{"docs":{},"为":{"docs":{},"重":{"docs":{},"要":{"docs":{},",":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"好":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"是":{"docs":{},"高":{"docs":{},"质":{"docs":{},"量":{"docs":{},"和":{"docs":{},"高":{"docs":{},"效":{"docs":{},"率":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"续":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"保":{"docs":{},"证":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"2":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}}},"传":{"docs":{},"播":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":10}},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"折":{"docs":{},"叠":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"的":{"docs":{},"在":{"docs":{},"于":{"docs":{},"发":{"docs":{},"掘":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"用":{"docs":{},"对":{"docs":{},"常":{"docs":{},"量":{"docs":{},"的":{"docs":{},"引":{"docs":{},"用":{"docs":{},"替":{"docs":{},"代":{"docs":{},"对":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"引":{"docs":{},"用":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"都":{"docs":{},"使":{"docs":{},"用":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}},"说":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"见":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"包":{"docs":{},"括":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"和":{"docs":{},"线":{"docs":{},"性":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"较":{"docs":{},"为":{"docs":{},"严":{"docs":{},"格":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"时":{"docs":{},"间":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"3":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"该":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},"在":{"docs":{},"于":{"docs":{},"能":{"docs":{},"够":{"docs":{},"顺":{"docs":{},"带":{"docs":{},"处":{"docs":{},"理":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"消":{"docs":{},"除":{"docs":{},"掉":{"docs":{},"无":{"docs":{},"用":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{},"这":{"docs":{},"使":{"docs":{},"得":{"docs":{},"你":{"docs":{},"前":{"docs":{},"面":{"docs":{},"做":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"时":{"docs":{},"可":{"docs":{},"以":{"docs":{},"轻":{"docs":{},"松":{"docs":{},"一":{"docs":{},"点":{"docs":{},"(":{"docs":{},"能":{"docs":{},"够":{"docs":{},"较":{"docs":{},"为":{"docs":{},"无":{"docs":{},"顾":{"docs":{},"虑":{"docs":{},"地":{"docs":{},"生":{"docs":{},"成":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"年":{"docs":{},"秋":{"docs":{},"季":{"docs":{},"学":{"docs":{},"期":{"docs":{},"《":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"》":{"docs":{},"课":{"docs":{},"程":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"贴":{"docs":{},"合":{"docs":{},"课":{"docs":{},"程":{"docs":{},"教":{"docs":{},"学":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"提":{"docs":{},"升":{"docs":{},"训":{"docs":{},"练":{"docs":{},"效":{"docs":{},"果":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"设":{"docs":{},"计":{"docs":{},"了":{"docs":{},"比":{"docs":{},"较":{"docs":{},"完":{"docs":{},"善":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"等":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"沿":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"变":{"docs":{},"化":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"体":{"docs":{},"现":{"docs":{},"在":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},"只":{"docs":{},"接":{"docs":{},"受":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}},"将":{"docs":{},"会":{"docs":{},"对":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"作":{"docs":{},"相":{"docs":{},"似":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"如":{"docs":{},"发":{"docs":{},"现":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"雷":{"docs":{},"同":{"docs":{},"的":{"docs":{},"情":{"docs":{},"形":{"docs":{},",":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"和":{"docs":{},"被":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"将":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{},"处":{"docs":{},"罚":{"docs":{},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"被":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"提":{"docs":{},"交":{"docs":{},"时":{"docs":{},"已":{"docs":{},"做":{"docs":{},"过":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"易":{"docs":{},"到":{"docs":{},"难":{"docs":{},"完":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"输":{"docs":{},"入":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"在":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"和":{"docs":{},"并":{"docs":{},"列":{"docs":{},"举":{"docs":{},"一":{"docs":{},"些":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"设":{"docs":{},"计":{"docs":{},"中":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"i":{"docs":{},"r":{"docs":{},"设":{"docs":{},"计":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"和":{"docs":{},"并":{"docs":{},"列":{"docs":{},"举":{"docs":{},"一":{"docs":{},"些":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"来":{"docs":{},"集":{"docs":{},"中":{"docs":{},"解":{"docs":{},"决":{"docs":{},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"了":{"docs":{},"任":{"docs":{},"何":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"中":{"docs":{},"检":{"docs":{},"索":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"有":{"docs":{},"其":{"docs":{},"他":{"docs":{},"人":{"docs":{},"提":{"docs":{},"问":{"docs":{},"过":{"docs":{},",":{"docs":{},"欢":{"docs":{},"迎":{"docs":{},"向":{"docs":{},"助":{"docs":{},"教":{"docs":{},"提":{"docs":{},"问":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"会":{"docs":{},"尽":{"docs":{},"快":{"docs":{},"回":{"docs":{},"复":{"docs":{},"的":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"预":{"docs":{},"先":{"docs":{},"编":{"docs":{},"译":{"docs":{},"好":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"只":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"框":{"docs":{},"架":{"docs":{},"现":{"docs":{},"在":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"里":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"处":{"docs":{},"理":{"docs":{},"悬":{"docs":{},"吊":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"里":{"docs":{},"在":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"中":{"docs":{},"对":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"简":{"docs":{},"单":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"了":{"docs":{},"解":{"docs":{},"一":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"知":{"docs":{},"识":{"docs":{},"。":{"docs":{},"除":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"确":{"docs":{},"定":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}},"先":{"docs":{},"引":{"docs":{},"入":{"docs":{},"下":{"docs":{},"面":{"docs":{},"四":{"docs":{},"种":{"docs":{},"针":{"docs":{},"对":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"集":{"docs":{},"合":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"定":{"docs":{},"义":{"docs":{},":":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"列":{"docs":{},"表":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"修":{"docs":{},"改":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"结":{"docs":{},"点":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"用":{"docs":{},"于":{"docs":{},"记":{"docs":{},"录":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},"设":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"好":{"docs":{},"了":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"针":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"只":{"docs":{},"是":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"目":{"docs":{},"的":{"docs":{},"是":{"docs":{},"给":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"致":{"docs":{},"的":{"docs":{},"印":{"docs":{},"象":{"docs":{},":":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"到":{"docs":{},"底":{"docs":{},"是":{"docs":{},"由":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"部":{"docs":{},"分":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"部":{"docs":{},"分":{"docs":{},"又":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"作":{"docs":{},"用":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"技":{"docs":{},"术":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"规":{"docs":{},"定":{"docs":{},"整":{"docs":{},"数":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"可":{"docs":{},"以":{"docs":{},"简":{"docs":{},"单":{"docs":{},"理":{"docs":{},"解":{"docs":{},"成":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"办":{"docs":{},"法":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"3":{"2":{"docs":{},"位":{"docs":{},"整":{"docs":{},"数":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"截":{"docs":{},"断":{"docs":{},"高":{"docs":{},"于":{"3":{"2":{"docs":{},"位":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"请":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"对":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"化":{"docs":{},"进":{"docs":{},"行":{"docs":{},"简":{"docs":{},"单":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"和":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"看":{"docs":{},"p":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"是":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"由":{"docs":{},"一":{"docs":{},"个":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"组":{"docs":{},"成":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"就":{"docs":{},"是":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"忽":{"docs":{},"略":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"缩":{"docs":{},"进":{"docs":{},"表":{"docs":{},"示":{"docs":{},"树":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},"知":{"docs":{},"道":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"里":{"docs":{},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},"的":{"docs":{},"树":{"docs":{},"状":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"最":{"docs":{},"典":{"docs":{},"型":{"docs":{},"的":{"docs":{},"就":{"docs":{},"是":{"docs":{},",":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"过":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"文":{"docs":{},"法":{"docs":{},"解":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"。":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"生":{"docs":{},"成":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"整":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"。":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"“":{"docs":{},"除":{"docs":{},"数":{"docs":{},"为":{"docs":{},"零":{"docs":{},"的":{"docs":{},"除":{"docs":{},"法":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"”":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"即":{"docs":{},"使":{"docs":{},"除":{"docs":{},"法":{"docs":{},"的":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"采":{"docs":{},"用":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"把":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"(":{"docs":{},"如":{"docs":{},":":{"2":{"0":{"2":{"4":{"docs":{},"、":{"1":{"docs":{},")":{"docs":{},"变":{"docs":{},"成":{"docs":{},"单":{"docs":{},"目":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"如":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"划":{"docs":{},"分":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"分":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"发":{"docs":{},"现":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},"加":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}},"对":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"条":{"docs":{},"件":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}}}},"的":{"docs":{},"是":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"语":{"docs":{},"法":{"docs":{},"改":{"docs":{},"动":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},":":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"函":{"docs":{},"数":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"即":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"以":{"docs":{},"只":{"docs":{},"有":{"docs":{},"声":{"docs":{},"明":{"docs":{},"没":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"评":{"docs":{},"测":{"docs":{},"性":{"docs":{},"能":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"读":{"docs":{},"入":{"docs":{},"数":{"docs":{},"据":{"docs":{},"和":{"docs":{},"打":{"docs":{},"印":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"会":{"docs":{},"把":{"docs":{},"你":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"一":{"docs":{},"个":{"docs":{},"外":{"docs":{},"部":{"docs":{},"库":{"docs":{},"进":{"docs":{},"行":{"docs":{},"链":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"语":{"docs":{},"法":{"docs":{},"写":{"docs":{},"法":{"docs":{},"可":{"docs":{},"能":{"docs":{},"比":{"docs":{},"较":{"docs":{},"繁":{"docs":{},"琐":{"docs":{},",":{"docs":{},"但":{"docs":{},"它":{"docs":{},"有":{"docs":{},"几":{"docs":{},"个":{"docs":{},"好":{"docs":{},"处":{"docs":{},":":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"已":{"docs":{},"经":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"额":{"docs":{},"外":{"docs":{},"定":{"docs":{},"义":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"了":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"按":{"docs":{},"照":{"docs":{},"本":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"确":{"docs":{},"实":{"docs":{},"只":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"我":{"docs":{},"们":{"docs":{},"期":{"docs":{},"望":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"首":{"docs":{},"先":{"docs":{},"来":{"docs":{},"看":{"docs":{},"本":{"docs":{},"节":{"docs":{},"指":{"docs":{},"导":{"docs":{},"用":{"docs":{},"例":{"docs":{},"所":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"人":{"docs":{},"为":{"docs":{},"规":{"docs":{},"定":{"docs":{},":":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}},"目":{"docs":{},"前":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},":":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}},"推":{"docs":{},"荐":{"docs":{},"大":{"docs":{},"家":{"docs":{},"按":{"docs":{},"照":{"docs":{},"以":{"docs":{},"下":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"前":{"docs":{},"中":{"docs":{},"端":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"中":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"很":{"docs":{},"多":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"比":{"docs":{},"较":{"docs":{},"熟":{"docs":{},"悉":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"着":{"docs":{},"重":{"docs":{},"关":{"docs":{},"注":{"docs":{},"后":{"docs":{},"端":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"暂":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"不":{"docs":{},"包":{"docs":{},"含":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}},"对":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},"不":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"要":{"docs":{},"求":{"docs":{},"或":{"docs":{},"限":{"docs":{},"定":{"docs":{},";":{"docs":{},"但":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"能":{"docs":{},"有":{"docs":{},"同":{"docs":{},"名":{"docs":{},"的":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"固":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"即":{"docs":{},"在":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"中":{"docs":{},",":{"docs":{},"其":{"docs":{},"长":{"docs":{},"度":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"正":{"docs":{},"整":{"docs":{},"数":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"换":{"docs":{},"一":{"docs":{},"种":{"docs":{},"角":{"docs":{},"度":{"docs":{},"去":{"docs":{},"思":{"docs":{},"考":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"什":{"docs":{},"么":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"?":{"docs":{},"当":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"同":{"docs":{},"时":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"时":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"分":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"一":{"docs":{},"对":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"相":{"docs":{},"干":{"docs":{},"的":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"说":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"继":{"docs":{},"承":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"为":{"docs":{},"所":{"docs":{},"有":{"docs":{},"指":{"docs":{},"令":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"类":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{},"令":{"docs":{},"牌":{"docs":{},"流":{"docs":{},"上":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"该":{"docs":{},"输":{"docs":{},"入":{"docs":{},"上":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},"来":{"docs":{},"组":{"docs":{},"织":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"思":{"docs":{},"考":{"docs":{},"一":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"完":{"docs":{},"整":{"docs":{},"描":{"docs":{},"述":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"?":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"要":{"docs":{},"这":{"docs":{},"样":{"docs":{},"做":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"注":{"docs":{},"意":{"docs":{},"到":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"上":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}},"令":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"集":{"docs":{},"文":{"docs":{},"档":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"其":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"所":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"思":{"docs":{},"路":{"docs":{},"是":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"简":{"docs":{},"洁":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"多":{"docs":{},"条":{"docs":{},"简":{"docs":{},"单":{"docs":{},"指":{"docs":{},"令":{"docs":{},"代":{"docs":{},"替":{"docs":{},",":{"docs":{},"如":{"docs":{},"相":{"docs":{},"等":{"docs":{},"、":{"docs":{},"大":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"与":{"docs":{},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"等":{"docs":{},"等":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"实":{"docs":{},"现":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"每":{"docs":{},"条":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},"比":{"docs":{},"较":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"每":{"docs":{},"条":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"上":{"docs":{},"述":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"操":{"docs":{},"作":{"docs":{},"码":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"(":{"docs":{},"最":{"docs":{},"多":{"3":{"docs":{},"个":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"除":{"docs":{},"外":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"严":{"docs":{},"格":{"docs":{},"的":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"反":{"docs":{},"而":{"docs":{},"会":{"docs":{},"使":{"docs":{},"得":{"docs":{},"函":{"docs":{},"数":{"docs":{},"一":{"docs":{},"节":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"为":{"docs":{},"复":{"docs":{},"杂":{"docs":{},")":{"docs":{},"构":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"为":{"docs":{},"复":{"docs":{},"杂":{"docs":{},")":{"docs":{},"构":{"docs":{},"成":{"docs":{},"。":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"标":{"docs":{},"签":{"docs":{},"(":{"docs":{},"可":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}},"不":{"docs":{},"过":{"docs":{},"为":{"docs":{},"了":{"docs":{},"实":{"docs":{},"现":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"仔":{"docs":{},"细":{"docs":{},"地":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"来":{"docs":{},"支":{"docs":{},"持":{"docs":{},"加":{"docs":{},"载":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"完":{"docs":{},"成":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"选":{"docs":{},"择":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"关":{"docs":{},"的":{"docs":{},"窥":{"docs":{},"孔":{"docs":{},"优":{"docs":{},"化":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"必":{"docs":{},"要":{"docs":{},"时":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"增":{"docs":{},"加":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"等":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"即":{"docs":{},"所":{"docs":{},"有":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"都":{"docs":{},"已":{"docs":{},"经":{"docs":{},"分":{"docs":{},"配":{"docs":{},"好":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},")":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"部":{"docs":{},"分":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"部":{"docs":{},"分":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"频":{"docs":{},"繁":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"内":{"docs":{},"存":{"docs":{},"将":{"docs":{},"导":{"docs":{},"致":{"docs":{},"严":{"docs":{},"重":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"由":{"docs":{},"此":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"插":{"docs":{},"入":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"只":{"docs":{},"要":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"一":{"docs":{},"定":{"docs":{},"要":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"合":{"docs":{},"(":{"docs":{},"说":{"docs":{},"出":{"docs":{},"两":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}},"语":{"docs":{},"法":{"docs":{},"是":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"顺":{"docs":{},"序":{"docs":{},"对":{"docs":{},"结":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"影":{"docs":{},"响":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"位":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"不":{"docs":{},"是":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"为":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"链":{"docs":{},"接":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"r":{"docs":{},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"w":{"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"在":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"加":{"docs":{},"上":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},"得":{"docs":{},"到":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},",":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"每":{"docs":{},"次":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"应":{"docs":{},"当":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"同":{"docs":{},"时":{"docs":{},"支":{"docs":{},"持":{"docs":{},"并":{"docs":{},"行":{"docs":{},"执":{"docs":{},"行":{"docs":{},"(":{"docs":{},"即":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"地":{"docs":{},"构":{"docs":{},"建":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}},"显":{"docs":{},"式":{"docs":{},"地":{"docs":{},"读":{"docs":{},"写":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"使":{"docs":{},"用":{"docs":{},"上":{"docs":{},"述":{"docs":{},"方":{"docs":{},"案":{"docs":{},"编":{"docs":{},"写":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"改":{"docs":{},"写":{"docs":{},",":{"docs":{},"以":{"docs":{},"保":{"docs":{},"证":{"docs":{},"程":{"docs":{},"序":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"指":{"docs":{},"令":{"docs":{},"后":{"docs":{},",":{"docs":{},"维":{"docs":{},"护":{"docs":{},"该":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"后":{"docs":{},"继":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"度":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"在":{"docs":{},"不":{"docs":{},"影":{"docs":{},"响":{"docs":{},"指":{"docs":{},"令":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},"调":{"docs":{},"整":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"目":{"docs":{},"的":{"docs":{},"之":{"docs":{},"一":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"现":{"docs":{},"代":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},"提":{"docs":{},"升":{"docs":{},"指":{"docs":{},"令":{"docs":{},"级":{"docs":{},"并":{"docs":{},"行":{"docs":{},"度":{"docs":{},"。":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"调":{"docs":{},"度":{"docs":{},"首":{"docs":{},"先":{"docs":{},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},"构":{"docs":{},"造":{"docs":{},"d":{"docs":{},"a":{"docs":{},"g":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"利":{"docs":{},"用":{"docs":{},"关":{"docs":{},"键":{"docs":{},"路":{"docs":{},"径":{"docs":{},"长":{"docs":{},"度":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"压":{"docs":{},"力":{"docs":{},"、":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"发":{"docs":{},"射":{"docs":{},"宽":{"docs":{},"度":{"docs":{},"等":{"docs":{},"因":{"docs":{},"素":{"docs":{},"结":{"docs":{},"合":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"功":{"docs":{},"能":{"docs":{},"单":{"docs":{},"元":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"模":{"docs":{},"型":{"docs":{},"依":{"docs":{},"次":{"docs":{},"决":{"docs":{},"定":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"料":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"每":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"w":{"docs":{},"/":{"docs":{},"c":{"docs":{},"/":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{},"它":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},"语":{"docs":{},"言":{"docs":{},"是":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"子":{"docs":{},"集":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"这":{"docs":{},"张":{"docs":{},"表":{"docs":{},"格":{"docs":{},"也":{"docs":{},"足":{"docs":{},"够":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"底":{"docs":{},",":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"顶":{"docs":{},",":{"docs":{},"f":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"栈":{"docs":{},"顶":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"父":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"时":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"间":{"docs":{},"安":{"docs":{},"排":{"docs":{},"及":{"docs":{},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{},"请":{"docs":{},"看":{"docs":{},"实":{"docs":{},"验":{"docs":{},"进":{"docs":{},"度":{"docs":{},"安":{"docs":{},"排":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"要":{"docs":{},"输":{"docs":{},"入":{"docs":{},"完":{"docs":{},"整":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"请":{"docs":{},"用":{"docs":{},"完":{"docs":{},"整":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"就":{"docs":{},"处":{"docs":{},"理":{"docs":{},"了":{"docs":{},"?":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"希":{"docs":{},"望":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"能":{"docs":{},"在":{"docs":{},"一":{"docs":{},"定":{"docs":{},"程":{"docs":{},"度":{"docs":{},"上":{"docs":{},"与":{"docs":{},"平":{"docs":{},"台":{"docs":{},"无":{"docs":{},"关":{"docs":{},"(":{"docs":{},"不":{"docs":{},"同":{"docs":{},"后":{"docs":{},"端":{"docs":{},"目":{"docs":{},"标":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"大":{"docs":{},"差":{"docs":{},"异":{"docs":{},")":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"能":{"docs":{},"力":{"docs":{},"能":{"docs":{},"简":{"docs":{},"化":{"docs":{},"整":{"docs":{},"体":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"其":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}},"与":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}},"或":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"应":{"docs":{},"终":{"docs":{},"止":{"docs":{},"执":{"docs":{},"行":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}},"从":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"查":{"docs":{},"找":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"机":{"docs":{},"制":{"docs":{},"来":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"遍":{"docs":{},"历":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"对":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"计":{"docs":{},"算":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"中":{"docs":{},"的":{"docs":{},"支":{"docs":{},"配":{"docs":{},"关":{"docs":{},"系":{"docs":{},"和":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"支":{"docs":{},"配":{"docs":{},"边":{"docs":{},"界":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"在":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"选":{"docs":{},"择":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"子":{"docs":{},"句":{"docs":{},";":{"docs":{},"当":{"docs":{},"控":{"docs":{},"制":{"docs":{},"条":{"docs":{},"件":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"求":{"docs":{},"得":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"求":{"docs":{},"得":{"docs":{},"的":{"docs":{},"值":{"docs":{},";":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"非":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"行":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"下":{"docs":{},"标":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"地":{"docs":{},"址":{"docs":{},"计":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"并":{"docs":{},"不":{"docs":{},"困":{"docs":{},"难":{"docs":{},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"能":{"docs":{},"比":{"docs":{},"较":{"docs":{},"繁":{"docs":{},"琐":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"现":{"docs":{},"时":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"快":{"docs":{},"速":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}},"是":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"很":{"docs":{},"像":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"与":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"根":{"docs":{},"据":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"其":{"docs":{},"声":{"docs":{},"明":{"docs":{},"发":{"docs":{},"生":{"docs":{},"在":{"docs":{},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"求":{"docs":{},"值":{"docs":{},"之":{"docs":{},"前":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"其":{"docs":{},"求":{"docs":{},"值":{"docs":{},"会":{"docs":{},"在":{"docs":{},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"求":{"docs":{},"值":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"b":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"a":{"docs":{},"[":{"docs":{},"b":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},"强":{"docs":{},"大":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"根":{"docs":{},"据":{"docs":{},"给":{"docs":{},"定":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"则":{"docs":{},"其":{"docs":{},"所":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"所":{"docs":{},"属":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"是":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"测":{"docs":{},"试":{"docs":{},"前":{"docs":{},"会":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"准":{"docs":{},"备":{"docs":{},"脚":{"docs":{},"本":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"安":{"docs":{},"装":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"(":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"想":{"docs":{},"添":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"或":{"docs":{},"者":{"docs":{},"修":{"docs":{},"改":{"docs":{},"编":{"docs":{},"译":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{},"此":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"某":{"docs":{},"个":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"否":{"docs":{},"成":{"docs":{},"功":{"docs":{},"安":{"docs":{},"装":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"正":{"docs":{},"确":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"知":{"docs":{},"道":{"docs":{},":":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}},"如":{"docs":{},"何":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{},"t":{"docs":{},"_":{"docs":{},"开":{"docs":{},"头":{"docs":{},"。":{"docs":{},"如":{"docs":{},"t":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{},"这":{"docs":{},"一":{"docs":{},"条":{"docs":{},"规":{"docs":{},"则":{"docs":{},"对":{"docs":{},"于":{"docs":{},"后":{"docs":{},"续":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}},",":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{},"意":{"docs":{},"思":{"docs":{},"就":{"docs":{},"是":{"docs":{},"你":{"docs":{},"想":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"处":{"docs":{},"理":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"全":{"docs":{},"部":{"docs":{},"默":{"docs":{},"认":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"docs":{},"结":{"docs":{},"合":{"docs":{},"的":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"1":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}},"docs":{}}}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"真":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"命":{"docs":{},"名":{"docs":{},"它":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"把":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"本":{"docs":{},"身":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"从":{"docs":{},"后":{"docs":{},"往":{"docs":{},"前":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"便":{"docs":{},"可":{"docs":{},"以":{"docs":{},"求":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"样":{"docs":{},"处":{"docs":{},"理":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"单":{"docs":{},"。":{"docs":{},"比":{"docs":{},"较":{"docs":{},"理":{"docs":{},"想":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"可":{"docs":{},"能":{"docs":{},"带":{"docs":{},"来":{"docs":{},"一":{"docs":{},"些":{"docs":{},"边":{"docs":{},"角":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"谨":{"docs":{},"慎":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"段":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},".":{"docs":{},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"传":{"docs":{},"参":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"申":{"docs":{},"请":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"需":{"docs":{},"要":{"docs":{},"计":{"docs":{},"算":{"docs":{},"数":{"docs":{},"组":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},",":{"docs":{},"不":{"docs":{},"用":{"docs":{},"担":{"docs":{},"心":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"稍":{"docs":{},"后":{"docs":{},"会":{"docs":{},"看":{"docs":{},"到":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"对":{"docs":{},"大":{"docs":{},"小":{"docs":{},"写":{"docs":{},"敏":{"docs":{},"感":{"docs":{},"的":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"次":{"docs":{},"触":{"docs":{},"发":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},",":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"将":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"改":{"docs":{},"为":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"将":{"docs":{},"右":{"docs":{},"边":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"值":{"docs":{},"存":{"docs":{},"入":{"docs":{},"左":{"docs":{},"边":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"左":{"docs":{},"边":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"终":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"工":{"docs":{},"具":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"没":{"docs":{},"法":{"docs":{},"做":{"docs":{},"到":{"docs":{},"点":{"docs":{},"一":{"docs":{},"下":{"docs":{},"就":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"判":{"docs":{},"断":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"某":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"其":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"以":{"docs":{},"上":{"docs":{},"的":{"docs":{},"这":{"docs":{},"些":{"docs":{},"“":{"docs":{},"指":{"docs":{},"令":{"docs":{},"”":{"docs":{},"展":{"docs":{},"开":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"可":{"docs":{},"以":{"docs":{},"保":{"docs":{},"守":{"docs":{},"地":{"docs":{},"展":{"docs":{},"开":{"docs":{},"为":{"docs":{},"以":{"docs":{},"下":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"学":{"docs":{},"期":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"清":{"docs":{},"华":{"docs":{},"大":{"docs":{},"学":{"docs":{},"代":{"docs":{},"码":{"docs":{},"托":{"docs":{},"管":{"docs":{},"服":{"docs":{},"务":{"docs":{},"(":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{},")":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"多":{"docs":{},"次":{"docs":{},"“":{"docs":{},"思":{"docs":{},"考":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"一":{"docs":{},"共":{"docs":{},"设":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"地":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"步":{"docs":{},"骤":{"docs":{},"主":{"docs":{},"要":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"为":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"和":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"中":{"docs":{},"其":{"docs":{},"他":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"和":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{},"取":{"docs":{},"负":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"实":{"docs":{},"现":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"和":{"docs":{},"按":{"docs":{},"位":{"docs":{},"非":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"能":{"docs":{},"够":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"快":{"docs":{},"速":{"docs":{},"上":{"docs":{},"手":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"加":{"docs":{},"法":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"二":{"docs":{},"元":{"docs":{},"加":{"docs":{},"法":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"实":{"docs":{},"现":{"docs":{},"其":{"docs":{},"他":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"实":{"docs":{},"现":{"docs":{},"其":{"docs":{},"他":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"无":{"docs":{},"须":{"docs":{},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"没":{"docs":{},"有":{"docs":{},"特":{"docs":{},"别":{"docs":{},"需":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"增":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"调":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"但":{"docs":{},"要":{"docs":{},"求":{"docs":{},"声":{"docs":{},"明":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},")":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},"维":{"docs":{},"护":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"引":{"docs":{},"入":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}},"节":{"docs":{},"指":{"docs":{},"导":{"docs":{},"用":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"就":{"docs":{},"是":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"后":{"docs":{},"面":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"论":{"docs":{},"文":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}},"章":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{},"几":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"如":{"docs":{},"何":{"docs":{},"做":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"将":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{},",":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"学":{"docs":{},"习":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"仅":{"docs":{},"供":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"自":{"docs":{},"己":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"和":{"docs":{},"i":{"docs":{},"r":{"docs":{},"进":{"docs":{},"行":{"docs":{},"调":{"docs":{},"整":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"7":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"会":{"docs":{},"先":{"docs":{},"对":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"再":{"docs":{},"根":{"docs":{},"据":{"docs":{},"其":{"docs":{},"值":{"docs":{},"选":{"docs":{},"择":{"docs":{},"计":{"docs":{},"算":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"或":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"。":{"docs":{},"当":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}},"边":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"。":{"docs":{},"这":{"docs":{},"时":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"点":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"机":{"docs":{},"选":{"docs":{},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"其":{"docs":{},"他":{"docs":{},"信":{"docs":{},"息":{"docs":{},"来":{"docs":{},"优":{"docs":{},"化":{"docs":{},"你":{"docs":{},"的":{"docs":{},"选":{"docs":{},"择":{"docs":{},")":{"docs":{},",":{"docs":{},"把":{"docs":{},"它":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"来":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"图":{"docs":{},"中":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"重":{"docs":{},"复":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"标":{"docs":{},"记":{"docs":{},"为":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},",":{"docs":{},"把":{"docs":{},"它":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"来":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"图":{"docs":{},"中":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{},"重":{"docs":{},"复":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"直":{"docs":{},"到":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"少":{"docs":{},"于":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"任":{"docs":{},"意":{"docs":{},"两":{"docs":{},"个":{"docs":{},"有":{"docs":{},"边":{"docs":{},"直":{"docs":{},"接":{"docs":{},"相":{"docs":{},"连":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"总":{"docs":{},"能":{"docs":{},"为":{"docs":{},"它":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"使":{"docs":{},"之":{"docs":{},"不":{"docs":{},"和":{"docs":{},"相":{"docs":{},"邻":{"docs":{},"的":{"docs":{},"最":{"docs":{},"多":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"分":{"docs":{},"支":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"手":{"docs":{},"动":{"docs":{},"更":{"docs":{},"新":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"判":{"docs":{},"断":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"结":{"docs":{},"点":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"说":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"点":{"docs":{},"其":{"docs":{},"实":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"已":{"docs":{},"经":{"docs":{},"被":{"docs":{},"语":{"docs":{},"法":{"docs":{},"保":{"docs":{},"证":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"其":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"用":{"docs":{},"标":{"docs":{},"签":{"docs":{},",":{"docs":{},"以":{"docs":{},"此":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"标":{"docs":{},"签":{"docs":{},"区":{"docs":{},"分":{"docs":{},"开":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"管":{"docs":{},"理":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"当":{"docs":{},"处":{"docs":{},"理":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"如":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},")":{"docs":{},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{},"新":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"储":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"或":{"docs":{},"者":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"编":{"docs":{},"号":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"记":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"当":{"docs":{},"然":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"要":{"docs":{},"求":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"docs":{},"式":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"报":{"docs":{},"告":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"报":{"docs":{},"告":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"步":{"docs":{},"骤":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"的":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"出":{"docs":{},"度":{"docs":{},"都":{"docs":{},"是":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}},"一":{"docs":{},"条":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"(":{"docs":{},"定":{"docs":{},"义":{"docs":{},")":{"docs":{},"指":{"docs":{},"定":{"docs":{},"了":{"docs":{},"对":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"的":{"docs":{},"解":{"docs":{},"释":{"docs":{},"和":{"docs":{},"属":{"docs":{},"性":{"docs":{},"。":{"docs":{},"当":{"docs":{},"变":{"docs":{},"量":{"docs":{},"被":{"docs":{},"定":{"docs":{},"义":{"docs":{},"时":{"docs":{},",":{"docs":{},"应":{"docs":{},"当":{"docs":{},"有":{"docs":{},"一":{"docs":{},"块":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"所":{"docs":{},"保":{"docs":{},"留":{"docs":{},"。":{"docs":{},"当":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"若":{"docs":{},"与":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"作":{"docs":{},"为":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"时":{"docs":{},",":{"docs":{},"其":{"docs":{},"就":{"docs":{},"应":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"进":{"docs":{},"而":{"docs":{},"深":{"docs":{},"入":{"docs":{},"理":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"和":{"docs":{},"相":{"docs":{},"关":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"具":{"docs":{},"备":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"技":{"docs":{},"术":{"docs":{},"开":{"docs":{},"发":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"解":{"docs":{},"决":{"docs":{},"编":{"docs":{},"译":{"docs":{},"技":{"docs":{},"术":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"面":{"docs":{},"依":{"docs":{},"次":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"上":{"docs":{},"述":{"docs":{},"编":{"docs":{},"译":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"文":{"docs":{},"档":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"其":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"选":{"docs":{},"择":{"docs":{},"在":{"docs":{},"这":{"docs":{},"次":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"退":{"docs":{},"出":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"退":{"docs":{},"出":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"第":{"docs":{},"八":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"3":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"将":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"扩":{"docs":{},"大":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"变":{"docs":{},"成":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},"里":{"docs":{},"面":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"般":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"大":{"docs":{},"的":{"docs":{},"差":{"docs":{},"别":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"直":{"docs":{},"接":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"困":{"docs":{},"难":{"docs":{},"的":{"docs":{},"。":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"所":{"docs":{},"采":{"docs":{},"取":{"docs":{},"的":{"docs":{},"做":{"docs":{},"法":{"docs":{},",":{"docs":{},"是":{"docs":{},"首":{"docs":{},"先":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"一":{"docs":{},"种":{"docs":{},"相":{"docs":{},"对":{"docs":{},"接":{"docs":{},"近":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"从":{"docs":{},"这":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},"的":{"docs":{},"所":{"docs":{},"带":{"docs":{},"来":{"docs":{},"的":{"docs":{},"优":{"docs":{},"势":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"有":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"对":{"docs":{},"应":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"的":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"标":{"docs":{},"签":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"课":{"docs":{},"上":{"docs":{},"应":{"docs":{},"该":{"docs":{},"讲":{"docs":{},"过":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"中":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}},"的":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"中":{"docs":{},"看":{"docs":{},"到":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"你":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"用":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"起":{"docs":{},"走":{"docs":{},"过":{"docs":{},"它":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},"知":{"docs":{},"识":{"docs":{},"都":{"docs":{},"比":{"docs":{},"较":{"docs":{},"初":{"docs":{},"级":{"docs":{},",":{"docs":{},"随":{"docs":{},"着":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"深":{"docs":{},"入":{"docs":{},",":{"docs":{},"将":{"docs":{},"会":{"docs":{},"循":{"docs":{},"序":{"docs":{},"渐":{"docs":{},"进":{"docs":{},"地":{"docs":{},"引":{"docs":{},"入":{"docs":{},"各":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"文":{"docs":{},"档":{"docs":{},"对":{"docs":{},"相":{"docs":{},"关":{"docs":{},"技":{"docs":{},"术":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"实":{"docs":{},"现":{"docs":{},"相":{"docs":{},"关":{"docs":{},"编":{"docs":{},"译":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"实":{"docs":{},"验":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"之":{"docs":{},"间":{"docs":{},"相":{"docs":{},"互":{"docs":{},"学":{"docs":{},"习":{"docs":{},"和":{"docs":{},"指":{"docs":{},"导":{"docs":{},"是":{"docs":{},"提":{"docs":{},"倡":{"docs":{},"的":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"更":{"docs":{},"新":{"docs":{},",":{"docs":{},"在":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"之":{"docs":{},"后":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"主":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},")":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"时":{"docs":{},"刻":{"docs":{},"只":{"docs":{},"能":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"为":{"docs":{},"了":{"docs":{},"把":{"docs":{},"若":{"docs":{},"干":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"塞":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"各":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"别":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"以":{"docs":{},"后":{"docs":{},"不":{"docs":{},"会":{"docs":{},"再":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"(":{"docs":{},"以":{"docs":{},"便":{"docs":{},"腾":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"占":{"docs":{},"用":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"给":{"docs":{},"别":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"只":{"docs":{},"含":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"其":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"里":{"docs":{},"所":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"都":{"docs":{},"未":{"docs":{},"在":{"docs":{},"该":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"经":{"docs":{},"过":{"docs":{},"定":{"docs":{},"值":{"docs":{},",":{"docs":{},"其":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"和":{"docs":{},"i":{"docs":{},"r":{"docs":{},"设":{"docs":{},"计":{"docs":{},"不":{"docs":{},"尽":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"本":{"docs":{},"部":{"docs":{},"分":{"docs":{},"仅":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"些":{"docs":{},"重":{"docs":{},"点":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"思":{"docs":{},"路":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"示":{"docs":{},"例":{"docs":{},",":{"docs":{},"结":{"docs":{},"合":{"docs":{},"小":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"食":{"docs":{},"用":{"docs":{},"效":{"docs":{},"果":{"docs":{},"更":{"docs":{},"佳":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"没":{"docs":{},"有":{"docs":{},"新":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"除":{"docs":{},"非":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"应":{"docs":{},"该":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"可":{"docs":{},"以":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}},"体":{"docs":{},"的":{"docs":{},"存":{"docs":{},"在":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"多":{"docs":{},"次":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"上":{"docs":{},"述":{"docs":{},"写":{"docs":{},"法":{"docs":{},"并":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"的":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"里":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"无":{"docs":{},"法":{"docs":{},"像":{"docs":{},"我":{"docs":{},"们":{"docs":{},"之":{"docs":{},"前":{"docs":{},"接":{"docs":{},"触":{"docs":{},"到":{"docs":{},"的":{"docs":{},"常":{"docs":{},"规":{"docs":{},"指":{"docs":{},"令":{"docs":{},"一":{"docs":{},"样":{"docs":{},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"实":{"docs":{},"际":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"必":{"docs":{},"须":{"docs":{},"生":{"docs":{},"成":{"docs":{},"额":{"docs":{},"外":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"保":{"docs":{},"存":{"docs":{},"、":{"docs":{},"参":{"docs":{},"数":{"docs":{},"传":{"docs":{},"递":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"以":{"docs":{},"符":{"docs":{},"合":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"操":{"docs":{},"作":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"周":{"docs":{},"围":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"之":{"docs":{},"为":{"docs":{},"“":{"docs":{},"(":{"docs":{},"生":{"docs":{},"成":{"docs":{},")":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"或":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"可":{"docs":{},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"短":{"docs":{},"路":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"思":{"docs":{},"考":{"docs":{},"如":{"docs":{},"何":{"docs":{},"新":{"docs":{},"增":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"进":{"docs":{},"行":{"docs":{},"学":{"docs":{},"习":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},",":{"docs":{},"上":{"docs":{},"述":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"了":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{},"满":{"docs":{},"足":{"docs":{},"了":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"可":{"docs":{},"以":{"docs":{},"改":{"docs":{},"写":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"的":{"3":{"2":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"有":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.02304147465437788},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"子":{"docs":{},"集":{"docs":{},",":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"了":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"等":{"docs":{},"预":{"docs":{},"处":{"docs":{},"理":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"多":{"docs":{},"文":{"docs":{},"件":{"docs":{},"编":{"docs":{},"译":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"/":{"docs":{},"指":{"docs":{},"针":{"docs":{},"等":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"有":{"docs":{},"额":{"docs":{},"外":{"docs":{},"扣":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"现":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"帐":{"docs":{},"号":{"docs":{},"名":{"docs":{},"后":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"会":{"docs":{},"给":{"docs":{},"每":{"docs":{},"个":{"docs":{},"人":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"私":{"docs":{},"有":{"docs":{},"的":{"docs":{},"仓":{"docs":{},"库":{"docs":{},",":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"绩":{"docs":{},"并":{"docs":{},"替":{"docs":{},"代":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{},"对":{"docs":{},"应":{"docs":{},"权":{"docs":{},"重":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"完":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"对":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}},"自":{"docs":{},"动":{"docs":{},"化":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"都":{"docs":{},"将":{"docs":{},"以":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"组":{"docs":{},"织":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}},"法":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"今":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"就":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"前":{"docs":{},"端":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"。":{"docs":{},"参":{"docs":{},"加":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"可":{"docs":{},"以":{"docs":{},"替":{"docs":{},"代":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"法":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"截":{"docs":{},"止":{"docs":{},"时":{"docs":{},"间":{"docs":{},";":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},";":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"候":{"docs":{},"选":{"docs":{},"择":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"f":{"docs":{},"t":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"对":{"docs":{},"悬":{"docs":{},"挂":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"进":{"docs":{},"行":{"docs":{},"就":{"docs":{},"近":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"释":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"提":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"提":{"docs":{},"示":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"不":{"docs":{},"可":{"docs":{},"达":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"无":{"docs":{},"须":{"docs":{},"为":{"docs":{},"它":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":3.333333333333333}},"和":{"docs":{},"运":{"docs":{},"行":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"总":{"docs":{},"结":{"docs":{},"了":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},",":{"docs":{},"支":{"docs":{},"持":{"docs":{},"基":{"docs":{},"于":{"docs":{},"属":{"docs":{},"性":{"docs":{},"文":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"制":{"docs":{},"导":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"计":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"对":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"个":{"docs":{},"纯":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"源":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},",":{"docs":{},"附":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}},"法":{"docs":{},",":{"docs":{},"了":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"自":{"docs":{},"动":{"docs":{},"构":{"docs":{},"造":{"docs":{},"工":{"docs":{},"具":{"docs":{},"的":{"docs":{},"特":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"结":{"docs":{},"合":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"理":{"docs":{},"解":{"docs":{},"正":{"docs":{},"规":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"、":{"docs":{},"自":{"docs":{},"动":{"docs":{},"机":{"docs":{},"、":{"docs":{},"l":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"容":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"上":{"docs":{},"面":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"简":{"docs":{},"化":{"docs":{},"版":{"docs":{},"本":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"细":{"docs":{},"微":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"码":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}}}}}}}},"那":{"docs":{},"个":{"docs":{},"值":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"请":{"docs":{},"保":{"docs":{},"证":{"docs":{},"你":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"性":{"docs":{},",":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},"会":{"docs":{},"在":{"docs":{},"软":{"docs":{},"件":{"docs":{},"工":{"docs":{},"程":{"docs":{},"课":{"docs":{},"上":{"docs":{},"讲":{"docs":{},"述":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"也":{"docs":{},"自":{"docs":{},"行":{"docs":{},"查":{"docs":{},"阅":{"docs":{},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"料":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"里":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"以":{"docs":{},"及":{"docs":{},"附":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"为":{"docs":{},"其":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"子":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"以":{"docs":{},"下":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"在":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"主":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"同":{"docs":{},"时":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"子":{"docs":{},"模":{"docs":{},"块":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"会":{"docs":{},"详":{"docs":{},"细":{"docs":{},"梳":{"docs":{},"理":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"当":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"某":{"docs":{},"部":{"docs":{},"分":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"(":{"docs":{},"如":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},")":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"的":{"docs":{},"讲":{"docs":{},"解":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"形":{"docs":{},"式":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"k":{"docs":{},"表":{"docs":{},"示":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"编":{"docs":{},"号":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"由":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"无":{"docs":{},"需":{"docs":{},"关":{"docs":{},"心":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"定":{"docs":{},"为":{"docs":{},"存":{"docs":{},"放":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{},"返":{"docs":{},"回":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"则":{"docs":{},"是":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"额":{"docs":{},"外":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"结":{"docs":{},"合":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"来":{"docs":{},"快":{"docs":{},"速":{"docs":{},"上":{"docs":{},"手":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"入":{"docs":{},"门":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"对":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"次":{"docs":{},"遍":{"docs":{},"历":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"某":{"docs":{},"种":{"docs":{},"检":{"docs":{},"查":{"docs":{},"或":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"称":{"docs":{},"为":{"docs":{},"遍":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"想":{"docs":{},"到":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"现":{"docs":{},"代":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"是":{"docs":{},"由":{"docs":{},"很":{"docs":{},"多":{"docs":{},"遍":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"如":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"都":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"经":{"docs":{},"过":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"去":{"docs":{},"看":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"与":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"注":{"docs":{},"释":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"了":{"docs":{},"解":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"会":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"docs":{}}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"(":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{},"《":{"docs":{},"高":{"docs":{},"级":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"设":{"docs":{},"计":{"docs":{},"与":{"docs":{},"实":{"docs":{},"现":{"docs":{},"》":{"docs":{},"(":{"docs":{},"鲸":{"docs":{},"书":{"docs":{},")":{"docs":{},")":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"记":{"docs":{},"号":{"docs":{},":":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"图":{"docs":{},"标":{"docs":{},",":{"docs":{},"代":{"docs":{},"表":{"docs":{},"当":{"docs":{},"前":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"或":{"docs":{},"者":{"docs":{},"在":{"docs":{},"网":{"docs":{},"页":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"选":{"docs":{},"择":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"从":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},"程":{"docs":{},"序":{"docs":{},"是":{"docs":{},"有":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"的":{"docs":{},"。":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}},"左":{"docs":{},"侧":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"画":{"docs":{},"圈":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"左":{"docs":{},"值":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}},"边":{"docs":{},"只":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"再":{"docs":{},"要":{"docs":{},"求":{"docs":{},"其":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"已":{"docs":{},"经":{"docs":{},"声":{"docs":{},"明":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"方":{"docs":{},"式":{"docs":{},"更":{"docs":{},"符":{"docs":{},"合":{"docs":{},"你":{"docs":{},"的":{"docs":{},"直":{"docs":{},"觉":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"点":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"进":{"docs":{},"行":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"将":{"docs":{},"结":{"docs":{},"果":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"该":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}},"是":{"docs":{},"其":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"反":{"docs":{},"码":{"docs":{},"(":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"结":{"docs":{},"果":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"位":{"docs":{},"是":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"反":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"乘":{"docs":{},"积":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"和":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"减":{"docs":{},"去":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{},"差":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}},"除":{"docs":{},"以":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{},"余":{"docs":{},"数":{"docs":{},"。":{"docs":{},"在":{"docs":{},"两":{"docs":{},"种":{"docs":{},"操":{"docs":{},"作":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"为":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}},"商":{"docs":{},"的":{"docs":{},"整":{"docs":{},"数":{"docs":{},"部":{"docs":{},"分":{"docs":{},"(":{"docs":{},"即":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"“":{"docs":{},"向":{"docs":{},"零":{"docs":{},"取":{"docs":{},"整":{"docs":{},"”":{"docs":{},")":{"docs":{},",":{"docs":{},"二":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"是":{"docs":{},"未":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"(":{"docs":{},"待":{"docs":{},"我":{"docs":{},"们":{"docs":{},"加":{"docs":{},"上":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},"才":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"真":{"docs":{},"正":{"docs":{},"切":{"docs":{},"实":{"docs":{},"的":{"docs":{},"影":{"docs":{},"响":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"使":{"docs":{},"用":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"减":{"docs":{},"去":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"加":{"docs":{},"上":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"存":{"docs":{},"储":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"去":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"都":{"docs":{},"指":{"docs":{},"向":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"赋":{"docs":{},"给":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"栈":{"docs":{},"中":{"docs":{},",":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"写":{"docs":{},"法":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"为":{"0":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"docs":{},"真":{"docs":{},"(":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"0":{"docs":{},")":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"应":{"docs":{},"当":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"docs":{}}}}}}},"作":{"docs":{},"为":{"docs":{},"参":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"含":{"docs":{},"义":{"docs":{},"与":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"改":{"docs":{},"动":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"并":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"它":{"docs":{},"的":{"docs":{},"布":{"docs":{},"局":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}},"“":{"docs":{},"替":{"docs":{},"身":{"docs":{},"”":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"当":{"docs":{},"作":{"docs":{},"“":{"docs":{},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"使":{"docs":{},"用":{"docs":{},"”":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"这":{"docs":{},"并":{"docs":{},"不":{"docs":{},"产":{"docs":{},"生":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"由":{"docs":{},"于":{"docs":{},"本":{"docs":{},"节":{"docs":{},"还":{"docs":{},"无":{"docs":{},"需":{"docs":{},"支":{"docs":{},"持":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"不":{"docs":{},"用":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"这":{"docs":{},"一":{"docs":{},"点":{"docs":{},",":{"docs":{},"只":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"维":{"docs":{},"护":{"docs":{},"层":{"docs":{},"次":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"了":{"docs":{},"它":{"docs":{},"的":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}},"底":{"docs":{},"层":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"新":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{},",":{"docs":{},"并":{"docs":{},"按":{"docs":{},"照":{"docs":{},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},":":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"外":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"其":{"docs":{},"他":{"docs":{},"文":{"docs":{},"件":{"docs":{},"以":{"docs":{},"适":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"看":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"求":{"docs":{},"值":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"每":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"知":{"docs":{},"道":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"特":{"docs":{},"别":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"建":{"docs":{},"议":{"docs":{},"的":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"式":{"docs":{},"为":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"根":{"docs":{},"据":{"docs":{},"地":{"docs":{},"址":{"docs":{},"来":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"定":{"docs":{},"义":{"docs":{},"两":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"值":{"docs":{},"的":{"docs":{},"加":{"docs":{},"载":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"直":{"docs":{},"接":{"docs":{},"给":{"docs":{},"出":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"方":{"docs":{},"式":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"和":{"docs":{},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"论":{"docs":{},"文":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}},"中":{"docs":{},",":{"docs":{},"提":{"docs":{},"到":{"docs":{},"了":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{},"即":{"docs":{},"对":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"它":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"具":{"docs":{},"有":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"以":{"docs":{},"后":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"它":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"看":{"docs":{},"上":{"docs":{},"述":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"发":{"docs":{},"现":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"点":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"通":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"情":{"docs":{},"况":{"docs":{},"评":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"合":{"docs":{},"并":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"吗":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}}}}},"颜":{"docs":{},"色":{"docs":{},"和":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"得":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"简":{"docs":{},"易":{"docs":{},"、":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"分":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{},"现":{"docs":{},"有":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"重":{"docs":{},"构":{"docs":{},"实":{"docs":{},"现":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},"反":{"docs":{},"而":{"docs":{},"在":{"docs":{},"一":{"docs":{},"定":{"docs":{},"程":{"docs":{},"度":{"docs":{},"上":{"docs":{},"限":{"docs":{},"制":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"有":{"docs":{},"一":{"docs":{},"点":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{},"编":{"docs":{},"译":{"docs":{},"链":{"docs":{},"接":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"整":{"docs":{},"流":{"docs":{},"程":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"最":{"docs":{},"小":{"docs":{},"版":{"docs":{},"本":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"节":{"docs":{},"点":{"docs":{},"通":{"docs":{},"常":{"docs":{},"只":{"docs":{},"包":{"docs":{},"含":{"docs":{},"与":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"去":{"docs":{},"除":{"docs":{},"了":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"测":{"docs":{},"例":{"docs":{},"并":{"docs":{},"报":{"docs":{},"告":{"docs":{},"编":{"docs":{},"译":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"包":{"docs":{},"括":{"docs":{},"符":{"docs":{},"号":{"docs":{},"解":{"docs":{},"析":{"docs":{},"(":{"docs":{},"名":{"docs":{},"称":{"docs":{},"绑":{"docs":{},"定":{"docs":{},")":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"以":{"docs":{},"保":{"docs":{},"证":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"等":{"docs":{},"符":{"docs":{},"号":{"docs":{},"被":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"定":{"docs":{},"义":{"docs":{},"、":{"docs":{},"引":{"docs":{},"用":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"之":{"docs":{},"上":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"是":{"docs":{},"不":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}},"组":{"docs":{},"合":{"docs":{},"。":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"针":{"docs":{},"对":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"生":{"docs":{},"成":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},",":{"docs":{},"且":{"docs":{},"避":{"docs":{},"免":{"docs":{},"了":{"docs":{},"繁":{"docs":{},"琐":{"docs":{},"地":{"docs":{},"构":{"docs":{},"造":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"因":{"docs":{},"为":{"docs":{},"其":{"docs":{},"中":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"阶":{"docs":{},"乘":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"博":{"docs":{},"文":{"docs":{},",":{"docs":{},"其":{"docs":{},"与":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"源":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"信":{"docs":{},"息":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"的":{"docs":{},"解":{"docs":{},"释":{"docs":{},"和":{"docs":{},"详":{"docs":{},"细":{"docs":{},"说":{"docs":{},"明":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}}}}}}}}}}}},"比":{"docs":{},"于":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"同":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}},"即":{"docs":{},"“":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}},"从":{"docs":{},"而":{"docs":{},"意":{"docs":{},"外":{"docs":{},"地":{"docs":{},"和":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"导":{"docs":{},"致":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"各":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"干":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"硬":{"docs":{},"件":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"随":{"docs":{},"着":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"一":{"docs":{},"步":{"docs":{},"步":{"docs":{},"推":{"docs":{},"进":{"docs":{},",":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"译":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"里":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"下":{"docs":{},"面":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"统":{"docs":{},"一":{"docs":{},"用":{"docs":{},"一":{"docs":{},"种":{"docs":{},"具":{"docs":{},"有":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"来":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"使":{"docs":{},"用":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"好":{"docs":{},"处":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"是":{"docs":{},"无":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"说":{"docs":{},"它":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"3":{"2":{"docs":{},"位":{"docs":{},"(":{"4":{"docs":{},"字":{"docs":{},"节":{"docs":{},")":{"docs":{},"整":{"docs":{},"数":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"指":{"docs":{},"令":{"docs":{},"构":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"报":{"docs":{},"错":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"所":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"并":{"docs":{},"非":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"细":{"docs":{},"节":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"只":{"docs":{},"表":{"docs":{},"示":{"docs":{},"其":{"docs":{},"树":{"docs":{},"形":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"点":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"生":{"docs":{},"成":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"只":{"docs":{},"能":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"现":{"docs":{},"在":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"允":{"docs":{},"许":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"作":{"docs":{},"为":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"起":{"docs":{},"始":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},",":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"代":{"docs":{},"码":{"docs":{},"贴":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"启":{"docs":{},"用":{"docs":{},"优":{"docs":{},"化":{"docs":{},"选":{"docs":{},"项":{"docs":{},"编":{"docs":{},"译":{"docs":{},"时":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"产":{"docs":{},"生":{"docs":{},"意":{"docs":{},"料":{"docs":{},"之":{"docs":{},"外":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"分":{"docs":{},"支":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"开":{"docs":{},"始":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"了":{"docs":{},"。":{"docs":{},"在":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"入":{"docs":{},"口":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"解":{"docs":{},"析":{"docs":{},"为":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{},"对":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}}}}}},"种":{"docs":{},"(":{"docs":{},"即":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"中":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{},"第":{"docs":{},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"六":{"docs":{},"(":{"1":{"0":{"docs":{},".":{"1":{"9":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"环":{"docs":{},"境":{"docs":{},"准":{"docs":{},"备":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"三":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"9":{"docs":{},".":{"2":{"9":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{},"第":{"docs":{},"十":{"docs":{},"二":{"docs":{},"周":{"docs":{},"周":{"docs":{},"六":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"2":{"3":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"方":{"docs":{},"库":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"八":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"3":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"0":{"docs":{},".":{"2":{"0":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}},"十":{"docs":{},"五":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"2":{"2":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"2":{"9":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"1":{"7":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}},"四":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"1":{"5":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}},"四":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"0":{"docs":{},".":{"6":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},"(":{"docs":{},"期":{"docs":{},"末":{"docs":{},"检":{"docs":{},"查":{"docs":{},")":{"docs":{},":":{"docs":{},"第":{"docs":{},"十":{"docs":{},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"末":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"2":{"9":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"二":{"docs":{},"种":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},"(":{"docs":{},"中":{"docs":{},"期":{"docs":{},"检":{"docs":{},"查":{"docs":{},")":{"docs":{},":":{"docs":{},"第":{"docs":{},"八":{"docs":{},"周":{"docs":{},"周":{"docs":{},"六":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"2":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"编":{"docs":{},"写":{"docs":{},"与":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"简":{"docs":{},"要":{"docs":{},"叙":{"docs":{},"述":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"说":{"docs":{},",":{"docs":{},"狭":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"成":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"把":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"给":{"docs":{},"编":{"docs":{},"码":{"docs":{},"到":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"链":{"docs":{},"接":{"docs":{},"器":{"docs":{},"变":{"docs":{},"成":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"由":{"docs":{},"加":{"docs":{},"载":{"docs":{},"器":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"织":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"各":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"任":{"docs":{},"意":{"docs":{},"两":{"docs":{},"个":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},"实":{"docs":{},"验":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"分":{"docs":{},"为":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"包":{"docs":{},"含":{"docs":{},"所":{"docs":{},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},"程":{"docs":{},"序":{"docs":{},"来":{"docs":{},"了":{"docs":{},"解":{"docs":{},"如":{"docs":{},"何":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"到":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}},"到":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},"器":{"docs":{},"前":{"docs":{},"端":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"个":{"docs":{},"子":{"docs":{},"任":{"docs":{},"务":{"docs":{},",":{"docs":{},"一":{"docs":{},"是":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"二":{"docs":{},"是":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"是":{"docs":{},"从":{"docs":{},"左":{"docs":{},"到":{"docs":{},"右":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"致":{"docs":{},"划":{"docs":{},"分":{"docs":{},"为":{"docs":{},"三":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"前":{"docs":{},"端":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"、":{"docs":{},"后":{"docs":{},"端":{"docs":{},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"前":{"docs":{},"端":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"读":{"docs":{},"入":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":5.002824858757062}}}},"的":{"docs":{},"构":{"docs":{},"造":{"docs":{},"中":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"很":{"docs":{},"多":{"docs":{},"设":{"docs":{},"计":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"接":{"docs":{},"受":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}},"标":{"docs":{},"志":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"没":{"docs":{},"有":{"docs":{},"额":{"docs":{},"外":{"docs":{},"添":{"docs":{},"加":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"包":{"docs":{},"含":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"如":{"docs":{},"整":{"docs":{},"型":{"docs":{},"、":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"型":{"docs":{},"、":{"docs":{},"布":{"docs":{},"尔":{"docs":{},"型":{"docs":{},"等":{"docs":{},")":{"docs":{},"和":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"如":{"docs":{},"指":{"docs":{},"针":{"docs":{},"、":{"docs":{},"数":{"docs":{},"组":{"docs":{},"、":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"器":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"些":{"docs":{},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"对":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"、":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"进":{"docs":{},"行":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"功":{"docs":{},"能":{"docs":{},"是":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"即":{"docs":{},"将":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"是":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"后":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"原":{"docs":{},"理":{"docs":{},"经":{"docs":{},"典":{"docs":{},"书":{"docs":{},"籍":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"写":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"前":{"docs":{},"端":{"docs":{},"、":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"使":{"docs":{},"用":{"docs":{},"循":{"docs":{},"环":{"docs":{},"计":{"docs":{},"算":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"计":{"docs":{},"算":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"评":{"docs":{},"分":{"docs":{},"会":{"docs":{},"以":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"标":{"docs":{},"准":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"方":{"docs":{},"法":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"测":{"docs":{},"将":{"docs":{},"会":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"上":{"docs":{},"进":{"docs":{},"行":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}},"诚":{"docs":{},"信":{"docs":{},"守":{"docs":{},"则":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"语":{"docs":{},"言":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"与":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}},"将":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"变":{"docs":{},"得":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"都":{"docs":{},"会":{"docs":{},"增":{"docs":{},"加":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"支":{"docs":{},"持":{"docs":{},"相":{"docs":{},"关":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"结":{"docs":{},"构":{"docs":{},"或":{"docs":{},"程":{"docs":{},"序":{"docs":{},"(":{"docs":{},"如":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"方":{"docs":{},"法":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"法":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"是":{"docs":{},"采":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"完":{"docs":{},"整":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"把":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"边":{"docs":{},"界":{"docs":{},"情":{"docs":{},"况":{"docs":{},"很":{"docs":{},"多":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"通":{"docs":{},"过":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"正":{"docs":{},"例":{"docs":{},"与":{"docs":{},"负":{"docs":{},"例":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"回":{"docs":{},"过":{"docs":{},"头":{"docs":{},"看":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"从":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"为":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"等":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"又":{"docs":{},"引":{"docs":{},"入":{"docs":{},"控":{"docs":{},"制":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"实":{"docs":{},"现":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"逐":{"docs":{},"渐":{"docs":{},"变":{"docs":{},"得":{"docs":{},"功":{"docs":{},"能":{"docs":{},"齐":{"docs":{},"全":{"docs":{},"。":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},"都":{"docs":{},"带":{"docs":{},"来":{"docs":{},"了":{"docs":{},"新":{"docs":{},"的":{"docs":{},"挑":{"docs":{},"战":{"docs":{},",":{"docs":{},"而":{"docs":{},"你":{"docs":{},"通":{"docs":{},"过":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"智":{"docs":{},"慧":{"docs":{},",":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"解":{"docs":{},"决":{"docs":{},"了":{"docs":{},"这":{"docs":{},"些":{"docs":{},"挑":{"docs":{},"战":{"docs":{},"。":{"docs":{},"顺":{"docs":{},"利":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"后":{"docs":{},",":{"docs":{},"相":{"docs":{},"信":{"docs":{},"你":{"docs":{},"对":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"也":{"docs":{},"有":{"docs":{},"了":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"特":{"docs":{},"的":{"docs":{},"理":{"docs":{},"解":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"流":{"docs":{},"行":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},",":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"都":{"docs":{},"是":{"docs":{},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"。":{"docs":{},"为":{"docs":{},"何":{"docs":{},"这":{"docs":{},"一":{"docs":{},"特":{"docs":{},"性":{"docs":{},"广":{"docs":{},"受":{"docs":{},"欢":{"docs":{},"迎":{"docs":{},"?":{"docs":{},"你":{"docs":{},"认":{"docs":{},"为":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"这":{"docs":{},"一":{"docs":{},"特":{"docs":{},"性":{"docs":{},"会":{"docs":{},"给":{"docs":{},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"带":{"docs":{},"来":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"的":{"docs":{},"好":{"docs":{},"处":{"docs":{},"?":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"数":{"docs":{},"学":{"docs":{},"运":{"docs":{},"算":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"比":{"docs":{},"较":{"docs":{},"运":{"docs":{},"算":{"docs":{},"了":{"docs":{},",":{"docs":{},"成":{"docs":{},"就":{"docs":{},"感":{"docs":{},"满":{"docs":{},"满":{"docs":{},"!":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"你":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},"还":{"docs":{},"只":{"docs":{},"能":{"docs":{},"支":{"docs":{},"持":{"docs":{},"常":{"docs":{},"量":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"这":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"了":{"docs":{},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"体":{"docs":{},"验":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"思":{"docs":{},"路":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"能":{"docs":{},"给":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"写":{"docs":{},"法":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},",":{"docs":{},"注":{"docs":{},"意":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"只":{"docs":{},"比":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"高":{"docs":{},"。":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}},"中":{"docs":{},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"都":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"更":{"docs":{},"加":{"docs":{},"底":{"docs":{},"层":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"规":{"docs":{},"定":{"docs":{},"只":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"才":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"允":{"docs":{},"许":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"可":{"docs":{},"变":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"子":{"docs":{},"集":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"程":{"docs":{},"序":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"器":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"检":{"docs":{},"查":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"程":{"docs":{},"序":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{},"在":{"docs":{},"大":{"docs":{},"作":{"docs":{},"业":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"作":{"docs":{},"用":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"检":{"docs":{},"测":{"docs":{},"出":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"计":{"docs":{},"算":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"了":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{},"才":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"检":{"docs":{},"查":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},"、":{"docs":{},"检":{"docs":{},"查":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"和":{"docs":{},"形":{"docs":{},"参":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"树":{"docs":{},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"可":{"docs":{},"以":{"docs":{},"说":{"docs":{},"明":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"字":{"docs":{},"符":{"docs":{},"流":{"docs":{},"按":{"docs":{},"照":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"后":{"docs":{},"续":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},",":{"docs":{},"而":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"将":{"docs":{},"标":{"docs":{},"记":{"docs":{},"(":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"规":{"docs":{},"范":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"上":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}},"docs":{}}}}}},"我":{"docs":{},"们":{"docs":{},"继":{"docs":{},"续":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}},"改":{"docs":{},"动":{"docs":{},"不":{"docs":{},"大":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}},"的":{"docs":{},"改":{"docs":{},"动":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"改":{"docs":{},"动":{"docs":{},",":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}},"改":{"docs":{},"动":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},"改":{"docs":{},"为":{"docs":{},"了":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"要":{"docs":{},"求":{"docs":{},"从":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"定":{"docs":{},"义":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{},"声":{"docs":{},"明":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"识":{"docs":{},"别":{"docs":{},"语":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"关":{"docs":{},"键":{"docs":{},"字":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"语":{"docs":{},"法":{"docs":{},"名":{"docs":{},"称":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"和":{"docs":{},"包":{"docs":{},"含":{"docs":{},"这":{"docs":{},"个":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{},"名":{"docs":{},"完":{"docs":{},"全":{"docs":{},"相":{"docs":{},"同":{"docs":{},"(":{"docs":{},"甚":{"docs":{},"至":{"docs":{},"包":{"docs":{},"括":{"docs":{},"大":{"docs":{},"小":{"docs":{},"写":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"定":{"docs":{},"义":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"句":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"并":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"是":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},"到":{"docs":{},"作":{"docs":{},"为":{"docs":{},"叶":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"而":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}},"结":{"docs":{},"束":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"跳":{"docs":{},"过":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"便":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"没":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"是":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"步":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"?":{"docs":{},"报":{"docs":{},"的":{"docs":{},"是":{"docs":{},"什":{"docs":{},"么":{"docs":{},"错":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"为":{"docs":{},"之":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"再":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"将":{"docs":{},"支":{"docs":{},"持":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仅":{"docs":{},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"两":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"docs":{},"示":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"和":{"docs":{},"无":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"应":{"docs":{},"当":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"此":{"docs":{},"处":{"docs":{},",":{"docs":{},"执":{"docs":{},"行":{"docs":{},"循":{"docs":{},"环":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"至":{"docs":{},"该":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}},"终":{"docs":{},"止":{"docs":{},"该":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"控":{"docs":{},"制":{"docs":{},"权":{"docs":{},"交":{"docs":{},"还":{"docs":{},"给":{"docs":{},"调":{"docs":{},"用":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"接":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"上":{"docs":{},"才":{"docs":{},"是":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"能":{"docs":{},"见":{"docs":{},"到":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"进":{"docs":{},"入":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"。":{"docs":{},"继":{"docs":{},"续":{"docs":{},"向":{"docs":{},"下":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"值":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"带":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"块":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"和":{"docs":{},"可":{"docs":{},"选":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"是":{"docs":{},"否":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"docs":{},"内":{"docs":{},"。":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"不":{"docs":{},"给":{"docs":{},"任":{"docs":{},"何":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"值":{"docs":{},",":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"总":{"docs":{},"是":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"分":{"docs":{},"别":{"docs":{},"看":{"docs":{},"成":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"则":{"docs":{},"不":{"docs":{},"难":{"docs":{},"想":{"docs":{},"像":{"docs":{},",":{"docs":{},"前":{"docs":{},"面":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"有":{"docs":{},"效":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"之":{"docs":{},"处":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"给":{"docs":{},"对":{"docs":{},"应":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"值":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"任":{"docs":{},"何":{"docs":{},"非":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"其":{"docs":{},"后":{"docs":{},"继":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},";":{"docs":{},"对":{"docs":{},"于":{"docs":{},"以":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"其":{"docs":{},"后":{"docs":{},"继":{"docs":{},"含":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"条":{"docs":{},"件":{"docs":{},"为":{"docs":{},"真":{"docs":{},"和":{"docs":{},"假":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"想":{"docs":{},"像":{"docs":{},",":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"的":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"环":{"docs":{},"路":{"docs":{},"都":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"该":{"docs":{},"图":{"docs":{},"给":{"docs":{},"出":{"docs":{},"程":{"docs":{},"序":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"的":{"docs":{},"各":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"也":{"docs":{},"称":{"docs":{},"为":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"点":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"和":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"又":{"docs":{},"称":{"docs":{},"三":{"docs":{},"元":{"docs":{},"/":{"docs":{},"三":{"docs":{},"目":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"其":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"请":{"docs":{},"注":{"docs":{},"意":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"既":{"docs":{},"可":{"docs":{},"以":{"docs":{},"带":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"时":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"应":{"docs":{},"当":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"当":{"docs":{},"控":{"docs":{},"制":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}},"必":{"docs":{},"须":{"docs":{},"位":{"docs":{},"于":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"内":{"docs":{},"部":{"docs":{},"才":{"docs":{},"合":{"docs":{},"法":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"记":{"docs":{},"录":{"docs":{},"当":{"docs":{},"前":{"docs":{},"结":{"docs":{},"点":{"docs":{},"位":{"docs":{},"于":{"docs":{},"多":{"docs":{},"少":{"docs":{},"重":{"docs":{},"循":{"docs":{},"环":{"docs":{},"内":{"docs":{},"。":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"动":{"docs":{},"态":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"相":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"请":{"docs":{},"额":{"docs":{},"外":{"docs":{},"注":{"docs":{},"意":{"docs":{},"以":{"docs":{},"下":{"docs":{},"两":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"何":{"docs":{},"处":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"这":{"docs":{},"儿":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"变":{"docs":{},"量":{"docs":{},"处":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"独":{"docs":{},"自":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"。":{"docs":{},"这":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"内":{"docs":{},"部":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"把":{"docs":{},"示":{"docs":{},"例":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},":":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"最":{"docs":{},"小":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}},"要":{"docs":{},"么":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"里":{"docs":{},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"其":{"docs":{},"就":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"不":{"docs":{},"要":{"docs":{},"将":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"托":{"docs":{},"管":{"docs":{},"至":{"docs":{},"任":{"docs":{},"何":{"docs":{},"公":{"docs":{},"开":{"docs":{},"的":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"上":{"docs":{},"(":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},",":{"docs":{},"诚":{"docs":{},"信":{"docs":{},"守":{"docs":{},"则":{"docs":{},"是":{"docs":{},"参":{"docs":{},"加":{"docs":{},"本":{"docs":{},"课":{"docs":{},"程":{"docs":{},"的":{"docs":{},"学":{"docs":{},"生":{"docs":{},"应":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"的":{"docs":{},"道":{"docs":{},"德":{"docs":{},"行":{"docs":{},"为":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"生":{"docs":{},"成":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"、":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"、":{"docs":{},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"按":{"docs":{},"照":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"严":{"docs":{},"格":{"docs":{},"杜":{"docs":{},"绝":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"代":{"docs":{},"码":{"docs":{},"查":{"docs":{},"重":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"发":{"docs":{},"现":{"docs":{},"有":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"者":{"docs":{},"与":{"docs":{},"主":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"信":{"docs":{},"息":{"docs":{},"的":{"docs":{},"被":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"者":{"docs":{},"将":{"docs":{},"被":{"docs":{},"记":{"docs":{},"为":{"0":{"docs":{},"分":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"它":{"docs":{},"合":{"docs":{},"并":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"计":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"将":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"以":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},"你":{"docs":{},"的":{"docs":{},"作":{"docs":{},"业":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"分":{"docs":{},"支":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}},"整":{"docs":{},"个":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"问":{"docs":{},"是":{"docs":{},"后":{"docs":{},"端":{"docs":{},"实":{"docs":{},"现":{"docs":{},"上":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"还":{"docs":{},"是":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"本":{"docs":{},"来":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"我":{"docs":{},"们":{"docs":{},"自":{"docs":{},"己":{"docs":{},"修":{"docs":{},"改":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"载":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}},"务":{"docs":{},"必":{"docs":{},"注":{"docs":{},"意":{"docs":{},"上":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}},"画":{"docs":{},"出":{"docs":{},"下":{"docs":{},"面":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"课":{"docs":{},"程":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"为":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"它":{"docs":{},"以":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},",":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"结":{"docs":{},"束":{"docs":{},"处":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"会":{"docs":{},"全":{"docs":{},"部":{"docs":{},"被":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{},"你":{"docs":{},"会":{"docs":{},"发":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"算":{"docs":{},"法":{"docs":{},"显":{"docs":{},"得":{"docs":{},"比":{"docs":{},"较":{"docs":{},"愚":{"docs":{},"蠢":{"docs":{},",":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"大":{"docs":{},"量":{"docs":{},"实":{"docs":{},"际":{"docs":{},"无":{"docs":{},"用":{"docs":{},"的":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"和":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"“":{"docs":{},"全":{"docs":{},"局":{"docs":{},"”":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"它":{"docs":{},"应":{"docs":{},"当":{"docs":{},"能":{"docs":{},"够":{"docs":{},"跨":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"“":{"docs":{},"全":{"docs":{},"局":{"docs":{},"”":{"docs":{},"通":{"docs":{},"常":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"粒":{"docs":{},"度":{"docs":{},")":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"重":{"docs":{},"提":{"docs":{},"一":{"docs":{},"下":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},")":{"docs":{},"测":{"docs":{},"试":{"docs":{},"是":{"docs":{},"否":{"docs":{},"能":{"docs":{},"正":{"docs":{},"常":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"于":{"docs":{},"一":{"docs":{},"些":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"数":{"docs":{},"字":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"时":{"docs":{},",":{"docs":{},"应":{"docs":{},"当":{"docs":{},"为":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"个":{"docs":{},"成":{"docs":{},"员":{"docs":{},",":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"程":{"docs":{},"的":{"docs":{},"直":{"docs":{},"观":{"docs":{},"意":{"docs":{},"义":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}},"问":{"docs":{},"题":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"思":{"docs":{},"路":{"docs":{},"相":{"docs":{},"比":{"docs":{},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"好":{"docs":{},"处":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"“":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"求":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"相":{"docs":{},"反":{"docs":{},"数":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"其":{"docs":{},"分":{"docs":{},"开":{"docs":{},"处":{"docs":{},"理":{"docs":{},"则":{"docs":{},"会":{"docs":{},"增":{"docs":{},"加":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"中":{"docs":{},"加":{"docs":{},"入":{"docs":{},"对":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"要":{"docs":{},"求":{"docs":{},"数":{"docs":{},"组":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"(":{"docs":{},"即":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"堆":{"docs":{},"上":{"docs":{},"的":{"docs":{},"动":{"docs":{},"态":{"docs":{},"内":{"docs":{},"存":{"docs":{},"申":{"docs":{},"请":{"docs":{},",":{"docs":{},"如":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"等":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"它":{"docs":{},")":{"docs":{},",":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"现":{"docs":{},"有":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"做":{"docs":{},"出":{"docs":{},"那":{"docs":{},"些":{"docs":{},"改":{"docs":{},"动":{"docs":{},"?":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"但":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"模":{"docs":{},"式":{"docs":{},"在":{"docs":{},"数":{"docs":{},"组":{"docs":{},"访":{"docs":{},"问":{"docs":{},"中":{"docs":{},"较":{"docs":{},"为":{"docs":{},"常":{"docs":{},"见":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"8":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"中":{"docs":{},"的":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"。":{"docs":{},"在":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"还":{"docs":{},"要":{"docs":{},"维":{"docs":{},"护":{"docs":{},"好":{"docs":{},"循":{"docs":{},"环":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"标":{"docs":{},"签":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"分":{"docs":{},"支":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"文":{"docs":{},"法":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"要":{"docs":{},"看":{"docs":{},"懂":{"docs":{},"文":{"docs":{},"法":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"注":{"docs":{},"意":{"docs":{},"看":{"docs":{},"这":{"docs":{},"条":{"docs":{},"生":{"docs":{},"成":{"docs":{},"规":{"docs":{},"则":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"中":{"docs":{},"端":{"docs":{},"的":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"了":{"docs":{},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},",":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"输":{"docs":{},"出":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"小":{"docs":{},"写":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"取":{"docs":{},"了":{"1":{"1":{"docs":{},"位":{"docs":{},"以":{"docs":{},"后":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"输":{"docs":{},"出":{"docs":{},"为":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"参":{"docs":{},"考":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"_":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"_":{"docs":{},"_":{"docs":{},"函":{"docs":{},"数":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"后":{"docs":{},"续":{"docs":{},"希":{"docs":{},"望":{"docs":{},"添":{"docs":{},"加":{"docs":{},"其":{"docs":{},"他":{"docs":{},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"应":{"docs":{},"该":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},"中":{"docs":{},"增":{"docs":{},"加":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"同":{"docs":{},"名":{"docs":{},"的":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"中":{"docs":{},"的":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"类":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"中":{"docs":{},"的":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"类":{"docs":{},"和":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"中":{"docs":{},"的":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"类":{"docs":{},"。":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"获":{"docs":{},"取":{"docs":{},"到":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"和":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},";":{"docs":{},"同":{"docs":{},"时":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"准":{"docs":{},"确":{"docs":{},"无":{"docs":{},"误":{"docs":{},"地":{"docs":{},"返":{"docs":{},"回":{"docs":{},"到":{"docs":{},"调":{"docs":{},"用":{"docs":{},"处":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"一":{"docs":{},"种":{"docs":{},"经":{"docs":{},"典":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"只":{"docs":{},"提":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"思":{"docs":{},"路":{"docs":{},":":{"docs":{},"看":{"docs":{},"上":{"docs":{},"面":{"docs":{},"我":{"docs":{},"们":{"docs":{},"分":{"docs":{},"析":{"docs":{},"时":{"docs":{},"列":{"docs":{},"出":{"docs":{},"的":{"docs":{},"表":{"docs":{},"格":{"docs":{},",":{"docs":{},"先":{"docs":{},"列":{"docs":{},"举":{"docs":{},"出":{"docs":{},"每":{"docs":{},"一":{"docs":{},"步":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"两":{"docs":{},"两":{"docs":{},"连":{"docs":{},"边":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"种":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}},"举":{"docs":{},"几":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"最":{"docs":{},"少":{"docs":{},"数":{"docs":{},"量":{"docs":{},"的":{"docs":{},"额":{"docs":{},"外":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"正":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"所":{"docs":{},"期":{"docs":{},"望":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"交":{"docs":{},"换":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"前":{"docs":{},"两":{"docs":{},"条":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},"提":{"docs":{},"示":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"合":{"docs":{},"并":{"docs":{},"x":{"docs":{},"和":{"docs":{},"a":{"0":{"docs":{},"、":{"docs":{},"y":{"docs":{},"和":{"docs":{},"a":{"1":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"可":{"docs":{},"行":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"前":{"docs":{},"两":{"docs":{},"条":{"docs":{},"无":{"docs":{},"用":{"docs":{},"m":{"docs":{},"v":{"docs":{},"被":{"docs":{},"消":{"docs":{},"去":{"docs":{},"。":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"注":{"docs":{},"意":{"docs":{},"到":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"与":{"docs":{},"a":{"1":{"docs":{},"相":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"(":{"docs":{},"指":{"docs":{},"令":{"4":{"docs":{},"的":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"集":{"docs":{},"合":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"3":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"包":{"docs":{},"含":{"docs":{},"a":{"1":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"在":{"docs":{},"指":{"docs":{},"令":{"3":{"docs":{},"的":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"a":{"1":{"docs":{},";":{"docs":{},"同":{"docs":{},"时":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"也":{"docs":{},"与":{"docs":{},"a":{"0":{"docs":{},"相":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"(":{"docs":{},"指":{"docs":{},"令":{"6":{"docs":{},"的":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"指":{"docs":{},"令":{"5":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"包":{"docs":{},"含":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{},"a":{"0":{"docs":{},"在":{"docs":{},"指":{"docs":{},"令":{"5":{"docs":{},"的":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},")":{"docs":{},",":{"docs":{},"最":{"docs":{},"终":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"t":{"0":{"docs":{},"。":{"docs":{},"而":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"可":{"docs":{},"以":{"docs":{},"安":{"docs":{},"全":{"docs":{},"地":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"a":{"1":{"docs":{},",":{"docs":{},"故":{"docs":{},"指":{"docs":{},"令":{"4":{"docs":{},"被":{"docs":{},"视":{"docs":{},"作":{"docs":{},"无":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"消":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"举":{"docs":{},"几":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}},"一":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"函":{"docs":{},"数":{"docs":{},"里":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"则":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"应":{"docs":{},"语":{"docs":{},"法":{"docs":{},"制":{"docs":{},"导":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"计":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"就":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"我":{"docs":{},"们":{"docs":{},"终":{"docs":{},"于":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}}}},"节":{"docs":{},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"也":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}},"句":{"docs":{},"比":{"docs":{},"较":{"docs":{},"直":{"docs":{},"接":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"能":{"docs":{},"较":{"docs":{},"为":{"docs":{},"容":{"docs":{},"易":{"docs":{},"的":{"docs":{},"想":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"计":{"docs":{},"算":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"下":{"docs":{},"标":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"产":{"docs":{},"生":{"docs":{},"式":{"docs":{},"中":{"docs":{},"的":{"docs":{},"相":{"docs":{},"应":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"句":{"docs":{},"后":{"docs":{},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"其":{"docs":{},"定":{"docs":{},"义":{"docs":{},")":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"先":{"docs":{},"把":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"奇":{"docs":{},"怪":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"索":{"docs":{},"引":{"docs":{},"运":{"docs":{},"算":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"仔":{"docs":{},"细":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"一":{"docs":{},"下":{"docs":{},"如":{"docs":{},"何":{"docs":{},"处":{"docs":{},"理":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"时":{"docs":{},"对":{"docs":{},"值":{"docs":{},"类":{"docs":{},"别":{"docs":{},"的":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"清":{"docs":{},"零":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"通":{"docs":{},"常":{"docs":{},"自":{"docs":{},"带":{"docs":{},"一":{"docs":{},"个":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"这":{"docs":{},"里":{"docs":{},"采":{"docs":{},"用":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{},"命":{"docs":{},"名":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{},"中":{"docs":{},"把":{"docs":{},"仅":{"docs":{},"因":{"docs":{},"复":{"docs":{},"制":{"docs":{},"(":{"docs":{},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{},"指":{"docs":{},"令":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"一":{"docs":{},"对":{"docs":{},"点":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"连":{"docs":{},"边":{"docs":{},"标":{"docs":{},"记":{"docs":{},"成":{"docs":{},"虚":{"docs":{},"线":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"如":{"docs":{},"果":{"docs":{},"它":{"docs":{},"们":{"docs":{},"最":{"docs":{},"终":{"docs":{},"染":{"docs":{},"同":{"docs":{},"一":{"docs":{},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"删":{"docs":{},"去":{"docs":{},"这":{"docs":{},"条":{"docs":{},"边":{"docs":{},"然":{"docs":{},"后":{"docs":{},"合":{"docs":{},"并":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"。":{"docs":{},"这":{"docs":{},"有":{"docs":{},"助":{"docs":{},"于":{"docs":{},"把":{"docs":{},"上":{"docs":{},"述":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"从":{"docs":{},"步":{"docs":{},"骤":{"2":{"docs":{},"删":{"docs":{},"去":{"docs":{},"的":{"docs":{},"点":{"docs":{},"挪":{"docs":{},"到":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"删":{"docs":{},"去":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},"是":{"docs":{},"否":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"原":{"docs":{},"本":{"docs":{},"就":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"主":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{},"如":{"docs":{},"何":{"docs":{},"在":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"再":{"docs":{},"提":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"最":{"docs":{},"少":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"多":{"docs":{},"少":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"完":{"docs":{},"成":{"docs":{},"上":{"docs":{},"面":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"候":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"篇":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"论":{"docs":{},"文":{"docs":{},"的":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}},"里":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"为":{"docs":{},"准":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"也":{"docs":{},"是":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}}}}},"面":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"它":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"对":{"docs":{},"其":{"docs":{},"进":{"docs":{},"行":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"现":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"型":{"docs":{},"不":{"docs":{},"只":{"docs":{},"是":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}},"额":{"docs":{},"外":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{},"传":{"docs":{},"参":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"即":{"docs":{},":":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"重":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{},"”":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"一":{"docs":{},"步":{"docs":{},"步":{"docs":{},"实":{"docs":{},"现":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"到":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"包":{"docs":{},"括":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"内":{"docs":{},"部":{"docs":{},"声":{"docs":{},"明":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"(":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},"外":{"docs":{},"部":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"不":{"docs":{},"相":{"docs":{},"交":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"重":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"一":{"docs":{},"下":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"复":{"docs":{},"上":{"docs":{},"述":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"不":{"docs":{},"再":{"docs":{},"增":{"docs":{},"加":{"docs":{},"为":{"docs":{},"止":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}},"一":{"docs":{},"步":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"不":{"docs":{},"再":{"docs":{},"变":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},",":{"docs":{},"其":{"docs":{},"次":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"以":{"docs":{},"一":{"docs":{},"个":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"解":{"docs":{},"压":{"docs":{},"文":{"docs":{},"件":{"docs":{},"夹":{"docs":{},"所":{"docs":{},"在":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"修":{"docs":{},"改":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{},"文":{"docs":{},"件":{"docs":{},"后":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"后":{"docs":{},"端":{"docs":{},"中":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"了":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"中":{"docs":{},"和":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"最":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"还":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},",":{"docs":{},"带":{"docs":{},"有":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"两":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"合":{"docs":{},"并":{"docs":{},"为":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"但":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"可":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"性":{"docs":{},"更":{"docs":{},"好":{"docs":{},"些":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"重":{"docs":{},"构":{"docs":{},"进":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}},"申":{"docs":{},"请":{"docs":{},"更":{"docs":{},"大":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}},",":{"docs":{},"将":{"docs":{},"作":{"docs":{},"业":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"那":{"docs":{},"个":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"“":{"docs":{},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"”":{"docs":{},"以":{"docs":{},"及":{"docs":{},"“":{"docs":{},"启":{"docs":{},"用":{"docs":{},"子":{"docs":{},"系":{"docs":{},"统":{"docs":{},"功":{"docs":{},"能":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"并":{"docs":{},"处":{"docs":{},"理":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"每":{"docs":{},"一":{"docs":{},"种":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"专":{"docs":{},"门":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"种":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"和":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"又":{"docs":{},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"同":{"docs":{},"理":{"docs":{},",":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"没":{"docs":{},"读":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"章":{"docs":{},"节":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"快":{"docs":{},"速":{"docs":{},"看":{"docs":{},"看":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"并":{"docs":{},"且":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"加":{"docs":{},"载":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"现":{"docs":{},"在":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"指":{"docs":{},"令":{"docs":{},"就":{"docs":{},"是":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"数":{"docs":{},"组":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"起":{"docs":{},"来":{"docs":{},")":{"docs":{},"。":{"docs":{},"至":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"出":{"docs":{},"了":{"docs":{},"第":{"docs":{},"一":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"将":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"看":{"docs":{},"她":{"docs":{},"们":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"换":{"docs":{},"成":{"docs":{},"新":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"使":{"docs":{},"得":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"不":{"docs":{},"额":{"docs":{},"外":{"docs":{},"扣":{"docs":{},"分":{"docs":{},"。":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"继":{"docs":{},"续":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"不":{"docs":{},"做":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"至":{"docs":{},"少":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"书":{"docs":{},"面":{"docs":{},"作":{"docs":{},"业":{"docs":{},"和":{"docs":{},"日":{"docs":{},"常":{"docs":{},"成":{"docs":{},"绩":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}}}}}}}}},"期":{"docs":{},"末":{"docs":{},"成":{"docs":{},"绩":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}}}},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"k":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0423728813559322}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"你":{"docs":{},"编":{"docs":{},"写":{"docs":{},"任":{"docs":{},"何":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}},"出":{"docs":{},"意":{"docs":{},"外":{"docs":{},"你":{"docs":{},"会":{"docs":{},"获":{"docs":{},"得":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}},"建":{"docs":{},"议":{"docs":{},"阅":{"docs":{},"读":{"docs":{},",":{"docs":{},"太":{"docs":{},"过":{"docs":{},"冗":{"docs":{},"长":{"docs":{},",":{"docs":{},"这":{"docs":{},"对":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"知":{"docs":{},"识":{"docs":{},"提":{"docs":{},"升":{"docs":{},"非":{"docs":{},"常":{"docs":{},"有":{"docs":{},"限":{"docs":{},"。":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"样":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"支":{"docs":{},"持":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"负":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"整":{"docs":{},"数":{"docs":{},"不":{"docs":{},"在":{"docs":{},"此":{"docs":{},"范":{"docs":{},"围":{"docs":{},"内":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{},"引":{"docs":{},"入":{"docs":{},"负":{"docs":{},"号":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"看":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}},"同":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"主":{"docs":{},"要":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}},"知":{"docs":{},"道":{"docs":{},"这":{"docs":{},"点":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}},"为":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"常":{"docs":{},"量":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}},"论":{"docs":{},"选":{"docs":{},"择":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"去":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"都":{"docs":{},"必":{"docs":{},"须":{"docs":{},"首":{"docs":{},"先":{"docs":{},"计":{"docs":{},"算":{"docs":{},"完":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"才":{"docs":{},"能":{"docs":{},"开":{"docs":{},"始":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"或":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"计":{"docs":{},"算":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"外":{"docs":{},"。":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}}},"算":{"docs":{},"做":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"至":{"docs":{},"少":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},"一":{"docs":{},"次":{"docs":{},")":{"docs":{},",":{"docs":{},"请":{"docs":{},"评":{"docs":{},"价":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"种":{"docs":{},"更":{"docs":{},"好":{"docs":{},"?":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}},"允":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}},"可":{"docs":{},"以":{"docs":{},"。":{"docs":{},"如":{"docs":{},"下":{"docs":{},"图":{"docs":{},"所":{"docs":{},"示":{"docs":{},",":{"docs":{},"j":{"docs":{},",":{"docs":{},"b":{"docs":{},"因":{"docs":{},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"j":{"docs":{},",":{"docs":{},"f":{"docs":{},"因":{"docs":{},"其":{"docs":{},"他":{"docs":{},"指":{"docs":{},"令":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"但":{"docs":{},"b":{"docs":{},",":{"docs":{},"f":{"docs":{},"之":{"docs":{},"间":{"docs":{},"没":{"docs":{},"有":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"涂":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"把":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"再":{"docs":{},"要":{"docs":{},"求":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"以":{"docs":{},"后":{"docs":{},"再":{"docs":{},"进":{"docs":{},"行":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},"设":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}},"在":{"docs":{},"经":{"docs":{},"过":{"docs":{},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"成":{"docs":{},"功":{"docs":{},"将":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"某":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"下":{"docs":{},"图":{"docs":{},"给":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"如":{"docs":{},"图":{"docs":{},"所":{"docs":{},"示":{"docs":{},",":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"由":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"及":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"三":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"组":{"docs":{},"成":{"docs":{},",":{"docs":{},"f":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"若":{"docs":{},"干":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"次":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"如":{"docs":{},"你":{"docs":{},"的":{"docs":{},"账":{"docs":{},"号":{"docs":{},"为":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}},"定":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"远":{"docs":{},"端":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"意":{"docs":{},"地":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"汇":{"docs":{},"编":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"的":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"一":{"docs":{},"分":{"docs":{},"为":{"docs":{},"二":{"docs":{},",":{"docs":{},"缩":{"docs":{},"小":{"docs":{},"调":{"docs":{},"试":{"docs":{},"范":{"docs":{},"围":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"有":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"了":{"docs":{},"此":{"docs":{},"处":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"发":{"docs":{},"现":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"中":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"了":{"docs":{},"m":{"docs":{},"v":{"docs":{},"的":{"docs":{},"成":{"docs":{},"员":{"docs":{},"函":{"docs":{},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"为":{"docs":{},"止":{"docs":{},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"上":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"底":{"docs":{},"和":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"目":{"docs":{},"前":{"docs":{},"为":{"docs":{},"止":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"更":{"docs":{},"接":{"docs":{},"近":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"还":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"是":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},"的":{"docs":{},",":{"docs":{},"问":{"docs":{},"题":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"载":{"docs":{},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{},"有":{"docs":{},"了":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"也":{"docs":{},"变":{"docs":{},"得":{"docs":{},"更":{"docs":{},"加":{"docs":{},"强":{"docs":{},"大":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"试":{"docs":{},"着":{"docs":{},"用":{"docs":{},"它":{"docs":{},"写":{"docs":{},"一":{"docs":{},"些":{"docs":{},"更":{"docs":{},"有":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"搜":{"docs":{},"索":{"docs":{},"路":{"docs":{},"径":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"反":{"docs":{},"复":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},"天":{"docs":{},"内":{"docs":{},"这":{"docs":{},"个":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},"必":{"docs":{},"做":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},":":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"测":{"docs":{},"试":{"docs":{},"你":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{},"配":{"docs":{},"置":{"docs":{},"好":{"docs":{},"了":{"docs":{},"环":{"docs":{},"境":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}},"须":{"docs":{},"是":{"8":{"docs":{},"的":{"docs":{},"整":{"docs":{},"数":{"docs":{},"倍":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}},"docs":{}}}},"截":{"docs":{},"止":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.11392405063291139}},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"所":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},"有":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}},"截":{"docs":{},"止":{"docs":{},"时":{"docs":{},"间":{"docs":{},"均":{"docs":{},"为":{"docs":{},"所":{"docs":{},"标":{"docs":{},"日":{"docs":{},"期":{"docs":{},"的":{"2":{"3":{"docs":{},":":{"5":{"9":{"docs":{},":":{"5":{"9":{"docs":{},"(":{"docs":{},"u":{"docs":{},"t":{"docs":{},"c":{"docs":{},"+":{"8":{"docs":{},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"第":{"docs":{},"二":{"docs":{},"天":{"0":{"docs":{},"点":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"如":{"docs":{},"有":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"情":{"docs":{},"况":{"docs":{},"将":{"docs":{},"会":{"docs":{},"在":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"通":{"docs":{},"知":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"点":{"docs":{},"取":{"docs":{},"算":{"docs":{},"数":{"docs":{},"平":{"docs":{},"均":{"docs":{},"值":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"结":{"docs":{},"果":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}},"谓":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"假":{"docs":{},"设":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"数":{"docs":{},"量":{"docs":{},"是":{"docs":{},"无":{"docs":{},"限":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"导":{"docs":{},"致":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},"无":{"docs":{},"法":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"对":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"做":{"docs":{},"一":{"docs":{},"一":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"调":{"docs":{},"度":{"docs":{},"与":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"来":{"docs":{},"合":{"docs":{},"理":{"docs":{},"使":{"docs":{},"用":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"一":{"docs":{},"种":{"docs":{},"暴":{"docs":{},"力":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"细":{"docs":{},"节":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},"满":{"docs":{},"足":{"docs":{},"什":{"docs":{},"么":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"划":{"docs":{},"分":{"docs":{},"、":{"docs":{},"流":{"docs":{},"图":{"docs":{},"构":{"docs":{},"造":{"docs":{},"、":{"docs":{},"以":{"docs":{},"及":{"docs":{},"分":{"docs":{},"析":{"docs":{},"循":{"docs":{},"环":{"docs":{},"或":{"docs":{},"其":{"docs":{},"他":{"docs":{},"控":{"docs":{},"制":{"docs":{},"区":{"docs":{},"域":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{},"而":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"各":{"docs":{},"种":{"docs":{},"数":{"docs":{},"据":{"docs":{},"对":{"docs":{},"象":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},"中":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"以":{"docs":{},"后":{"docs":{},"是":{"docs":{},"否":{"docs":{},"还":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"等":{"docs":{},"。":{"docs":{},"依":{"docs":{},"据":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"等":{"docs":{},"相":{"docs":{},"关":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"需":{"docs":{},"的":{"docs":{},"底":{"docs":{},"层":{"docs":{},"类":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"无":{"docs":{},"法":{"docs":{},"用":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"表":{"docs":{},"示":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"变":{"docs":{},"长":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}}},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"分":{"docs":{},"配":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"和":{"docs":{},"保":{"docs":{},"存":{"docs":{},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"那":{"docs":{},"段":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"称":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"回":{"docs":{},"收":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"从":{"docs":{},"当":{"docs":{},"前":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"过":{"docs":{},"程":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"则":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}},"流":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"图":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"有":{"docs":{},"向":{"docs":{},"图":{"docs":{},":":{"docs":{},"它":{"docs":{},"以":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"作":{"docs":{},"为":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"时":{"docs":{},"间":{"docs":{},"是":{"docs":{},"该":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"示":{"docs":{},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}},"发":{"docs":{},"生":{"docs":{},"越":{"docs":{},"界":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"计":{"docs":{},"算":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"再":{"docs":{},"像":{"docs":{},"现":{"docs":{},"在":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},"统":{"docs":{},"一":{"docs":{},"给":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"在":{"docs":{},"离":{"docs":{},"开":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},"统":{"docs":{},"一":{"docs":{},"释":{"docs":{},"放":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"供":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"下":{"docs":{},"面":{"docs":{},"两":{"docs":{},"种":{"docs":{},"安":{"docs":{},"装":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"的":{"docs":{},"任":{"docs":{},"意":{"docs":{},"一":{"docs":{},"种":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"与":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"声":{"docs":{},"明":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}},"足":{"docs":{},"够":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"来":{"docs":{},"构":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"理":{"docs":{},"解":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"特":{"docs":{},"定":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{},"这":{"docs":{},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"文":{"docs":{},"法":{"docs":{},"定":{"docs":{},"义":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"设":{"docs":{},"计":{"docs":{},"和":{"docs":{},"语":{"docs":{},"言":{"docs":{},"工":{"docs":{},"具":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"并":{"docs":{},"以":{"docs":{},"此":{"docs":{},"代":{"docs":{},"替":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},"。":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"大":{"docs":{},"家":{"docs":{},"完":{"docs":{},"整":{"docs":{},"读":{"docs":{},"一":{"docs":{},"遍":{"docs":{},"论":{"docs":{},"文":{"docs":{},",":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"论":{"docs":{},"文":{"docs":{},"作":{"docs":{},"者":{"docs":{},"的":{"docs":{},"讲":{"docs":{},"解":{"docs":{},"课":{"docs":{},"件":{"docs":{},",":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"链":{"docs":{},"接":{"docs":{},"失":{"docs":{},"效":{"docs":{},"了":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"打":{"docs":{},"开":{"docs":{},"这":{"docs":{},"个":{"docs":{},"链":{"docs":{},"接":{"docs":{},")":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"理":{"docs":{},"解":{"docs":{},"。":{"docs":{},"论":{"docs":{},"文":{"docs":{},"文":{"docs":{},"末":{"docs":{},"的":{"docs":{},"附":{"docs":{},"录":{"docs":{},"有":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"它":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"完":{"docs":{},"成":{"docs":{},"本":{"docs":{},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"日":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"讲":{"docs":{},"是":{"docs":{},"创":{"docs":{},"建":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"等":{"docs":{},"于":{"docs":{},"你":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}},"熟":{"docs":{},"悉":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"基":{"docs":{},"础":{"docs":{},"知":{"docs":{},"识":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},"选":{"docs":{},"做":{"docs":{},"实":{"docs":{},"验":{"docs":{},"不":{"docs":{},"接":{"docs":{},"受":{"docs":{},"补":{"docs":{},"交":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}},"二":{"docs":{},"是":{"docs":{},"给":{"docs":{},"希":{"docs":{},"望":{"docs":{},"继":{"docs":{},"续":{"docs":{},"深":{"docs":{},"入":{"docs":{},"了":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"知":{"docs":{},"识":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},"具":{"docs":{},"有":{"docs":{},"较":{"docs":{},"大":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"请":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"依":{"docs":{},"据":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"安":{"docs":{},"排":{"docs":{},"情":{"docs":{},"况":{"docs":{},"决":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"选":{"docs":{},"做":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"并":{"docs":{},"非":{"docs":{},"为":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"改":{"docs":{},"动":{"docs":{},"部":{"docs":{},"分":{"docs":{},"可":{"docs":{},"能":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"你":{"docs":{},"对":{"docs":{},"框":{"docs":{},"架":{"docs":{},"有":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"了":{"docs":{},"解":{"docs":{},"再":{"docs":{},"开":{"docs":{},"始":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"以":{"docs":{},"报":{"docs":{},"告":{"docs":{},"评":{"docs":{},"分":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step13/readme.html":{"ref":"docs/step13/readme.html","tf":0.5}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"docs/step13/readme.html":{"ref":"docs/step13/readme.html","tf":0.5}}}}}}},"部":{"docs":{},"分":{"docs":{},"难":{"docs":{},"度":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"且":{"docs":{},"时":{"docs":{},"间":{"docs":{},"较":{"docs":{},"紧":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"前":{"docs":{},"一":{"docs":{},"些":{"docs":{},"开":{"docs":{},"始":{"docs":{},"才":{"docs":{},"能":{"docs":{},"保":{"docs":{},"证":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"二":{"docs":{},"说":{"docs":{},"明":{"docs":{"docs/step13/readme.html":{"ref":"docs/step13/readme.html","tf":10}}}}}},"项":{"docs":{},")":{"docs":{},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"一":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"二":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"分":{"docs":{},"别":{"docs":{},"用":{"docs":{},"于":{"docs":{},"禁":{"docs":{},"止":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"0":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},"设":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"不":{"docs":{},"用":{"docs":{},"系":{"docs":{},"统":{"docs":{},"自":{"docs":{},"带":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},")":{"docs":{},"、":{"docs":{},">":{"docs":{},"(":{"docs":{},"大":{"docs":{},"于":{"docs":{},")":{"docs":{},"、":{"docs":{},"(":{"docs":{},"小":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"和":{"docs":{},">":{"docs":{},"=":{"docs":{},"(":{"docs":{},"大":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"满":{"docs":{},"足":{"docs":{},"它":{"docs":{},"们":{"docs":{},"所":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"当":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"给":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"值":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"加":{"docs":{},"法":{"docs":{},"语":{"docs":{},"句":{"docs":{},"给":{"docs":{},"目":{"docs":{},"标":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"值":{"docs":{},"等":{"docs":{},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"保":{"docs":{},"存":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"称":{"docs":{},"作":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"数":{"docs":{},"目":{"docs":{},"不":{"docs":{},"受":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"不":{"docs":{},"够":{"docs":{},"用":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"t":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01694915254237288},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.023728813559322035},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.035326086956521736},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.017857142857142856},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.02956989247311828},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.06097560975609756},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.06818181818181818},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.024456521739130436},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"_":{"docs":{},"t":{"2":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"3":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"docs":{}}}}},"docs":{}}}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"测":{"docs":{},"例":{"docs":{},"中":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},")":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"每":{"docs":{},"个":{"docs":{},"源":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"本":{"docs":{},"例":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"检":{"docs":{},"查":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"已":{"docs":{},"经":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"是":{"docs":{},",":{"docs":{},"则":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"把":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},";":{"docs":{},"对":{"docs":{},"于":{"docs":{},"目":{"docs":{},"标":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"本":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"[":{"docs":{},"i":{"3":{"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}}},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"的":{"docs":{},"值":{"docs":{},"是":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"将":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"的":{"docs":{},"值":{"docs":{},"分":{"docs":{},"别":{"docs":{},"存":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}},"docs":{}}}},"、":{"docs":{},"_":{"docs":{},"t":{"3":{"docs":{},"、":{"docs":{},"_":{"docs":{},"t":{"4":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}},"docs":{}}}}},"docs":{}}}}},"1":{"0":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"1":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}},"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.018475750577367205},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.020134228187919462},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.021739130434782608},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.021505376344086023},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.06097560975609756},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"下":{"docs":{},"面":{"docs":{},"是":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"输":{"docs":{},"出":{"docs":{},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"翻":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"发":{"docs":{},"生":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"[":{"docs":{},"i":{"3":{"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}}},"、":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}},"docs":{}}}}},"2":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014124293785310734},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.025423728813559324},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.02348993288590604},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.021739130434782608},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03225806451612903},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"为":{"docs":{},"其":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"将":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"为":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"之":{"docs":{},"间":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"种":{"docs":{},"关":{"docs":{},"联":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}}}},"3":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.010869565217391304},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.008928571428571428},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.02956989247311828},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.07954545454545454}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},",":{"docs":{},"(":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},",":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}}}},"4":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.01881720430107527},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.06818181818181818}},"]":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"5":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.020134228187919462},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"6":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805}}},"7":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796}}},"8":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"9":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"]":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"_":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"_":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},"l":{"0":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},",":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},"]":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}},"1":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012}}},")":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"初":{"docs":{},"次":{"docs":{},"进":{"docs":{},"入":{"docs":{},"循":{"docs":{},"环":{"docs":{},"时":{"docs":{},",":{"docs":{},"从":{"docs":{},"这":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"判":{"docs":{},"断":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{},"是":{"docs":{},"否":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"若":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"2":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"docs":{},"示":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},")":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"]":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}}}},"3":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},")":{"docs":{},"处":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"docs":{},"k":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.024390243902439025},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728}}}}}}},"b":{"0":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}},"1":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"结":{"docs":{},"尾":{"docs":{},"都":{"docs":{},"是":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"、":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"3":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"三":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"docs":{},"示":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"、":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"和":{"docs":{},"i":{"docs":{},"f":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{},"_":{"docs":{},"b":{"0":{"docs":{},"的":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"_":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"入":{"docs":{},"口":{"docs":{},"、":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},"和":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{},"_":{"docs":{},"b":{"4":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"5":{"docs":{},"两":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{},"多":{"docs":{},"出":{"docs":{},"来":{"docs":{},"的":{"docs":{},"_":{"docs":{},"b":{"6":{"docs":{},"是":{"docs":{},"个":{"docs":{},"不":{"docs":{},"可":{"docs":{},"达":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"之":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"消":{"docs":{},"掉":{"docs":{},"。":{"docs":{},"(":{"docs":{},"思":{"docs":{},"考":{"docs":{},"一":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"_":{"docs":{},"b":{"6":{"docs":{},"?":{"docs":{},"提":{"docs":{},"示":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},";":{"docs":{},"语":{"docs":{},"句":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"d":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"u":{"docs":{},"m":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"\"":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"l":{"docs":{},"f":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.01646090534979424}},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},",":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},",":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}},";":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.030927835051546393},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.1320754716981132},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.030927835051546393},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.0425531914893617},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.033783783783783786},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05405405405405406},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.03125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.03333333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.028455284552845527},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02702702702702703},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026923076923076925},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.034934497816593885},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.03292181069958848},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.01014370245139476},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},",":{"docs":{},"变":{"docs":{},"成":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"表":{"docs":{},"示":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.06666666666666667},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.023166023166023165},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.023076923076923078},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.026200873362445413},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.024691358024691357}}},")":{"docs":{},"。":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}}}}},".":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}},"b":{"docs":{},"n":{"docs":{},"f":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"e":{"docs":{},"。":{"docs":{},"e":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},")":{"docs":{},"。":{"docs":{},"假":{"docs":{},"设":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"u":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"分":{"docs":{},"支":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}},")":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"。":{"docs":{},"在":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"通":{"docs":{},"过":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"开":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"和":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}},"条":{"docs":{},"件":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"该":{"docs":{},"分":{"docs":{},"支":{"docs":{},"结":{"docs":{},"束":{"docs":{},"时":{"docs":{},",":{"docs":{},"用":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"在":{"docs":{},"递":{"docs":{},"归":{"docs":{},"到":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"请":{"docs":{},"先":{"docs":{},"判":{"docs":{},"断":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"和":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"需":{"docs":{},"要":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"而":{"docs":{},"非":{"docs":{},"声":{"docs":{},"明":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"析":{"docs":{},"等":{"docs":{},"理":{"docs":{},"论":{"docs":{},"知":{"docs":{},"识":{"docs":{},"在":{"docs":{},"实":{"docs":{},"践":{"docs":{},"中":{"docs":{},"的":{"docs":{},"应":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"了":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"这":{"docs":{},"两":{"docs":{},"次":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"。":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"工":{"docs":{},"建":{"docs":{},"议":{"docs":{},":":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"后":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"总":{"docs":{},"评":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"前":{"docs":{},"就":{"docs":{},"被":{"docs":{},"释":{"docs":{},"放":{"docs":{},"了":{"docs":{},",":{"docs":{},"后":{"docs":{},"端":{"docs":{},"会":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"寻":{"docs":{},"找":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}},"端":{"docs":{},":":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"现":{"docs":{},"有":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"完":{"docs":{},"成":{"docs":{},"前":{"docs":{},"端":{"docs":{},"(":{"docs":{},"如":{"docs":{},":":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{},"、":{"docs":{},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"负":{"docs":{},"责":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"梗":{"docs":{},"概":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"将":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"和":{"docs":{},"中":{"docs":{},"端":{"docs":{},"设":{"docs":{},"计":{"docs":{},"密":{"docs":{},"不":{"docs":{},"可":{"docs":{},"分":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":10}}}},"预":{"docs":{},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"解":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"这":{"docs":{},"棵":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"依":{"docs":{},"据":{"docs":{},"你":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"保":{"docs":{},"证":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"将":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"用":{"docs":{},"你":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"表":{"docs":{},"示":{"docs":{},"出":{"docs":{},"来":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"推":{"docs":{},"荐":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"就":{"docs":{},"先":{"docs":{},"利":{"docs":{},"用":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":10.012048192771084}}}}},"命":{"docs":{},"令":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"确":{"docs":{},"安":{"docs":{},"装":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}},"未":{"docs":{},"必":{"docs":{},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},"行":{"docs":{},"基":{"docs":{},"础":{"docs":{},"操":{"docs":{},"作":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"不":{"docs":{},"赘":{"docs":{},"述":{"docs":{},"了":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"在":{"docs":{},"网":{"docs":{},"上":{"docs":{},"查":{"docs":{},"找":{"docs":{},"资":{"docs":{},"料":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"修":{"docs":{},"改":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}},"安":{"docs":{},"装":{"docs":{},"下":{"docs":{},"文":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"加":{"docs":{},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{},"。":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"依":{"docs":{},"次":{"docs":{},"按":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"装":{"docs":{},"载":{"docs":{},"到":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"依":{"docs":{},"赖":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"并":{"docs":{},"且":{"docs":{},"不":{"docs":{},"会":{"docs":{},"找":{"docs":{},"到":{"docs":{},",":{"docs":{},"出":{"docs":{},"现":{"docs":{},"报":{"docs":{},"错":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}},"非":{"docs":{},"严":{"docs":{},"格":{"docs":{},"按":{"docs":{},"照":{"docs":{},"课":{"docs":{},"本":{"docs":{},"上":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"严":{"docs":{},"格":{"docs":{},"要":{"docs":{},"求":{"docs":{},"只":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"三":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"绝":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"指":{"docs":{},"令":{"docs":{},"均":{"docs":{},"可":{"docs":{},"以":{"docs":{},"仅":{"docs":{},"使":{"docs":{},"用":{"docs":{},"三":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"地":{"docs":{},"址":{"docs":{},"实":{"docs":{},"现":{"docs":{},"(":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"除":{"docs":{},"外":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"值":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"填":{"docs":{},"充":{"docs":{},"其":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"、":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"法":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"发":{"docs":{},"现":{"docs":{},"是":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"。":{"docs":{},"请":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"平":{"docs":{},"台":{"docs":{},"(":{"docs":{},"如":{"docs":{},"m":{"1":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"对":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"用":{"docs":{},"户":{"docs":{},"都":{"docs":{},"有":{"docs":{},"效":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"用":{"docs":{},"法":{"docs":{},"可":{"docs":{},"参":{"docs":{},"见":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"此":{"docs":{},"命":{"docs":{},"令":{"docs":{},"来":{"docs":{},"检":{"docs":{},"查":{"docs":{},"当":{"docs":{},"前":{"docs":{},"优":{"docs":{},"先":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"高":{"docs":{},"于":{"docs":{},"此":{"docs":{},"版":{"docs":{},"本":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"以":{"docs":{},"下":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"无":{"docs":{},"法":{"docs":{},"成":{"docs":{},"功":{"docs":{},"生":{"docs":{},"成":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"程":{"docs":{},"序":{"docs":{},"只":{"docs":{},"能":{"docs":{},"在":{"docs":{},"你":{"docs":{},"本":{"docs":{},"机":{"docs":{},"(":{"docs":{},"x":{"8":{"6":{"docs":{},")":{"docs":{},"上":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"可":{"docs":{},"能":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"器":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"。":{"docs":{},"和":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"也":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"当":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"信":{"docs":{},"息":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"中":{"docs":{},"增":{"docs":{},"加":{"docs":{},"对":{"docs":{},"循":{"docs":{},"环":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"结":{"docs":{},"构":{"docs":{},"维":{"docs":{},"护":{"docs":{},"从":{"docs":{},"内":{"docs":{},"到":{"docs":{},"外":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"将":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"解":{"docs":{},"析":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}},"经":{"docs":{},"过":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"优":{"docs":{},"化":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"折":{"docs":{},"叠":{"docs":{},"优":{"docs":{},"化":{"docs":{},"后":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{},"可":{"docs":{},"以":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"本":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"测":{"docs":{},"例":{"docs":{},"(":{"docs":{},"不":{"docs":{},"过":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"你":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"在":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"构":{"docs":{},"。":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"想":{"docs":{},"要":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"对":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"点":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"的":{"docs":{},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}},"类":{"docs":{},"实":{"docs":{},"现":{"docs":{},"(":{"docs":{},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"适":{"docs":{},"当":{"docs":{},"的":{"docs":{},"简":{"docs":{},"略":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"依":{"docs":{},"次":{"docs":{},"检":{"docs":{},"查":{"docs":{},"该":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}},"不":{"docs":{},"要":{"docs":{},"忘":{"docs":{},"记":{"docs":{},"开":{"docs":{},"启":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}},"若":{"docs":{},"当":{"docs":{},"前":{"docs":{},"不":{"docs":{},"处":{"docs":{},"于":{"docs":{},"任":{"docs":{},"何":{"docs":{},"循":{"docs":{},"环":{"docs":{},"内":{"docs":{},",":{"docs":{},"则":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"、":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"最":{"docs":{},"终":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"或":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"合":{"docs":{},"性":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"面":{"docs":{},"两":{"docs":{},"种":{"docs":{},"理":{"docs":{},"解":{"docs":{},"中":{"docs":{},"只":{"docs":{},"有":{"docs":{},"前":{"docs":{},"者":{"docs":{},"合":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"尾":{"docs":{},",":{"docs":{},"则":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"边":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"与":{"docs":{},"所":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"加":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"条":{"docs":{},"件":{"docs":{},"成":{"docs":{},"立":{"docs":{},"与":{"docs":{},"不":{"docs":{},"成":{"docs":{},"立":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"分":{"docs":{},"别":{"docs":{},"加":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"(":{"docs":{},"共":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"中":{"docs":{},",":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"!":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}},"x":{"docs":{},";":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"=":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"(":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},",":{"docs":{},"结":{"docs":{},"果":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"满":{"docs":{},"足":{"docs":{},"它":{"docs":{},"们":{"docs":{},"所":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"当":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"%":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"/":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.02247191011235955},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0338123415046492},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},"·":{"docs":{},"·":{"docs":{},"·":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"p":{"docs":{},"k":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"每":{"docs":{},"次":{"docs":{},"都":{"docs":{},"用":{"docs":{},"完":{"docs":{},"整":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"模":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}},"f":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"o":{"docs":{},"o":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"(":{"docs":{},"i":{"3":{"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}},"docs":{}},"docs":{},"n":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"_":{"docs":{},"t":{"2":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}},"t":{"1":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}},"a":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},".":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"s":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"加":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"为":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},")":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.05357142857142857}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"(":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"y":{"docs":{},":":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"、":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},"、":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},";":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"程":{"docs":{},"序":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"。":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},";":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},")":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"而":{"docs":{},"这":{"docs":{},"一":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"调":{"docs":{},"用":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"而":{"docs":{},"词":{"docs":{},"法":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"e":{"docs":{},"/":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},";":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},";":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"位":{"docs":{},"于":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},";":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"相":{"docs":{},"关":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.013071895424836602},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}},"(":{"docs":{},"p":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"docs":{}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}}}}}}},"每":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"*":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"s":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"(":{"1":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},")":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"{":{"docs":{},"i":{"docs":{},"f":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"n":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"当":{"docs":{},"新":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"旧":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"f":{"docs":{},"p":{"docs":{},")":{"docs":{},"保":{"docs":{},"存":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},"表":{"docs":{},"示":{"docs":{},"新":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"新":{"docs":{},"f":{"docs":{},"p":{"docs":{},")":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"新":{"docs":{},"老":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"是":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"及":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"是":{"docs":{},"可":{"docs":{},"知":{"docs":{},"的":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"期":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"得":{"docs":{},"出":{"docs":{},",":{"docs":{},"即":{"docs":{},"存":{"docs":{},"储":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"与":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"空":{"docs":{},"间":{"docs":{},"三":{"docs":{},"者":{"docs":{},"之":{"docs":{},"和":{"docs":{},"。":{"docs":{},"在":{"docs":{},"求":{"docs":{},"得":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"大":{"docs":{},"小":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"修":{"docs":{},"改":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"指":{"docs":{},"针":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},"的":{"docs":{},"值":{"docs":{},"来":{"docs":{},"分":{"docs":{},"配":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"v":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"docs":{}}}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"o":{"1":{"docs":{},"与":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"2":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"(":{"docs":{},"减":{"docs":{},"少":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"生":{"docs":{},"成":{"docs":{},")":{"docs":{},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"看":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"的":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"3":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"s":{"docs":{},"用":{"docs":{},"户":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"将":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{},"加":{"docs":{},"入":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"将":{"docs":{},"p":{"docs":{},"k":{"docs":{},"加":{"docs":{},"入":{"docs":{},"系":{"docs":{},"统":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{},"助":{"docs":{},"教":{"docs":{},"不":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}},"k":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}},"o":{"docs":{},"p":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"l":{"docs":{},"[":{"docs":{},"u":{"docs":{},"]":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"e":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.010869565217391304}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"n":{"docs":{},"j":{"docs":{},"d":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},"e":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},"就":{"docs":{},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"展":{"docs":{},"开":{"docs":{},",":{"docs":{},"也":{"docs":{},"许":{"docs":{},"要":{"docs":{},"在":{"docs":{},"更":{"docs":{},"早":{"docs":{},"的":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"引":{"docs":{},"入":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"并":{"docs":{},"将":{"docs":{},"其":{"docs":{},"变":{"docs":{},"换":{"docs":{},"为":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"和":{"docs":{},"一":{"docs":{},"条":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},":":{"docs":{},"将":{"docs":{},"t":{"0":{"docs":{},"中":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"计":{"docs":{},"算":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"将":{"docs":{},"结":{"docs":{},"果":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"t":{"0":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}}}}}},"b":{"docs":{},"j":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"x":{"1":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},"8":{"6":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.014563106796116505},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"_":{"6":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.009708737864077669}}},"docs":{}},"docs":{}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"docs":{}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.03341288782816229},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.09863945578231292},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.030508474576271188},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.0783132530120482},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.015267175572519083}},")":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},",":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}}},"(":{"docs":{},"然":{"docs":{},"后":{"docs":{},"回":{"docs":{},"车":{"docs":{},")":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"开":{"docs":{},"头":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"你":{"docs":{},"最":{"docs":{},"终":{"docs":{},"敲":{"docs":{},"到":{"docs":{},"终":{"docs":{},"端":{"docs":{},"里":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"于":{"docs":{},"是":{"docs":{},"向":{"docs":{},"下":{"docs":{},"继":{"docs":{},"续":{"docs":{},"查":{"docs":{},"找":{"docs":{},"。":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"但":{"docs":{},"随":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"开":{"docs":{},"启":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"中":{"docs":{},",":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"下":{"docs":{},"所":{"docs":{},"示":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"找":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"而":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"随":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"这":{"docs":{},"个":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}},"+":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"是":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"其":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"值":{"docs":{},"。":{"docs":{},"而":{"docs":{},"带":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"只":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"正":{"docs":{},"确":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"关":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"就":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},"了":{"docs":{},":":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{},"若":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"即":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"加":{"docs":{},"入":{"docs":{},"对":{"docs":{},"应":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"v":{"docs":{},"i":{"docs":{},"的":{"docs":{},"值":{"docs":{},"不":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"。":{"docs":{},"(":{"docs":{},"思":{"docs":{},"考":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}},"docs":{}},"docs":{}},"i":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"将":{"docs":{},"全":{"docs":{},"部":{"docs":{},"x":{"docs":{},"i":{"docs":{},"移":{"docs":{},"入":{"docs":{},"t":{"docs":{},"i":{"docs":{},"中":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"再":{"docs":{},"生":{"docs":{},"成":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"1":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}},"2":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.013440860215053764},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},")":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},";":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},".":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"\"":{"docs":{},")":{"docs":{},"代":{"docs":{},"表":{"docs":{},"了":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"点":{"docs":{},"是":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},",":{"docs":{},"而":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{},"p":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"即":{"docs":{},"三":{"docs":{},"个":{"docs":{},"引":{"docs":{},"号":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"并":{"docs":{},"非":{"docs":{},"注":{"docs":{},"释":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"简":{"docs":{},"称":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"均":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"到":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"搜":{"docs":{},"索":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}},"docs":{},"]":{"docs":{},";":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"官":{"docs":{},"方":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"文":{"docs":{},"档":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"或":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"者":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}}},"自":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"管":{"docs":{},"理":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"地":{"docs":{},"使":{"docs":{},"用":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"安":{"docs":{},"装":{"docs":{},"最":{"docs":{},"新":{"docs":{},"的":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"版":{"docs":{},"本":{"docs":{},",":{"docs":{},"安":{"docs":{},"装":{"docs":{},"好":{"docs":{},"之":{"docs":{},"后":{"docs":{},"使":{"docs":{},"用":{"docs":{},"p":{"docs":{},"i":{"docs":{},"p":{"docs":{},"安":{"docs":{},"装":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}},"把":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"右":{"docs":{},"边":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"选":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"信":{"docs":{},"息":{"docs":{},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"码":{"docs":{},"入":{"docs":{},"语":{"docs":{},"法":{"docs":{},"里":{"docs":{},",":{"docs":{},"见":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"转":{"docs":{},"化":{"docs":{},"成":{"docs":{},"类":{"docs":{},"似":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"样":{"docs":{},"“":{"docs":{},"更":{"docs":{},"模":{"docs":{},"糊":{"docs":{},"”":{"docs":{},",":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"相":{"docs":{},"信":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"向":{"docs":{},"的":{"docs":{},"转":{"docs":{},"化":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"容":{"docs":{},"易":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"图":{"docs":{},"中":{"docs":{},"当":{"docs":{},"前":{"docs":{},"所":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"至":{"docs":{},"少":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}},"比":{"docs":{},"如":{"5":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}},"较":{"docs":{},"大":{"docs":{},"小":{"docs":{},"和":{"docs":{},"相":{"docs":{},"等":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},":":{"docs":{},"、":{"docs":{},"、":{"docs":{},">":{"docs":{},"=":{"docs":{},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"此":{"docs":{},"处":{"docs":{},"不":{"docs":{},"要":{"docs":{},"直":{"docs":{},"接":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"式":{"docs":{},"子":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"子":{"docs":{},"模":{"docs":{},"块":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}},"i":{"docs":{},"f":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}},"引":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"后":{"docs":{},",":{"docs":{},"左":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"一":{"docs":{},"定":{"docs":{},"是":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"都":{"docs":{},"参":{"docs":{},"加":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"是":{"docs":{},"用":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"是":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"各":{"docs":{},"种":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"运":{"docs":{},"算":{"docs":{},"规":{"docs":{},"则":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"用":{"docs":{},"统":{"docs":{},"一":{"docs":{},"的":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"节":{"docs":{},"点":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"再":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"种":{"docs":{},"类":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"目":{"docs":{},"前":{"docs":{},"还":{"docs":{},"在":{"docs":{},"完":{"docs":{},"善":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"不":{"docs":{},"断":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"更":{"docs":{},"新":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"对":{"docs":{},"于":{"docs":{},"评":{"docs":{},"分":{"docs":{},"部":{"docs":{},"分":{"docs":{},"有":{"docs":{},"更":{"docs":{},"新":{"docs":{},",":{"docs":{},"会":{"docs":{},"通":{"docs":{},"知":{"docs":{},"所":{"docs":{},"有":{"docs":{},"选":{"docs":{},"择":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"#":{"2":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"]":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.04526748971193416},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01694915254237288},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02252252252252252},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0784313725490196},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.03695150115473441},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.024513947590870666},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.02348993288590604},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.016304347826086956},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.04961832061068702}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"s":{"docs":{},"h":{"docs":{},"远":{"docs":{},"程":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},",":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"写":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"层":{"docs":{},"面":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"(":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}},"继":{"docs":{},"续":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"就":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"说":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"总":{"docs":{},"是":{"docs":{},"从":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"到":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"结":{"docs":{},"束":{"docs":{},"的":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"不":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"别":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"或":{"docs":{},"者":{"docs":{},"从":{"docs":{},"别":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"跳":{"docs":{},"进":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},"写":{"docs":{},"法":{"docs":{},",":{"docs":{},"另":{"docs":{},"一":{"docs":{},"种":{"docs":{},"是":{"docs":{},"用":{"docs":{},"尖":{"docs":{},"括":{"docs":{},"号":{"docs":{},"表":{"docs":{},"示":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"多":{"docs":{},"次":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"规":{"docs":{},"定":{"docs":{},"新":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"会":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"同":{"docs":{},"名":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"请":{"docs":{},"问":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"查":{"docs":{},"找":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"做":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"?":{"docs":{},"(":{"docs":{},"提":{"docs":{},"示":{"docs":{},":":{"docs":{},"如":{"docs":{},"何":{"docs":{},"区":{"docs":{},"分":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"不":{"docs":{},"同":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"?":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"如":{"docs":{},"上":{"docs":{},"改":{"docs":{},"动":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"免":{"docs":{},"密":{"docs":{},"登":{"docs":{},"录":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"大":{"docs":{},"家":{"docs":{},"使":{"docs":{},"用":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"上":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"为":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}},"建":{"docs":{},"议":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"立":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"连":{"docs":{},"接":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"环":{"docs":{},"境":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"、":{"docs":{},"账":{"docs":{},"号":{"docs":{},"和":{"docs":{},"密":{"docs":{},"码":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"发":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},",":{"docs":{},"请":{"docs":{},"登":{"docs":{},"录":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"查":{"docs":{},"收":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"登":{"docs":{},"陆":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"?":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}},"禁":{"docs":{},"止":{"docs":{},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"上":{"docs":{},"安":{"docs":{},"装":{"docs":{},"软":{"docs":{},"件":{"docs":{},"、":{"docs":{},"运":{"docs":{},"行":{"docs":{},"与":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"无":{"docs":{},"关":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"或":{"docs":{},"者":{"docs":{},"破":{"docs":{},"环":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},"将":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"受":{"docs":{},"到":{"docs":{},"惩":{"docs":{},"罚":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"$":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.024271844660194174},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.0411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"让":{"docs":{},"你":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"一":{"docs":{},"行":{"docs":{},"是":{"docs":{},"上":{"docs":{},"一":{"docs":{},"条":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"输":{"docs":{},"出":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"我":{"docs":{},"们":{"docs":{},"特":{"docs":{},"别":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"行":{"docs":{},"是":{"docs":{},"你":{"docs":{},"要":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.01646090534979424}}},"{":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{},"_":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"}":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"docs":{}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"}":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"&":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"&":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"{":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"t":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.04198473282442748}},"t":{"1":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"docs":{}}},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"t":{"1":{"docs":{},"、":{"docs":{},"t":{"0":{"docs":{},"进":{"docs":{},"行":{"docs":{},"或":{"docs":{},"操":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"再":{"docs":{},"判":{"docs":{},"断":{"docs":{},"其":{"docs":{},"值":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"1":{"docs":{},"。":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"不":{"docs":{},"在":{"docs":{},"产":{"docs":{},"生":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"成":{"docs":{},"立":{"docs":{},"为":{"1":{"docs":{},",":{"docs":{},"失":{"docs":{},"败":{"docs":{},"为":{"0":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"docs":{}}}}}},"docs":{}}}}}}},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"传":{"docs":{},"递":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"1":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}}},"和":{"docs":{},"t":{"2":{"docs":{},"作":{"docs":{},"为":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},",":{"docs":{},"而":{"docs":{},"调":{"docs":{},"用":{"docs":{},"后":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"t":{"0":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"2":{"docs":{},",":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{},"t":{"1":{"docs":{},",":{"docs":{},"t":{"2":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"docs":{}}}},"3":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"docs":{}}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"a":{"docs":{},"p":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.02824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02027027027027027},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.014705882352941176},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03225806451612903},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.016304347826086956}},")":{"docs":{},"看":{"docs":{},"起":{"docs":{},"来":{"docs":{},"很":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"最":{"docs":{},"大":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},")":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"及":{"docs":{},"其":{"docs":{},"相":{"docs":{},"关":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"如":{"docs":{},"类":{"docs":{},"型":{"docs":{},"、":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"、":{"docs":{},"存":{"docs":{},"储":{"docs":{},"位":{"docs":{},"置":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"会":{"docs":{},"随":{"docs":{},"着":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"而":{"docs":{},"形":{"docs":{},"成":{"docs":{},"层":{"docs":{},"级":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"在":{"docs":{},"不":{"docs":{},"同":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"之":{"docs":{},"间":{"docs":{},"正":{"docs":{},"确":{"docs":{},"解":{"docs":{},"析":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"(":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"与":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"解":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},".":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"最":{"docs":{},"终":{"docs":{},"把":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"把":{"docs":{},"一":{"docs":{},"个":{"docs":{},"看":{"docs":{},"似":{"docs":{},"被":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"地":{"docs":{},"组":{"docs":{},"织":{"docs":{},"起":{"docs":{},"来":{"docs":{},"的":{"docs":{},"文":{"docs":{},"本":{"docs":{},"转":{"docs":{},"化":{"docs":{},"成":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"“":{"docs":{},"树":{"docs":{},"”":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{},"其":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"提":{"docs":{},"取":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"更":{"docs":{},"加":{"docs":{},"精":{"docs":{},"简":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0205761316872428},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"d":{"docs":{},")":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"在":{"docs":{},"语":{"docs":{},"言":{"docs":{},"设":{"docs":{},"计":{"docs":{},"之":{"docs":{},"初":{"docs":{},",":{"docs":{},"设":{"docs":{},"计":{"docs":{},"者":{"docs":{},"都":{"docs":{},"会":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"该":{"docs":{},"语":{"docs":{},"言":{"docs":{},"支":{"docs":{},"持":{"docs":{},"表":{"docs":{},"达":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"给":{"docs":{},"出":{"docs":{},"定":{"docs":{},"型":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"开":{"docs":{},"头":{"docs":{},"。":{"docs":{},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"解":{"docs":{},"释":{"docs":{},"见":{"docs":{},"文":{"docs":{},"件":{"docs":{},"注":{"docs":{},"释":{"docs":{},"或":{"docs":{},"文":{"docs":{},"档":{"docs":{},"(":{"docs":{},"太":{"docs":{},"长":{"docs":{},"了":{"docs":{},"助":{"docs":{},"教":{"docs":{},"也":{"docs":{},"读":{"docs":{},"不":{"docs":{},"下":{"docs":{},"去":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"2":{"docs":{},"n":{"docs":{},"条":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},"形":{"docs":{},"成":{"docs":{},"了":{"docs":{},"两":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"内":{"docs":{},"部":{"docs":{},"的":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"重":{"docs":{},"要":{"docs":{},",":{"docs":{},"但":{"docs":{},"不":{"docs":{},"要":{"docs":{},"跨":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"移":{"docs":{},"动":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"来":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"它":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"中":{"docs":{},"通":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"正":{"docs":{},"则":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"以":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"整":{"docs":{},"数":{"docs":{},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"行":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"[":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"。":{"docs":{},"它":{"docs":{},"被":{"docs":{},"看":{"docs":{},"成":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"取":{"docs":{},"负":{"docs":{},"符":{"docs":{},"号":{"docs":{},"、":{"docs":{},"后":{"docs":{},"面":{"docs":{},"是":{"docs":{},"它":{"docs":{},"的":{"docs":{},"绝":{"docs":{},"对":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"'":{"1":{"9":{"9":{"6":{"docs":{},":":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}},"o":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.013071895424836602}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}},"e":{"docs":{},"n":{"docs":{},",":{"docs":{},"假":{"docs":{},"分":{"docs":{},"支":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"2":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"z":{"0":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{},"s":{"docs":{},"h":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},",":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"_":{"docs":{},"]":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"a":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"~":{"0":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}},"/":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{},"使":{"docs":{},"修":{"docs":{},"改":{"docs":{},"生":{"docs":{},"效":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"z":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"!":{"docs":{},"这":{"docs":{},"三":{"docs":{},"个":{"docs":{},"单":{"docs":{},"目":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"和":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"a":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"见":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"设":{"docs":{},"置":{"docs":{},"每":{"docs":{},"次":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}},"般":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"直":{"docs":{},"接":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"所":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"效":{"docs":{},"率":{"docs":{},"比":{"docs":{},"较":{"docs":{},"差":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"多":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"都":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"进":{"docs":{},"行":{"docs":{},"更":{"docs":{},"深":{"docs":{},"入":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"程":{"docs":{},"序":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"更":{"docs":{},"多":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"效":{"docs":{},"、":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"指":{"docs":{},"令":{"docs":{},"以":{"docs":{},"后":{"docs":{},"是":{"docs":{},"否":{"docs":{},"还":{"docs":{},"会":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},"、":{"docs":{},"当":{"docs":{},"前":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"都":{"docs":{},"能":{"docs":{},"够":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"来":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"中":{"docs":{},"某":{"docs":{},"些":{"docs":{},"代":{"docs":{},"码":{"docs":{},"是":{"docs":{},"否":{"docs":{},"能":{"docs":{},"够":{"docs":{},"提":{"docs":{},"出":{"docs":{},"到":{"docs":{},"循":{"docs":{},"环":{"docs":{},"外":{"docs":{},"面":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"次":{"docs":{},"数":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"已":{"docs":{},"知":{"docs":{},"的":{"docs":{},"常":{"docs":{},"数":{"docs":{},"等":{"docs":{},"等":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"优":{"docs":{},"化":{"docs":{},"离":{"docs":{},"不":{"docs":{},"开":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"求":{"docs":{},"解":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"或":{"docs":{},"多":{"docs":{},"次":{"docs":{},",":{"docs":{},"?":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}},"节":{"docs":{},"都":{"docs":{},"会":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"的":{"docs":{},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},"给":{"docs":{},"出":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"大":{"docs":{},"家":{"docs":{},"查":{"docs":{},"阅":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}},"栏":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"嘛":{"docs":{},",":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"必":{"docs":{},"要":{"docs":{},"吗":{"docs":{},"?":{"docs":{},"其":{"docs":{},"实":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"是":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"有":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"由":{"docs":{},"一":{"docs":{},"条":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"t":{"2":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"不":{"docs":{},"再":{"docs":{},"赘":{"docs":{},"述":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"如":{"docs":{},"取":{"docs":{},"负":{"docs":{},"、":{"docs":{},"取":{"docs":{},"位":{"docs":{},"反":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}},"个":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"例":{"docs":{},"子":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"任":{"docs":{},"意":{"docs":{},"多":{"docs":{},"条":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"是":{"docs":{},"活":{"docs":{},"的":{"docs":{},"(":{"docs":{},"也":{"docs":{},"叫":{"docs":{},"“":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"”":{"docs":{},"、":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"该":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"具":{"docs":{},"有":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"以":{"docs":{},"后":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"换":{"docs":{},"句":{"docs":{},"话":{"docs":{},"说":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"在":{"docs":{},"该":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"到":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"重":{"docs":{},"新":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"之":{"docs":{},"间":{"docs":{},"存":{"docs":{},"在":{"docs":{},"着":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"每":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"集":{"docs":{},"合":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"后":{"docs":{},"继":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"处":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"出":{"docs":{},"口":{"docs":{},"必":{"docs":{},"须":{"docs":{},"也":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{},"一":{"docs":{},"组":{"docs":{},"被":{"docs":{},"连":{"docs":{},"续":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{},"一":{"docs":{},"段":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"对":{"docs":{},"象":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"之":{"docs":{},"为":{"docs":{},"元":{"docs":{},"素":{"docs":{},"类":{"docs":{},"型":{"docs":{},")":{"docs":{},"。":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"包":{"docs":{},"含":{"docs":{},"两":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"元":{"docs":{},"素":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"长":{"docs":{},"度":{"docs":{},"(":{"docs":{},"即":{"docs":{},"元":{"docs":{},"素":{"docs":{},"数":{"docs":{},"量":{"docs":{},")":{"docs":{},"。":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"仅":{"docs":{},"能":{"docs":{},"参":{"docs":{},"与":{"docs":{},"下":{"docs":{},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"主":{"docs":{},"要":{"docs":{},"由":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"构":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"是":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"。":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"是":{"docs":{},"指":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"量":{"docs":{},"值":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"它":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"于":{"docs":{},"在":{"docs":{},"中":{"docs":{},"端":{"docs":{},"直":{"docs":{},"接":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"些":{"docs":{},"计":{"docs":{},"算":{"docs":{},"以":{"docs":{},"降":{"docs":{},"低":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"开":{"docs":{},"销":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"可":{"docs":{},"能":{"docs":{},"带":{"docs":{},"来":{"docs":{},"困":{"docs":{},"惑":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"定":{"docs":{},"能":{"docs":{},"找":{"docs":{},"到":{"docs":{},"一":{"docs":{},"种":{"docs":{},"不":{"docs":{},"和":{"docs":{},"周":{"docs":{},"围":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"点":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"上":{"docs":{},"图":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"之":{"docs":{},"类":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"后":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}},",":{"docs":{},"这":{"docs":{},"些":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"想":{"docs":{},"要":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"种":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}},"每":{"docs":{},"一":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"都":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},",":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"能":{"docs":{},"体":{"docs":{},"现":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"确":{"docs":{},"实":{"docs":{},"想":{"docs":{},"借":{"docs":{},"助":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},":":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"间":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"当":{"docs":{},"前":{"docs":{},"实":{"docs":{},"验":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{},"的":{"docs":{},"是":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"区":{"docs":{},"域":{"docs":{},",":{"docs":{},"正":{"docs":{},"是":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"区":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"为":{"docs":{},"腾":{"docs":{},"空":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"而":{"docs":{},"取":{"docs":{},"出":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"。":{"docs":{},"值":{"docs":{},"得":{"docs":{},"一":{"docs":{},"提":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"区":{"docs":{},"域":{"docs":{},"中":{"docs":{},"还":{"docs":{},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"处":{"docs":{},"仍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"关":{"docs":{},"于":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}},"甚":{"docs":{},"至":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}},"外":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}},"仓":{"docs":{},"库":{"docs":{},"链":{"docs":{},"接":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"下":{"docs":{},"载":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"库":{"docs":{},"或":{"docs":{},"者":{"docs":{},"自":{"docs":{},"己":{"docs":{},"编":{"docs":{},"译":{"docs":{},"安":{"docs":{},"装":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"官":{"docs":{},"方":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}},"位":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"支":{"docs":{},"持":{"docs":{},"存":{"docs":{},"在":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},",":{"docs":{},"而":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"请":{"docs":{},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"值":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"将":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"值":{"docs":{},"放":{"docs":{},"入":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"到":{"docs":{},"指":{"docs":{},"定":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"有":{"docs":{},"符":{"docs":{},"号":{"docs":{},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"范":{"docs":{},"围":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"时":{"docs":{},"记":{"docs":{},"得":{"docs":{},"加":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"默":{"docs":{},"认":{"docs":{},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}},"的":{"docs":{},"是":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"“":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"”":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"其":{"docs":{},"数":{"docs":{},"目":{"docs":{},"不":{"docs":{},"受":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"不":{"docs":{},"够":{"docs":{},"用":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{},"它":{"docs":{},"使":{"docs":{},"用":{"docs":{},"基":{"docs":{},"于":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"来":{"docs":{},"描":{"docs":{},"述":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"一":{"docs":{},"个":{"docs":{},"典":{"docs":{},"型":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"把":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"得":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仓":{"docs":{},"库":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}},"名":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"却":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"个":{"docs":{},"教":{"docs":{},"程":{"docs":{},"进":{"docs":{},"行":{"docs":{},"升":{"docs":{},"级":{"docs":{},",":{"docs":{},"升":{"docs":{},"级":{"docs":{},"时":{"docs":{},"注":{"docs":{},"意":{"docs":{},"备":{"docs":{},"份":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}},"尝":{"docs":{},"试":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}},"把":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"分":{"docs":{},"析":{"docs":{},"符":{"docs":{},"号":{"docs":{},"含":{"docs":{},"义":{"docs":{},"和":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{},"分":{"docs":{},"析":{"docs":{},"符":{"docs":{},"号":{"docs":{},"含":{"docs":{},"义":{"docs":{},"是":{"docs":{},"指":{"docs":{},"对":{"docs":{},"于":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"所":{"docs":{},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"主":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"索":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"是":{"docs":{},"否":{"docs":{},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"符":{"docs":{},"合":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"所":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"都":{"docs":{},"经":{"docs":{},"过":{"docs":{},"声":{"docs":{},"明":{"docs":{},"等":{"docs":{},"。":{"docs":{},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"其":{"docs":{},"语":{"docs":{},"义":{"docs":{},"未":{"docs":{},"必":{"docs":{},"正":{"docs":{},"确":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"未":{"docs":{},"必":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"含":{"docs":{},"义":{"docs":{},"在":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"使":{"docs":{},"得":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"无":{"docs":{},"法":{"docs":{},"确":{"docs":{},"定":{"docs":{},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"确":{"docs":{},"切":{"docs":{},"含":{"docs":{},"义":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"是":{"docs":{},"很":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"成":{"docs":{},"功":{"docs":{},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"则":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"对":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"来":{"docs":{},"说":{"docs":{},"是":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},"可":{"docs":{},"以":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"适":{"docs":{},"配":{"docs":{},"不":{"docs":{},"同":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"(":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"合":{"docs":{},"并":{"docs":{},"后":{"docs":{},"边":{"docs":{},"数":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"不":{"docs":{},"合":{"docs":{},"并":{"docs":{},"但":{"docs":{},"强":{"docs":{},"制":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"同":{"docs":{},"色":{"docs":{},"吗":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"合":{"docs":{},"并":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"吗":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}},"跟":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"产":{"docs":{},"生":{"docs":{},"出":{"docs":{},"连":{"docs":{},"接":{"docs":{},"许":{"docs":{},"多":{"docs":{},"边":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"反":{"docs":{},"而":{"docs":{},"使":{"docs":{},"得":{"docs":{},"后":{"docs":{},"续":{"docs":{},"染":{"docs":{},"色":{"docs":{},"困":{"docs":{},"难":{"docs":{},",":{"docs":{},"不":{"docs":{},"得":{"docs":{},"不":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"这":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"更":{"docs":{},"早":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"样":{"docs":{},"合":{"docs":{},"并":{"docs":{},"的":{"docs":{},"点":{"docs":{},"数":{"docs":{},"比":{"docs":{},"较":{"docs":{},"少":{"docs":{},",":{"docs":{},"优":{"docs":{},"化":{"docs":{},"效":{"docs":{},"果":{"docs":{},"差":{"docs":{},"。":{"docs":{},"这":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"更":{"docs":{},"早":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"了":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"更":{"docs":{},"多":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"化":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"进":{"docs":{},"而":{"docs":{},"简":{"docs":{},"化":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}},"发":{"docs":{},"现":{"docs":{},"问":{"docs":{},"题":{"docs":{},"在":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"强":{"docs":{},"行":{"docs":{},"把":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"生":{"docs":{},"命":{"docs":{},"周":{"docs":{},"期":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"在":{"docs":{},"了":{"docs":{},"一":{"docs":{},"起":{"docs":{},",":{"docs":{},"而":{"docs":{},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"只":{"docs":{},"要":{"docs":{},"求":{"docs":{},"在":{"docs":{},"传":{"docs":{},"参":{"docs":{},"时":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"位":{"docs":{},"于":{"docs":{},"指":{"docs":{},"定":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"其":{"docs":{},"它":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"也":{"docs":{},"管":{"docs":{},"不":{"docs":{},"着":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"到":{"docs":{},"底":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"反":{"docs":{},"驳":{"docs":{},":":{"docs":{},"我":{"docs":{},"们":{"docs":{},"其":{"docs":{},"实":{"docs":{},"也":{"docs":{},"关":{"docs":{},"心":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"让":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"有":{"docs":{},"助":{"docs":{},"于":{"docs":{},"减":{"docs":{},"少":{"docs":{},"无":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"没":{"docs":{},"错":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"可":{"docs":{},"以":{"docs":{},"交":{"docs":{},"给":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"和":{"docs":{},"后":{"docs":{},"续":{"docs":{},"优":{"docs":{},"化":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"更":{"docs":{},"关":{"docs":{},"注":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},",":{"docs":{},"应":{"docs":{},"当":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"传":{"docs":{},"参":{"docs":{},"时":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"合":{"docs":{},"并":{"docs":{},"为":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"b":{"docs":{},"n":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"最":{"docs":{},"后":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"链":{"docs":{},"接":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"能":{"docs":{},"会":{"docs":{},"用":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"&":{"docs":{},"&":{"docs":{},"和":{"docs":{},"|":{"docs":{},"|":{"docs":{},",":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"以":{"docs":{},"理":{"docs":{},"解":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"下":{"docs":{},"面":{"docs":{},"直":{"docs":{},"接":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"有":{"docs":{},"些":{"docs":{},"系":{"docs":{},"统":{"docs":{},"自":{"docs":{},"带":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"希":{"docs":{},"望":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"需":{"docs":{},"要":{"docs":{},"想":{"docs":{},"办":{"docs":{},"法":{"docs":{},"把":{"docs":{},"这":{"docs":{},"些":{"docs":{},"无":{"docs":{},"限":{"docs":{},"多":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"“":{"docs":{},"塞":{"docs":{},"”":{"docs":{},"到":{"docs":{},"有":{"docs":{},"限":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"使":{"docs":{},"用":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"把":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"当":{"docs":{},"前":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"不":{"docs":{},"到":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"测":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"不":{"docs":{},"能":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"标":{"docs":{},"识":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"上":{"docs":{},"述":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"可":{"docs":{},"以":{"docs":{},"等":{"docs":{},"价":{"docs":{},"地":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"指":{"docs":{},"令":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"便":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"优":{"docs":{},"化":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"中":{"docs":{},"只":{"docs":{},"操":{"docs":{},"作":{"docs":{},"了":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"docs":{}}}}}},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"实":{"docs":{},"现":{"docs":{},"难":{"docs":{},"度":{"docs":{},"较":{"docs":{},"高":{"docs":{},"且":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"优":{"docs":{},"化":{"docs":{},"目":{"docs":{},"标":{"docs":{},"可":{"docs":{},"能":{"docs":{},"相":{"docs":{},"对":{"docs":{},"难":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"两":{"docs":{},"种":{"docs":{},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"案":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"并":{"docs":{},"解":{"docs":{},"压":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"到":{"docs":{},"你":{"docs":{},"喜":{"docs":{},"欢":{"docs":{},"的":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},",":{"docs":{},"由":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"生":{"docs":{},"成":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"上":{"docs":{},"正":{"docs":{},"确":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"是":{"docs":{},"大":{"docs":{},"家":{"docs":{},"首":{"docs":{},"次":{"docs":{},"接":{"docs":{},"触":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},",":{"docs":{},"在":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"叙":{"docs":{},"述":{"docs":{},"了":{"docs":{},"安":{"docs":{},"装":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"应":{"docs":{},"用":{"docs":{},"商":{"docs":{},"店":{"docs":{},"可":{"docs":{},"以":{"docs":{},"很":{"docs":{},"容":{"docs":{},"易":{"docs":{},"地":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"该":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}},"等":{"docs":{},"于":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"当":{"docs":{},"变":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"改":{"docs":{},"为":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}},"开":{"docs":{},"头":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"以":{"docs":{},"被":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"始":{"docs":{},",":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"上":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"各":{"docs":{},"种":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"结":{"docs":{},"点":{"docs":{},"。":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"。":{"docs":{},"简":{"docs":{},"而":{"docs":{},"言":{"docs":{},"之":{"docs":{},",":{"docs":{},"一":{"docs":{},"份":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"开":{"docs":{},"始":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"管":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"函":{"docs":{},"数":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}},"计":{"docs":{},"数":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"访":{"docs":{},"问":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"分":{"docs":{},"支":{"docs":{},"条":{"docs":{},"件":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"往":{"docs":{},"往":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"调":{"docs":{},"用":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"环":{"docs":{},"境":{"docs":{},"正":{"docs":{},"确":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"得":{"docs":{},"到":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"开":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},"o":{"docs":{},"f":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"完":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}},"一":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}}}},"汇":{"docs":{},"编":{"docs":{},"中":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"docs":{},"子":{"docs":{},"函":{"docs":{},"数":{"docs":{},"直":{"docs":{},"至":{"docs":{},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"按":{"docs":{},"照":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"本":{"docs":{},"文":{"docs":{},"档":{"docs":{},"的":{"docs":{},"前":{"docs":{},"几":{"docs":{},"节":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"上":{"docs":{},"文":{"docs":{},"说":{"docs":{},"的":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"这":{"docs":{},"个":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}},"钮":{"docs":{},"的":{"docs":{},"下":{"docs":{},"方":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{},"的":{"docs":{},"逆":{"docs":{},"序":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"所":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},",":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"其":{"docs":{},"中":{"docs":{},"写":{"docs":{},"入":{"docs":{},"如":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"能":{"docs":{},"够":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"夹":{"docs":{},"下":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}},"中":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"(":{"docs":{},"强":{"docs":{},"烈":{"docs":{},"建":{"docs":{},"议":{"docs":{},")":{"docs":{},"。":{"docs":{},"出":{"docs":{},"于":{"docs":{},"方":{"docs":{},"便":{"docs":{},"考":{"docs":{},"虑":{"docs":{},",":{"docs":{},"我":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"文":{"docs":{},"件":{"docs":{},"实":{"docs":{},"例":{"docs":{},".":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"是":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"结":{"docs":{},"构":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},")":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"机":{"docs":{},"器":{"docs":{},"上":{"docs":{},"、":{"docs":{},"把":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"却":{"docs":{},"要":{"docs":{},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"安":{"docs":{},"装":{"docs":{},"成":{"docs":{},"功":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"有":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"和":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"匹":{"docs":{},"配":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"匹":{"docs":{},"配":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"模":{"docs":{},"拟":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"器":{"docs":{},"和":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"易":{"docs":{},"内":{"docs":{},"核":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"只":{"docs":{},"能":{"docs":{},"在":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"中":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"给":{"docs":{},"出":{"docs":{},"运":{"docs":{},"行":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"(":{"docs":{},"编":{"docs":{},"译":{"docs":{},"时":{"docs":{},"请":{"docs":{},"不":{"docs":{},"要":{"docs":{},"开":{"docs":{},"启":{"docs":{},"任":{"docs":{},"何":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},")":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"式":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"里":{"docs":{},"除":{"docs":{},"了":{"docs":{},"类":{"docs":{},"型":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"之":{"docs":{},"外":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"类":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"它":{"docs":{},"用":{"docs":{},"于":{"docs":{},"处":{"docs":{},"理":{"docs":{},"产":{"docs":{},"生":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"对":{"docs":{},"底":{"docs":{},"层":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{},"在":{"docs":{},"本":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"还":{"docs":{},"不":{"docs":{},"知":{"docs":{},"道":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"这":{"docs":{},"个":{"docs":{},"树":{"docs":{},"并":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"树":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"的":{"docs":{},"根":{"docs":{},"结":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"整":{"docs":{},"颗":{"docs":{},"树":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"针":{"docs":{},"对":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},"作":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"如":{"docs":{},"名":{"docs":{},"称":{"docs":{},"检":{"docs":{},"查":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"等":{"docs":{},"。":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"种":{"docs":{},"基":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"再":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"一":{"docs":{},"次":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"做":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"并":{"docs":{},"以":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},"进":{"docs":{},"行":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"得":{"docs":{},"结":{"docs":{},"构":{"docs":{},"清":{"docs":{},"晰":{"docs":{},"且":{"docs":{},"便":{"docs":{},"于":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"的":{"docs":{},"不":{"docs":{},"同":{"docs":{},"节":{"docs":{},"点":{"docs":{},"调":{"docs":{},"用":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"一":{"docs":{},"种":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}},"的":{"docs":{},"目":{"docs":{},"的":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"树":{"docs":{},"状":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"进":{"docs":{},"行":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"本":{"docs":{},"质":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"逐":{"docs":{},"个":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"结":{"docs":{},"点":{"docs":{},"处":{"docs":{},"理":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"速":{"docs":{},"成":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":5.003267973856209}}}},"有":{"docs":{},"所":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"假":{"docs":{},"设":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"知":{"docs":{},"道":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"该":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"。":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"取":{"docs":{},"负":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"查":{"docs":{},"找":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"步":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"不":{"docs":{},"安":{"docs":{},"装":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"。":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"上":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"有":{"docs":{},"效":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"理":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"。":{"docs":{},"了":{"docs":{},"解":{"docs":{},"程":{"docs":{},"序":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"称":{"docs":{},"为":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"。":{"docs":{},"本":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"重":{"docs":{},"点":{"docs":{},"是":{"docs":{},"掌":{"docs":{},"握":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"将":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"识":{"docs":{},"别":{"docs":{},"出":{"docs":{},"程":{"docs":{},"序":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"保":{"docs":{},"留":{"docs":{},"字":{"docs":{},"、":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"算":{"docs":{},"符":{"docs":{},"、":{"docs":{},"分":{"docs":{},"界":{"docs":{},"符":{"docs":{},"等":{"docs":{},"单":{"docs":{},"词":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"即":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"把":{"docs":{},"识":{"docs":{},"别":{"docs":{},"结":{"docs":{},"果":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"以":{"docs":{},"供":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"是":{"docs":{},"在":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"针":{"docs":{},"对":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"串":{"docs":{},"建":{"docs":{},"立":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"并":{"docs":{},"对":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"到":{"docs":{},"你":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"里":{"docs":{},",":{"docs":{},"并":{"docs":{},"为":{"docs":{},"你":{"docs":{},"的":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"这":{"docs":{},"里":{"docs":{},"上":{"docs":{},"下":{"docs":{},"载":{"docs":{},"我":{"docs":{},"们":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"程":{"docs":{},"序":{"docs":{},"包":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"让":{"docs":{},"它":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}},",":{"2":{"1":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}},"docs":{},"以":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"标":{"docs":{},"记":{"docs":{},"对":{"docs":{},"这":{"docs":{},"种":{"docs":{},"对":{"docs":{},"计":{"docs":{},"算":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"有":{"docs":{},"贡":{"docs":{},"献":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"假":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"是":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"计":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"输":{"docs":{},"入":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"也":{"docs":{},"是":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":3.3357605177993523}},"和":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},")":{"docs":{},"配":{"docs":{},"置":{"docs":{},"好":{"docs":{},"实":{"docs":{},"验":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"(":{"docs":{},"如":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}},"用":{"docs":{},"户":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"指":{"docs":{},"南":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"】":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"栈":{"docs":{},"传":{"docs":{},"递":{"docs":{},"参":{"docs":{},"数":{"docs":{},"(":{"docs":{},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},":":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"规":{"docs":{},"定":{"docs":{},"a":{"0":{"docs":{},"至":{"docs":{},"a":{"7":{"docs":{},"存":{"docs":{},"放":{"docs":{},"不":{"docs":{},"下":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"递":{"docs":{},"(":{"docs":{},"为":{"docs":{},"了":{"docs":{},"降":{"docs":{},"低":{"docs":{},"大":{"docs":{},"家":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"超":{"docs":{},"过":{"8":{"docs":{},"个":{"docs":{},"的":{"docs":{},"传":{"docs":{},"参":{"docs":{},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"行":{"docs":{},"测":{"docs":{},"试":{"docs":{},")":{"docs":{},"。":{"docs":{},"若":{"docs":{},"参":{"docs":{},"数":{"docs":{},"v":{"docs":{},"i":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"x":{"docs":{},"j":{"docs":{},"中":{"docs":{},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"x":{"docs":{},"j":{"docs":{},"“":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"”":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},"任":{"docs":{},"选":{"docs":{},"一":{"docs":{},"个":{"docs":{},"a":{"0":{"docs":{},"~":{"docs":{},"a":{"7":{"docs":{},"之":{"docs":{},"外":{"docs":{},"的":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"t":{"docs":{},"k":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"先":{"docs":{},"通":{"docs":{},"过":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"将":{"docs":{},"v":{"docs":{},"i":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"t":{"docs":{},"k":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"“":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"”":{"docs":{},"t":{"docs":{},"k":{"docs":{},"(":{"docs":{},"建":{"docs":{},"议":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"t":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"“":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"”":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"手":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"它":{"docs":{},"无":{"docs":{},"需":{"docs":{},"也":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"s":{"docs":{},"p":{"docs":{},"。":{"docs":{},"在":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"后":{"docs":{},",":{"docs":{},"统":{"docs":{},"一":{"docs":{},"修":{"docs":{},"改":{"docs":{},"s":{"docs":{},"p":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}},"以":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"只":{"docs":{},"需":{"docs":{},"修":{"docs":{},"改":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},":":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"提":{"docs":{},"过":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"析":{"docs":{},"可":{"docs":{},"以":{"docs":{},"算":{"docs":{},"出":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}},"等":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"来":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"参":{"docs":{},"考":{"docs":{},"下":{"docs":{},"面":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},")":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"类":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}},"均":{"docs":{},"为":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"出":{"docs":{},"现":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"!":{"docs":{},"x":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"时":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"(":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}},"价":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"将":{"docs":{},"其":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"非":{"docs":{},"零":{"docs":{},"常":{"docs":{},"数":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"而":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"是":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"不":{"docs":{},"是":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}},"看":{"docs":{},"到":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"时":{"docs":{},"只":{"docs":{},"能":{"docs":{},"选":{"docs":{},"择":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}},"非":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"后":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"元":{"docs":{},"素":{"docs":{},"值":{"docs":{},"是":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"时":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"的":{"docs":{},"元":{"docs":{},"素":{"docs":{},"个":{"docs":{},"数":{"docs":{},"比":{"docs":{},"数":{"docs":{},"组":{"docs":{},"大":{"docs":{},"小":{"docs":{},"少":{"docs":{},",":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"元":{"docs":{},"素":{"docs":{},"都":{"docs":{},"回":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"为":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"docs":{}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"虽":{"docs":{},"然":{"docs":{},"也":{"docs":{},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"语":{"docs":{},"义":{"docs":{},"不":{"docs":{},"难":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"把":{"docs":{},"多":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"组":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"块":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"是":{"docs":{},"一":{"docs":{},"条":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"记":{"docs":{},"得":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"去":{"docs":{},"掉":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"名":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"值":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"分":{"docs":{},"组":{"docs":{},",":{"docs":{},"|":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"选":{"docs":{},"择":{"docs":{},",":{"docs":{},"*":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"逻":{"docs":{},"辑":{"docs":{},"假":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"预":{"docs":{},"留":{"docs":{},"一":{"docs":{},"块":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"4":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"docs":{}}}}}}}}}}}},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}},",":{"docs":{},"只":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"无":{"docs":{},"法":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"管":{"docs":{},"用":{"docs":{},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"把":{"docs":{},"它":{"docs":{},"放":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"试":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"标":{"docs":{},"志":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"计":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},",":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"跑":{"docs":{},"在":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"输":{"docs":{},"出":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"比":{"docs":{},"看":{"docs":{},"什":{"docs":{},"么":{"docs":{},"文":{"docs":{},"档":{"docs":{},"都":{"docs":{},"有":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},",":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"是":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"入":{"docs":{},",":{"docs":{},"输":{"docs":{},"出":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":10.017857142857142}}}}}},"测":{"docs":{},"试":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"你":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"经":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}},"时":{"docs":{},"并":{"docs":{},"构":{"docs":{},"建":{"docs":{},"它":{"docs":{},",":{"docs":{},"你":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"很":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"因":{"docs":{},"为":{"docs":{},"网":{"docs":{},"络":{"docs":{},"等":{"docs":{},"问":{"docs":{},"题":{"docs":{},"而":{"docs":{},"失":{"docs":{},"败":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"难":{"docs":{},"以":{"docs":{},"解":{"docs":{},"决":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"库":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"是":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"所":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"链":{"docs":{},"接":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"算":{"docs":{},"符":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025}}}}},"通":{"docs":{},"过":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"把":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"例":{"docs":{},"子":{"docs":{},"学":{"docs":{},"习":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":10},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":10},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":10},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":10},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":10},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":10},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":10},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":10},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":10},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":10},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":10},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":10}},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仅":{"docs":{},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"对":{"docs":{},"应":{"docs":{},"到":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"的":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"4":{"0":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"把":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"锅":{"docs":{},"甩":{"docs":{},"给":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"这":{"docs":{},"大":{"docs":{},"大":{"docs":{},"提":{"docs":{},"升":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"自":{"docs":{},"由":{"docs":{},"度":{"docs":{},",":{"docs":{},"属":{"docs":{},"于":{"docs":{},"合":{"docs":{},"理":{"docs":{},"分":{"docs":{},"锅":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"将":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"精":{"docs":{},"简":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"为":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"处":{"docs":{},"理":{"docs":{},"提":{"docs":{},"供":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"能":{"docs":{},"够":{"docs":{},"确":{"docs":{},"保":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"为":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"打":{"docs":{},"下":{"docs":{},"坚":{"docs":{},"实":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"确":{"docs":{},"保":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"出":{"docs":{},"现":{"docs":{},"不":{"docs":{},"可":{"docs":{},"预":{"docs":{},"知":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"解":{"docs":{},"析":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"它":{"docs":{},"们":{"docs":{},"在":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"写":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"常":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"包":{"docs":{},"含":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"调":{"docs":{},"度":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"是":{"docs":{},"指":{"docs":{},"选":{"docs":{},"用":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"如":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"章":{"docs":{},"节":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"里":{"docs":{},")":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"你":{"docs":{},"手":{"docs":{},"动":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"好":{"docs":{},"环":{"docs":{},"境":{"docs":{},"以":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"强":{"docs":{},"烈":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"你":{"docs":{},"构":{"docs":{},"建":{"docs":{},"运":{"docs":{},"行":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"初":{"docs":{},"始":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"较":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"对":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"首":{"docs":{},"先":{"docs":{},"把":{"docs":{},"文":{"docs":{},"件":{"docs":{},"夹":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"把":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"标":{"docs":{},"识":{"docs":{},"所":{"docs":{},"有":{"docs":{},"计":{"docs":{},"算":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},")":{"docs":{},"或":{"docs":{},"输":{"docs":{},"出":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"它":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"对":{"docs":{},"从":{"docs":{},"函":{"docs":{},"数":{"docs":{},"外":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"单":{"docs":{},"元":{"docs":{},"有":{"docs":{},"影":{"docs":{},"响":{"docs":{},"(":{"docs":{},"全":{"docs":{},"局":{"docs":{},"内":{"docs":{},"存":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"外":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"访":{"docs":{},"问":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"参":{"docs":{},"考":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"新":{"docs":{},"增":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"有":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"分":{"docs":{},"配":{"docs":{},"给":{"docs":{},"当":{"docs":{},"前":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{},":":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"\"":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"f":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"i":{"2":{"docs":{},"p":{"0":{"docs":{},"_":{"docs":{},"m":{"2":{"docs":{},"p":{"0":{"docs":{},"\"":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}}},"docs":{}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"u":{"docs":{},"n":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}},"(":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},")":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},";":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"代":{"docs":{},"表":{"docs":{},"分":{"docs":{},"号":{"docs":{},"被":{"docs":{},"解":{"docs":{},"析":{"docs":{},"以":{"docs":{},"后":{"docs":{},"会":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"=":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"_":{"docs":{},"t":{"docs":{},"k":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"\"":{"docs":{},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}}},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}},"$":{"docs":{},"{":{"docs":{},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"}":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"h":{"docs":{},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"h":{"docs":{},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"h":{"docs":{},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"@":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}},"【":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"o":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"后":{"docs":{},"就":{"docs":{},"能":{"docs":{},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"处":{"docs":{},"理":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"官":{"docs":{},"方":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"它":{"docs":{},"的":{"docs":{},"教":{"docs":{},"程":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"一":{"docs":{},"份":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}},"面":{"docs":{},"的":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"插":{"docs":{},"入":{"docs":{},"上":{"docs":{},"述":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"指":{"docs":{},"令":{"docs":{},"后":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"及":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"常":{"docs":{},"识":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}},"括":{"docs":{},"号":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"法":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}},"下":{"docs":{},"讲":{"docs":{},"述":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"中":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"器":{"docs":{},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"产":{"docs":{},"生":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"但":{"docs":{},"我":{"docs":{},"们":{"docs":{},"加":{"docs":{},"上":{"docs":{},"参":{"docs":{},"数":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"有":{"docs":{},"时":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"后":{"docs":{},"续":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"告":{"docs":{},"诉":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}},"是":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"是":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"确":{"docs":{},"实":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"了":{"docs":{},",":{"docs":{},"但":{"docs":{},"并":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{},"直":{"docs":{},"观":{"docs":{},":":{"docs":{},"我":{"docs":{},"们":{"docs":{},"一":{"docs":{},"开":{"docs":{},"始":{"docs":{},"学":{"docs":{},"习":{"docs":{},"c":{"docs":{},"或":{"docs":{},"者":{"docs":{},"别":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"讲":{"docs":{},"的":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"二":{"docs":{},"元":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"由":{"docs":{},"两":{"docs":{},"个":{"docs":{},"子":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"组":{"docs":{},"成":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},":":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"c":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}},"为":{"docs":{},"了":{"docs":{},"实":{"docs":{},"现":{"docs":{},"简":{"docs":{},"便":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"这":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"为":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"时":{"docs":{},"候":{"docs":{},"l":{"docs":{},"d":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"另":{"docs":{},"外":{"docs":{},"这":{"docs":{},"里":{"docs":{},"也":{"docs":{},"有":{"docs":{},"(":{"docs":{},"非":{"docs":{},"官":{"docs":{},"方":{"docs":{},"的":{"docs":{},")":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"法":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"并":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"块":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"是":{"docs":{},"指":{"docs":{},"一":{"docs":{},"段":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"序":{"docs":{},"列":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"的":{"docs":{},"划":{"docs":{},"分":{"docs":{},"算":{"docs":{},"法":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"单":{"docs":{},":":{"docs":{},"从":{"docs":{},"头":{"docs":{},"到":{"docs":{},"尾":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"当":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"情":{"docs":{},"况":{"docs":{},"时":{"docs":{},"结":{"docs":{},"束":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"并":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"建":{"docs":{},"立":{"docs":{},"过":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"便":{"docs":{},"捷":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{},"各":{"docs":{},"种":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"也":{"docs":{},"简":{"docs":{},"化":{"docs":{},"了":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"标":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}},"础":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"模":{"docs":{},"式":{"docs":{},"都":{"docs":{},"在":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}},"于":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"思":{"docs":{},"路":{"docs":{},":":{"docs":{},"针":{"docs":{},"对":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"三":{"docs":{},"个":{"docs":{},"特":{"docs":{},"点":{"docs":{},",":{"docs":{},"已":{"docs":{},"经":{"docs":{},"求":{"docs":{},"出":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"合":{"docs":{},"并":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"(":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"法":{"docs":{},")":{"docs":{},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"其":{"docs":{},"他":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"你":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}},"然":{"docs":{},"遵":{"docs":{},"循":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},"据":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}},"助":{"docs":{},"教":{"docs":{},"在":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},"强":{"docs":{},"烈":{"docs":{},"建":{"docs":{},"议":{"docs":{},"使":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"每":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"在":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"本":{"docs":{},"身":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"里":{"docs":{},"已":{"docs":{},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"如":{"docs":{},"何":{"docs":{},"进":{"docs":{},"行":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},"如":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}},"的":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"作":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"但":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"号":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"必":{"docs":{},"须":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"左":{"docs":{},"值":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"检":{"docs":{},"查":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"号":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"只":{"docs":{},"能":{"docs":{},"是":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"。":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"内":{"docs":{},"部":{"docs":{},"除":{"docs":{},"了":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"进":{"docs":{},"入":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"加":{"docs":{},"进":{"docs":{},"该":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"举":{"docs":{},"例":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"示":{"docs":{},"例":{"docs":{},"改":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"对":{"docs":{},"应":{"docs":{},"框":{"docs":{},"架":{"docs":{},"源":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}}}}}}}}}}},"阶":{"docs":{},"段":{"docs":{},"分":{"docs":{},"工":{"docs":{},"建":{"docs":{},"议":{"docs":{},":":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"前":{"docs":{},"端":{"docs":{},",":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"设":{"docs":{},"计":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"举":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"将":{"docs":{},"局":{"docs":{},"部":{"docs":{},"的":{"docs":{},"几":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"更":{"docs":{},"优":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"的":{"docs":{},"一":{"docs":{},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"并":{"docs":{},"非":{"docs":{},"特":{"docs":{},"指":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},"此":{"docs":{},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},"较":{"docs":{},"为":{"docs":{},"琐":{"docs":{},"碎":{"docs":{},",":{"docs":{},"建":{"docs":{},"议":{"docs":{},"按":{"docs":{},"需":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"它":{"docs":{},"使":{"docs":{},"得":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"进":{"docs":{},"入":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"钥":{"docs":{},"添":{"docs":{},"加":{"docs":{},"到":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}},",":{"docs":{},"将":{"docs":{},"对":{"docs":{},"我":{"docs":{},"们":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"当":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},",":{"docs":{},"由":{"docs":{},"此":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"并":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},",":{"docs":{},"将":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"栈":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"示":{"docs":{},"例":{"docs":{},",":{"docs":{},"讲":{"docs":{},"述":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},",":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"其":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"受":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"树":{"docs":{},"输":{"docs":{},"入":{"docs":{},",":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"账":{"docs":{},"号":{"docs":{},"上":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"将":{"docs":{},"其":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"下":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}},"*":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.03409090909090909}},"、":{"docs":{},"整":{"docs":{},"除":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"(":{"docs":{},"i":{"3":{"2":{"docs":{},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591}}},"[":{"3":{"docs":{},"]":{"docs":{},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796}}}}},"docs":{}}},"docs":{}},"docs":{}}}},"|":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.03954802259887006},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.013513513513513514},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.029411764705882353},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.07547169811320754},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.056338028169014086},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.05319148936170213},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.07317073170731707},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.029411764705882353},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.08783783783783784},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05405405405405406},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.078125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.08888888888888889},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.08130081300813008},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0375},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.08494208494208494},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.08846153846153847},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.10480349344978165},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.102880658436214},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.006762468300929839},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.07718120805369127},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.12627551020408162}},"|":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}}},"—":{"docs":{},"—":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.00847457627118644},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},";":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"后":{"docs":{},"端":{"docs":{},"中":{"docs":{},",":{"docs":{},"将":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}},"种":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"类":{"docs":{},"型":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"对":{"docs":{},"应":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"成":{"docs":{},"员":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"的":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"“":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"的":{"docs":{},"是":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"存":{"docs":{},"就":{"docs":{},"行":{"docs":{},"。":{"docs":{},"这":{"docs":{},"篇":{"docs":{},"论":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"并":{"docs":{},"改":{"docs":{},"进":{"docs":{},"了":{"docs":{},"前":{"docs":{},"人":{"docs":{},"的":{"docs":{},"类":{"docs":{},"似":{"docs":{},"优":{"docs":{},"化":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"添":{"docs":{},"加":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"降":{"docs":{},"低":{"docs":{},"实":{"docs":{},"验":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"部":{"docs":{},"分":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"据":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"完":{"docs":{},"成":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"设":{"docs":{},"计":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"出":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"加":{"docs":{},"法":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"载":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"操":{"docs":{},"作":{"docs":{},":":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"加":{"docs":{},"载":{"docs":{},"它":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"访":{"docs":{},"问":{"docs":{},"它":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"可":{"docs":{},"能":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"际":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"交":{"docs":{},"一":{"docs":{},"份":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"单":{"docs":{},"独":{"docs":{},"为":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"括":{"docs":{},"起":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"内":{"docs":{},"生":{"docs":{},"效":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"是":{"docs":{},"让":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"遵":{"docs":{},"循":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"还":{"docs":{},"不":{"docs":{},"够":{"docs":{},",":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"也":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"不":{"docs":{},"像":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"一":{"docs":{},"样":{"docs":{},"保":{"docs":{},"留":{"docs":{},"了":{"docs":{},"那":{"docs":{},"么":{"docs":{},"多":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"至":{"docs":{},"于":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"一":{"docs":{},"样":{"docs":{},"底":{"docs":{},"层":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"完":{"docs":{},"整":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},"可":{"docs":{},"能":{"docs":{},"长":{"docs":{},"这":{"docs":{},"样":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"将":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"完":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"顶":{"docs":{},"向":{"docs":{},"下":{"docs":{},"地":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"够":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"(":{"docs":{},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"求":{"docs":{},"请":{"docs":{},"看":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"的":{"docs":{},"首":{"docs":{},"页":{"docs":{},")":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"回":{"docs":{},"顾":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},"后":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"将":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}},"后":{"docs":{},"端":{"docs":{},"(":{"docs":{},"两":{"docs":{},"周":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"竞":{"docs":{},"赛":{"docs":{},"第":{"docs":{},"二":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"替":{"docs":{},"代":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}},"备":{"docs":{},"问":{"docs":{},"题":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"将":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"放":{"docs":{},"到":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"两":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"相":{"docs":{},"加":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"入":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},":":{"docs":{},"所":{"docs":{},"有":{"docs":{},"传":{"docs":{},"参":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"0":{"docs":{},"~":{"docs":{},"a":{"7":{"docs":{},")":{"docs":{},"都":{"docs":{},"是":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"放":{"docs":{},"到":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"中":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}},"每":{"docs":{},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"对":{"docs":{},"应":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"上":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"后":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"提":{"docs":{},"升":{"docs":{},"为":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"数":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"改":{"docs":{},"为":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"再":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"再":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"变":{"docs":{},"量":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"插":{"docs":{},"入":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},")":{"docs":{},"处":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},",":{"docs":{},"届":{"docs":{},"时":{"docs":{},"再":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"其":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"法":{"docs":{},")":{"docs":{},"。":{"docs":{},"如":{"docs":{},"上":{"docs":{},"例":{"docs":{},"所":{"docs":{},"示":{"docs":{},",":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}},"知":{"docs":{},"道":{"docs":{},")":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"它":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"用":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}},"会":{"docs":{},"有":{"docs":{},"多":{"docs":{},"函":{"docs":{},"数":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{},"所":{"docs":{},"以":{"docs":{},"现":{"docs":{},"在":{"docs":{},"关":{"docs":{},"于":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"讨":{"docs":{},"论":{"docs":{},",":{"docs":{},"就":{"docs":{},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"标":{"docs":{},"签":{"docs":{},"(":{"docs":{},"可":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"比":{"docs":{},"较":{"docs":{},"特":{"docs":{},"殊":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"二":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"符":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"在":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"经":{"docs":{},"历":{"docs":{},"中":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},"已":{"docs":{},"经":{"docs":{},"有":{"docs":{},"了":{"docs":{},"直":{"docs":{},"观":{"docs":{},"的":{"docs":{},"理":{"docs":{},"解":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"用":{"docs":{},"例":{"docs":{},"子":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"解":{"docs":{},"释":{"docs":{},"一":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"在":{"docs":{},"规":{"docs":{},"则":{"docs":{},"中":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"解":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"执":{"docs":{},"行":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"码":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"图":{"docs":{},"定":{"docs":{},"义":{"docs":{},"及":{"docs":{},"优":{"docs":{},"化":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}},"分":{"docs":{},"析":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":10.005102040816327}}}}},"段":{"docs":{},";":{"docs":{},".":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}},"组":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"在":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"1":{"docs":{},")":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"都":{"docs":{},"基":{"docs":{},"本":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"无":{"docs":{},"法":{"docs":{},"用":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"一":{"docs":{},"段":{"docs":{},"连":{"docs":{},"续":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"地":{"docs":{},"址":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{},"其":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"值":{"docs":{},"和":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"3":{"2":{"docs":{},"位":{"docs":{},"整":{"docs":{},"数":{"docs":{},"存":{"docs":{},"储":{"docs":{},",":{"docs":{},"故":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"的":{"docs":{},"下":{"docs":{},"标":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"分":{"docs":{},"为":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"参":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"是":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},",":{"docs":{},"回":{"docs":{},"想":{"docs":{},"函":{"docs":{},"数":{"docs":{},"一":{"docs":{},"节":{"docs":{},"的":{"docs":{},"传":{"docs":{},"参":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}},"标":{"docs":{},"签":{"docs":{},"用":{"docs":{},"来":{"docs":{},"标":{"docs":{},"记":{"docs":{},"一":{"docs":{},"段":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"从":{"docs":{},"底":{"docs":{},"层":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"角":{"docs":{},"度":{"docs":{},"来":{"docs":{},"看":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"本":{"docs":{},"质":{"docs":{},"上":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"且":{"docs":{},"往":{"docs":{},"往":{"docs":{},"是":{"docs":{},"某":{"docs":{},"一":{"docs":{},"段":{"docs":{},"连":{"docs":{},"续":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"标":{"docs":{},"签":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},":":{"docs":{},"作":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"如":{"docs":{},"上":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305}}},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}},"是":{"docs":{},"整":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"(":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"准":{"docs":{},"草":{"docs":{},"案":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"保":{"docs":{},"持":{"docs":{},"一":{"docs":{},"致":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"中":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"正":{"docs":{},"式":{"docs":{},"发":{"docs":{},"布":{"docs":{},"前":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"版":{"docs":{},"草":{"docs":{},"案":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"者":{"docs":{},"之":{"docs":{},"一":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"相":{"docs":{},"比":{"docs":{},"只":{"docs":{},"有":{"docs":{},"表":{"docs":{},"述":{"docs":{},"上":{"docs":{},"的":{"docs":{},"差":{"docs":{},"异":{"docs":{},")":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}}}}},"识":{"docs":{},"符":{"docs":{},"(":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"记":{"docs":{},"而":{"docs":{},"且":{"docs":{},"存":{"docs":{},"在":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"行":{"docs":{},"号":{"docs":{},"时":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"能":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"间":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"步":{"docs":{},"骤":{"docs":{},"是":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"再":{"docs":{},"一":{"docs":{},"次":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"并":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"有":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"关":{"docs":{},"键":{"docs":{},"点":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}},"与":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}},"器":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"的":{"docs":{},"生":{"docs":{},"成":{"docs":{},"是":{"docs":{},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"不":{"docs":{},"会":{"docs":{},"与":{"docs":{},"目":{"docs":{},"标":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"非":{"docs":{},"常":{"docs":{},"相":{"docs":{},"似":{"docs":{},",":{"docs":{},"一":{"docs":{},"方":{"docs":{},"面":{"docs":{},"它":{"docs":{},"们":{"docs":{},"所":{"docs":{},"用":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"不":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"另":{"docs":{},"外":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"也":{"docs":{},"会":{"docs":{},"省":{"docs":{},"略":{"docs":{},"掉":{"docs":{},"与":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"若":{"docs":{},"干":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{},"这":{"docs":{},"要":{"docs":{},"求":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"将":{"docs":{},"i":{"docs":{},"r":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"时":{"docs":{},"处":{"docs":{},"理":{"docs":{},"好":{"docs":{},"这":{"docs":{},"些":{"docs":{},"缺":{"docs":{},"失":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"架":{"docs":{},"构":{"docs":{},"相":{"docs":{},"关":{"docs":{},"优":{"docs":{},"化":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}},"录":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"中":{"docs":{},"输":{"docs":{},"出":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"到":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"搜":{"docs":{},"索":{"docs":{},"路":{"docs":{},"径":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"前":{"docs":{},"不":{"docs":{},"管":{"docs":{},"是":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"还":{"docs":{},"是":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"不":{"docs":{},"管":{"docs":{},"是":{"docs":{},"标":{"docs":{},"量":{"docs":{},"还":{"docs":{},"是":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{},"存":{"docs":{},"有":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"情":{"docs":{},"况":{"docs":{},"确":{"docs":{},"定":{"docs":{},"返":{"docs":{},"回":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"请":{"docs":{},"注":{"docs":{},"意":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},":":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913}}},"3":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"docs":{}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"构":{"docs":{},"建":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},":":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"待":{"docs":{},"编":{"docs":{},"译":{"docs":{},"程":{"docs":{},"序":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"是":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"检":{"docs":{},"查":{"docs":{},"出":{"docs":{},"符":{"docs":{},"号":{"docs":{},"定":{"docs":{},"义":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"确":{"docs":{},"定":{"docs":{},"不":{"docs":{},"同":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"总":{"docs":{},"是":{"docs":{},"和":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"等":{"docs":{},")":{"docs":{},"与":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"符":{"docs":{},"号":{"docs":{},"解":{"docs":{},"析":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{},"当":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"或":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"符":{"docs":{},"号":{"docs":{},"引":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"能":{"docs":{},"够":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"找":{"docs":{},"到":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"或":{"docs":{},"者":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"核":{"docs":{},"心":{"docs":{},"工":{"docs":{},"具":{"docs":{},"是":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"(":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"管":{"docs":{},"理":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"在":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"新":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},"(":{"docs":{},"如":{"docs":{},"函":{"docs":{},"数":{"docs":{},"、":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"退":{"docs":{},"出":{"docs":{},"该":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"它":{"docs":{},"。":{"docs":{},"在":{"docs":{},"解":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"每":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"在":{"docs":{},"其":{"docs":{},"可":{"docs":{},"见":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"内":{"docs":{},"被":{"docs":{},"正":{"docs":{},"确":{"docs":{},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"指":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"地":{"docs":{},",":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"时":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"测":{"docs":{},"例":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"型":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"检":{"docs":{},"查":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},":":{"docs":{},"各":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"否":{"docs":{},"类":{"docs":{},"型":{"docs":{},"正":{"docs":{},"确":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"确":{"docs":{},"保":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"算":{"docs":{},"术":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"会":{"docs":{},"确":{"docs":{},"保":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"作":{"docs":{},"用":{"docs":{},"于":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"效":{"docs":{},"避":{"docs":{},"免":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"如":{"docs":{},"对":{"docs":{},"整":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"除":{"docs":{},"以":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"有":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"与":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"加":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{},"时":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"整":{"docs":{},"数":{"docs":{},"提":{"docs":{},"升":{"docs":{},"为":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"数":{"docs":{},"。":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"隐":{"docs":{},"式":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"类":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"但":{"docs":{},"必":{"docs":{},"须":{"docs":{},"遵":{"docs":{},"循":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"具":{"docs":{},"体":{"docs":{},"指":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"达":{"docs":{},"到":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"转":{"docs":{},"换":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"中":{"docs":{},"增":{"docs":{},"加":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"希":{"docs":{},"望":{"docs":{},"大":{"docs":{},"家":{"docs":{},"一":{"docs":{},"定":{"docs":{},"要":{"docs":{},"对":{"docs":{},"着":{"docs":{},"代":{"docs":{},"码":{"docs":{},"看":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"处":{"docs":{},"理":{"docs":{},"它":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"对":{"docs":{},"应":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}},"里":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"适":{"docs":{},"合":{"docs":{},"后":{"docs":{},"端":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"一":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"也":{"docs":{},"称":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"结":{"docs":{},"果":{"docs":{},"是":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"跟":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"器":{"docs":{},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"将":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"个":{"docs":{},"的":{"docs":{},"标":{"docs":{},"记":{"docs":{},"(":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"与":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"将":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"代":{"docs":{},"表":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"小":{"docs":{},"单":{"docs":{},"位":{"docs":{},",":{"docs":{},"如":{"docs":{},"关":{"docs":{},"键":{"docs":{},"词":{"docs":{},"、":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"等":{"docs":{},"。":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"会":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"空":{"docs":{},"格":{"docs":{},"、":{"docs":{},"注":{"docs":{},"释":{"docs":{},"等":{"docs":{},"非":{"docs":{},"必":{"docs":{},"要":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"此":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"检":{"docs":{},"测":{"docs":{},"(":{"docs":{},"如":{"docs":{},"非":{"docs":{},"法":{"docs":{},"字":{"docs":{},"符":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"规":{"docs":{},"则":{"docs":{},":":{"docs":{},"定":{"docs":{},"义":{"docs":{},"词":{"docs":{},"法":{"docs":{},"单":{"docs":{},"元":{"docs":{},"(":{"docs":{},"如":{"docs":{},"关":{"docs":{},"键":{"docs":{},"字":{"docs":{},"、":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"符":{"docs":{},"号":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"讨":{"docs":{},"论":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"介":{"docs":{},"绍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"理":{"docs":{},"论":{"docs":{},"。":{"docs":{},"大":{"docs":{},"家":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"求":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"会":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"某":{"docs":{},"点":{"docs":{},"之":{"docs":{},"后":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"就":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"你":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"docs":{},"成":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"代":{"docs":{},"码":{"docs":{},"更":{"docs":{},"精":{"docs":{},"简":{"docs":{},",":{"docs":{},"更":{"docs":{},"易":{"docs":{},"于":{"docs":{},"调":{"docs":{},"试":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"化":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"进":{"docs":{},"行":{"docs":{},"两":{"docs":{},"遍":{"docs":{},"扫":{"docs":{},"描":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"完":{"docs":{},"成":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"把":{"docs":{},"带":{"docs":{},"有":{"docs":{},"类":{"docs":{},"型":{"docs":{},"标":{"docs":{},"注":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},";":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},"端":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"。":{"docs":{},"很":{"docs":{},"容":{"docs":{},"易":{"docs":{},"写":{"docs":{},"出":{"docs":{},"递":{"docs":{},"归":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},":":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"上":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"参":{"docs":{},",":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"后":{"docs":{},"把":{"docs":{},"s":{"docs":{},"p":{"docs":{},"改":{"docs":{},"回":{"docs":{},"来":{"docs":{},"(":{"docs":{},"清":{"docs":{},"除":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"传":{"docs":{},"递":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"修":{"docs":{},"改":{"docs":{},",":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"辟":{"docs":{},"出":{"docs":{},"一":{"docs":{},"块":{"docs":{},"连":{"docs":{},"续":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"这":{"docs":{},"块":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"返":{"docs":{},"回":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"后":{"docs":{},"续":{"docs":{},"如":{"docs":{},"有":{"docs":{},"对":{"docs":{},"数":{"docs":{},"组":{"docs":{},"中":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"基":{"docs":{},"于":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"操":{"docs":{},"作":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"隐":{"docs":{},"式":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"一":{"docs":{},"步":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"进":{"docs":{},"行":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}},"地":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"实":{"docs":{},"现":{"docs":{},"符":{"docs":{},"合":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"要":{"docs":{},"求":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"不":{"docs":{},"只":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"种":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},"函":{"docs":{},"数":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}},"已":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"特":{"docs":{},"性":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":10}}}}}}}}},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"特":{"docs":{},"性":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}},"成":{"docs":{},"为":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"着":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}},"的":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.08}}}}},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"选":{"docs":{},"择":{"docs":{},"了":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"每":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"还":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}},"有":{"docs":{},"其":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"且":{"docs":{},"是":{"docs":{},"它":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"子":{"docs":{},"集":{"docs":{},"。":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"也":{"docs":{},"有":{"docs":{},"其":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"且":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"子":{"docs":{},"集":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"两":{"docs":{},"种":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}},"看":{"docs":{},"作":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"定":{"docs":{},"义":{"docs":{},"三":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{},":":{"docs":{},"b":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}},"要":{"docs":{},"自":{"docs":{},"带":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"在":{"docs":{},"示":{"docs":{},"例":{"docs":{},"里":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"反":{"docs":{},"复":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"即":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},")":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"其":{"docs":{},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"括":{"docs":{},"号":{"docs":{},"中":{"docs":{},"的":{"docs":{},"三":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"/":{"docs":{},"声":{"docs":{},"明":{"docs":{},"自":{"docs":{},"左":{"docs":{},"向":{"docs":{},"右":{"docs":{},"依":{"docs":{},"次":{"docs":{},"为":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}},"准":{"docs":{},"备":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.016339869281045753},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.06741573033707865},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.030927835051546393},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.075},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.043478260869565216},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.09278350515463918},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.04424778761061947},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.09154929577464789},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.06382978723404255},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.09146341463414634},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.058823529411764705},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.12162162162162163},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.04054054054054054},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.09375},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.07317073170731707},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.075},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.08108108108108109},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.08076923076923077},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.09170305676855896},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.08641975308641975},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},":":{"docs":{},"=":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"`":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"_":{"docs":{},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"_":{"docs":{},"_":{"docs":{},"`":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"_":{"docs":{},"`":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},"能":{"docs":{},"正":{"docs":{},"常":{"docs":{},"编":{"docs":{},"译":{"docs":{},"吗":{"docs":{},",":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"要":{"docs":{},"求":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"完":{"docs":{},"全":{"docs":{},"由":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"要":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"大":{"docs":{},"家":{"docs":{},"来":{"docs":{},"说":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"和":{"docs":{},"挑":{"docs":{},"战":{"docs":{},"性":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"大":{"docs":{},"家":{"docs":{},"能":{"docs":{},"够":{"docs":{},"尽":{"docs":{},"早":{"docs":{},"开":{"docs":{},"始":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{},"左":{"docs":{},"值":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"是":{"docs":{},"指":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"左":{"docs":{},"值":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"其":{"docs":{},"求":{"docs":{},"值":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"每":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}},"便":{"docs":{},"是":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"为":{"docs":{},"满":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"向":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"插":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"全":{"docs":{},"局":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"并":{"docs":{},"被":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{},"将":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"绑":{"docs":{},"定":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"类":{"docs":{},"中":{"docs":{},"的":{"docs":{},"的":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"变":{"docs":{},"量":{"docs":{},"记":{"docs":{},"录":{"docs":{},"了":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},":":{"docs":{},"具":{"docs":{},"体":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"r":{"docs":{},"a":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"相":{"docs":{},"关":{"docs":{},"实":{"docs":{},"现":{"docs":{},"在":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"。":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"现":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"已":{"docs":{},"经":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"处":{"docs":{},"理":{"docs":{},"好":{"docs":{},"了":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"插":{"docs":{},"入":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"传":{"docs":{},"参":{"docs":{},",":{"docs":{},"而":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"传":{"docs":{},"参":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"又":{"docs":{},"和":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"在":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"传":{"docs":{},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},":":{"docs":{},"假":{"docs":{},"设":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"形":{"docs":{},"参":{"docs":{},"对":{"docs":{},"应":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"x":{"1":{"docs":{},"到":{"docs":{},"x":{"docs":{},"n":{"docs":{},"。":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"开":{"docs":{},"头":{"docs":{},"生":{"docs":{},"成":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}},"字":{"docs":{},"节":{"docs":{},"流":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"(":{"docs":{},"提":{"docs":{},"示":{"1":{"docs":{},":":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"由":{"docs":{},"高":{"docs":{},"地":{"docs":{},"址":{"docs":{},"向":{"docs":{},"低":{"docs":{},"地":{"docs":{},"址":{"docs":{},"延":{"docs":{},"伸":{"docs":{},";":{"docs":{},"提":{"docs":{},"示":{"2":{"docs":{},":":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"内":{"docs":{},"存":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"是":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"库":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"一":{"docs":{},"点":{"docs":{},"。":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"与":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"当":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"取":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"读":{"docs":{},"入":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"流":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"它":{"docs":{},"首":{"docs":{},"先":{"docs":{},"会":{"docs":{},"被":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"位":{"docs":{},"是":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"非":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}},"都":{"docs":{},"非":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"然":{"docs":{},",":{"docs":{},"它":{"docs":{},"是":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"的":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"只":{"docs":{},"有":{"docs":{},"这":{"docs":{},"些":{"docs":{},"产":{"docs":{},"生":{"docs":{},"式":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"正":{"docs":{},"确":{"docs":{},"或":{"docs":{},"者":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"所":{"docs":{},"以":{"docs":{},"如":{"docs":{},"果":{"docs":{},"想":{"docs":{},"基":{"docs":{},"于":{"docs":{},"这":{"docs":{},"个":{"docs":{},"规":{"docs":{},"范":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"就":{"docs":{},"必":{"docs":{},"须":{"docs":{},"告":{"docs":{},"诉":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"工":{"docs":{},"具":{"docs":{},"这":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"是":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"前":{"docs":{},"还":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"先":{"docs":{},"被":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}},"一":{"docs":{},"条":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"广":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"就":{"docs":{},"囊":{"docs":{},"括":{"docs":{},"了":{"docs":{},"这":{"docs":{},"所":{"docs":{},"有":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"的":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"更":{"docs":{},"清":{"docs":{},"晰":{"docs":{},"简":{"docs":{},"单":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},",":{"docs":{},"“":{"docs":{},"不":{"docs":{},"可":{"docs":{},"以":{"docs":{},"定":{"docs":{},"义":{"docs":{},"新":{"docs":{},"变":{"docs":{},"量":{"docs":{},"a":{"docs":{},"”":{"docs":{},"就":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"当":{"docs":{},"前":{"docs":{},"“":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"取":{"docs":{},"变":{"docs":{},"量":{"docs":{},"a":{"docs":{},"的":{"docs":{},"值":{"docs":{},"”":{"docs":{},",":{"docs":{},"反":{"docs":{},"之":{"docs":{},"亦":{"docs":{},"然":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"“":{"docs":{},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},"和":{"docs":{},"“":{"docs":{},"获":{"docs":{},"取":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},"的":{"docs":{},"检":{"docs":{},"查":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"遇":{"docs":{},"到":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"一":{"docs":{},"个":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"数":{"docs":{},"组":{"docs":{},"长":{"docs":{},"度":{"docs":{},"较":{"docs":{},"长":{"docs":{},"时":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"位":{"docs":{},"置":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"条":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"语":{"docs":{},"句":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"让":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"长":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"内":{"docs":{},"置":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"恢":{"docs":{},"复":{"docs":{},"一":{"docs":{},"个":{"docs":{},"从":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"删":{"docs":{},"除":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"当":{"docs":{},"前":{"docs":{},"它":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"少":{"docs":{},"于":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}},"2":{"docs":{},"删":{"docs":{},"除":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"它":{"docs":{},"连":{"docs":{},"接":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"边":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"足":{"docs":{},"够":{"docs":{},"幸":{"docs":{},"运":{"docs":{},",":{"docs":{},"与":{"docs":{},"它":{"docs":{},"相":{"docs":{},"邻":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"点":{"docs":{},"没":{"docs":{},"有":{"docs":{},"用":{"docs":{},"完":{"docs":{},"所":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"以":{"docs":{},"上":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"函":{"docs":{},"数":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"不":{"docs":{},"变":{"docs":{},"时":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"未":{"docs":{},"标":{"docs":{},"记":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"之":{"docs":{},"后":{"docs":{},"用":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"2":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"先":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"简":{"docs":{},"单":{"docs":{},"了":{"docs":{},"解":{"docs":{},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913}}}}},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"标":{"docs":{},"量":{"docs":{},"x":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"另":{"docs":{},"外":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"之":{"docs":{},"后":{"docs":{},"对":{"docs":{},"x":{"docs":{},"的":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"通":{"docs":{},"过":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"y":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{},"下":{"docs":{},"标":{"docs":{},"和":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"其":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"其":{"docs":{},"值":{"docs":{},"。":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"写":{"docs":{},"起":{"docs":{},"来":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"捷":{"docs":{},";":{"docs":{},"这":{"docs":{},"里":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"基":{"docs":{},"地":{"docs":{},"址":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"和":{"docs":{},"下":{"docs":{},"标":{"1":{"docs":{},",":{"docs":{},"构":{"docs":{},"造":{"docs":{},"出":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"docs":{}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"哪":{"docs":{},"怕":{"docs":{},"是":{"docs":{},"局":{"docs":{},"部":{"docs":{},"标":{"docs":{},"量":{"docs":{},",":{"docs":{},"也":{"docs":{},"要":{"docs":{},"用":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"指":{"docs":{},"令":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"就":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"来":{"docs":{},"对":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"进":{"docs":{},"行":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"快":{"docs":{},"速":{"docs":{},"入":{"docs":{},"门":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"思":{"docs":{},"考":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"题":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"方":{"docs":{},"法":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"内":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"中":{"docs":{},"先":{"docs":{},"将":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"加":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"底":{"docs":{},",":{"docs":{},"再":{"docs":{},"往":{"docs":{},"上":{"docs":{},"才":{"docs":{},"是":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"便":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}},"全":{"docs":{},"局":{"docs":{},"优":{"docs":{},"化":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"减":{"docs":{},"少":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"差":{"docs":{},"异":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"短":{"docs":{},"路":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"大":{"docs":{},"家":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"短":{"docs":{},"路":{"docs":{},"性":{"docs":{},"质":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"语":{"docs":{},"言":{"docs":{},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"多":{"docs":{},"次":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"段":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"这":{"docs":{},"四":{"docs":{},"个":{"docs":{},"集":{"docs":{},"合":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"中":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"满":{"docs":{},"足":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"述":{"docs":{},"两":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"定":{"docs":{},"义":{"docs":{},"指":{"docs":{},"令":{"docs":{},"了":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"o":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"码":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"标":{"docs":{},"记":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"1":{"docs":{},"和":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"2":{"docs":{},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"是":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"存":{"docs":{},"放":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"以":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"描":{"docs":{},"述":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"三":{"docs":{},"种":{"docs":{},"特":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"可":{"docs":{},"行":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},":":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}},"个":{"docs":{},"原":{"docs":{},"因":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"求":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"从":{"docs":{},"头":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"力":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"将":{"docs":{},"原":{"docs":{},"先":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"更":{"docs":{},"好":{"docs":{},"的":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"两":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"结":{"docs":{},"合":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"优":{"docs":{},"化":{"docs":{},"等":{"docs":{},"级":{"docs":{},"不":{"docs":{},"同":{"docs":{},"会":{"docs":{},"有":{"docs":{},"数":{"docs":{},"百":{"docs":{},"个":{"docs":{},"不":{"docs":{},"等":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"更":{"docs":{},"新":{"docs":{},"的":{"docs":{},"办":{"docs":{},"法":{"docs":{},"求":{"docs":{},"出":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"原":{"docs":{},"则":{"docs":{},",":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"几":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"对":{"docs":{},"应":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"而":{"docs":{},"“":{"docs":{},"塞":{"docs":{},"不":{"docs":{},"下":{"docs":{},"”":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"里":{"docs":{},"面":{"docs":{},"(":{"docs":{},"因":{"docs":{},"为":{"docs":{},"访":{"docs":{},"问":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"比":{"docs":{},"访":{"docs":{},"问":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"多":{"docs":{},"得":{"docs":{},"多":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"应":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"一":{"docs":{},"直":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"不":{"docs":{},"要":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"都":{"docs":{},"属":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},":":{"docs":{},"文":{"docs":{},"件":{"docs":{},"级":{"docs":{},"和":{"docs":{},"块":{"docs":{},"级":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"在":{"docs":{},"块":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"则":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"其":{"docs":{},"声":{"docs":{},"明":{"docs":{},"所":{"docs":{},"属":{"docs":{},"的":{"docs":{},"块":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"在":{"docs":{},"文":{"docs":{},"件":{"docs":{},"级":{"docs":{},"(":{"docs":{},"全":{"docs":{},"局":{"docs":{},")":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"后":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"直":{"docs":{},"接":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"不":{"docs":{},"只":{"docs":{},"包":{"docs":{},"括":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"流":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"综":{"docs":{},"上":{"docs":{},"所":{"docs":{},"述":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"上":{"docs":{},"述":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"。":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"值":{"docs":{},"、":{"docs":{},"或":{"docs":{},"者":{"docs":{},"运":{"docs":{},"算":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"称":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"以":{"docs":{},"及":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"其":{"docs":{},"它":{"docs":{},"东":{"docs":{},"西":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"修":{"docs":{},"改":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"孩":{"docs":{},"子":{"docs":{},"类":{"docs":{},"型":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{},"原":{"docs":{},"先":{"docs":{},"表":{"docs":{},"示":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"单":{"docs":{},"独":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"类":{"docs":{},"节":{"docs":{},"点":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"类":{"docs":{},"似":{"docs":{},"地":{"docs":{},"实":{"docs":{},"现":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}},"读":{"docs":{},"内":{"docs":{},"容":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"上":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"按":{"docs":{},"照":{"docs":{},"其":{"docs":{},"大":{"docs":{},"小":{"docs":{},"和":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"了":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"函":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"前":{"docs":{},":":{"docs":{},"假":{"docs":{},"设":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"位":{"docs":{},"于":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"x":{"1":{"docs":{},"至":{"docs":{},"x":{"docs":{},"n":{"docs":{},"中":{"docs":{},"。":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"新":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"t":{"1":{"docs":{},"到":{"docs":{},"t":{"docs":{},"n":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"按":{"docs":{},"照":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}},"指":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"本":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"docs":{}},"docs":{}}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}}}},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"都":{"docs":{},"是":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"逻":{"docs":{},"辑":{"docs":{},"真":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}},"其":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"段":{"docs":{},",":{"docs":{},"前":{"docs":{},"者":{"docs":{},"零":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"后":{"docs":{},"者":{"docs":{},"须":{"docs":{},"指":{"docs":{},"定":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"但":{"docs":{},"观":{"docs":{},"察":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"发":{"docs":{},"现":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"省":{"docs":{},"略":{"docs":{},"。":{"docs":{},"省":{"docs":{},"略":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"自":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}}},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"'":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.032679738562091505}}}},"(":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.044444444444444446},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02702702702702703},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026923076923076925},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03056768558951965},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02880658436213992},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.044444444444444446},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02702702702702703},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026923076923076925},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03056768558951965},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02880658436213992},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},";":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.031914893617021274},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.07777777777777778},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.032520325203252036},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.03088803088803089},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.03076923076923077},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.034934497816593885},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.037037037037037035},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"f":{"docs":{},"'":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"{":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"}":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"~":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}},"~":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}},"|":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}},"&":{"docs":{},"&":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}},"=":{"docs":{},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},":":{"docs":{},"'":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"?":{"docs":{},"'":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.022222222222222223},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"]":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},")":{"docs":{},"*":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"+":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"?":{"docs":{},"(":{"docs":{},"(":{"docs":{},"'":{"docs":{},"[":{"docs":{},"'":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"'":{"docs":{},"]":{"docs":{},"'":{"docs":{},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"+":{"docs":{},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"/":{"docs":{},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"成":{"docs":{},"员":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"方":{"docs":{},"法":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"绩":{"docs":{},"占":{"docs":{},"比":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"整":{"docs":{},"型":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"数":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"毕":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"成":{"docs":{},"功":{"docs":{},"建":{"docs":{},"立":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"又":{"docs":{},"是":{"docs":{},"由":{"docs":{},"多":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"体":{"docs":{},"思":{"docs":{},"路":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"节":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"进":{"docs":{},"行":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"先":{"docs":{},"根":{"docs":{},"据":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"再":{"docs":{},"填":{"docs":{},"充":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"所":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},"先":{"docs":{},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"时":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"参":{"docs":{},"数":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"常":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"将":{"docs":{},"其":{"docs":{},"全":{"docs":{},"部":{"docs":{},"加":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"把":{"docs":{},"这":{"docs":{},"些":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"封":{"docs":{},"装":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"类":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"就":{"docs":{},"得":{"docs":{},"到":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"加":{"docs":{},"法":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"下":{"docs":{},"标":{"docs":{},"对":{"docs":{},"应":{"docs":{},"到":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"地":{"docs":{},"址":{"docs":{},"?":{"docs":{},"对":{"docs":{},"一":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"下":{"docs":{},"标":{"docs":{},"的":{"docs":{},"常":{"docs":{},"数":{"docs":{},"倍":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"[":{"0":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"1":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"]":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"b":{"docs":{},"n":{"docs":{},"f":{"docs":{},"]":{"docs":{},"(":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"w":{"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"/":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"u":{"docs":{},"s":{"docs":{},"%":{"docs":{},"e":{"2":{"docs":{},"%":{"8":{"0":{"docs":{},"%":{"9":{"3":{"docs":{},"n":{"docs":{},"a":{"docs":{},"u":{"docs":{},"r":{"docs":{},"_":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"1":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"3":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"6":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"7":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"docs":{}}},"r":{"0":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"]":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{}}},"小":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"打":{"docs":{},"头":{"docs":{},"的":{"docs":{},"是":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}},"于":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028}}}},"就":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"成":{"docs":{},"新":{"docs":{},"的":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}},"是":{"docs":{},"指":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"一":{"docs":{},"种":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}},"很":{"docs":{},"容":{"docs":{},"易":{"docs":{},"通":{"docs":{},"过":{"docs":{},"增":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},",":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"这":{"docs":{},"些":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}},"遗":{"docs":{},"憾":{"docs":{},",":{"docs":{},"上":{"docs":{},"述":{"docs":{},"程":{"docs":{},"序":{"docs":{},"并":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},"范":{"docs":{},"围":{"docs":{},"内":{"docs":{},"的":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}},"非":{"docs":{},"负":{"docs":{},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"运":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"发":{"docs":{},"生":{"docs":{},"越":{"docs":{},"界":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":10.02247191011236},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":10.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":10.02061855670103},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":10.014084507042254},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":10.012195121951219},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":10.013513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":10.010416666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":10.008130081300813},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":10.007722007722007},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":10.007692307692308},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":10.008733624454148},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":10.008230452674898},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"则":{"docs":{},":":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},"各":{"docs":{},"种":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"模":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"记":{"docs":{},"号":{"docs":{},"书":{"docs":{},"写":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"采":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}},"录":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"情":{"docs":{},"况":{"docs":{},"(":{"docs":{},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},":":{"docs":{},"你":{"docs":{},"也":{"docs":{},"许":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"中":{"docs":{},"记":{"docs":{},"录":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"调":{"docs":{},"用":{"docs":{},"过":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"减":{"docs":{},"少":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"r":{"docs":{},"a":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"零":{"docs":{},"或":{"docs":{},"一":{"docs":{},"次":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"多":{"docs":{},"次":{"docs":{},",":{"docs":{},"+":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"×":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787}}},"√":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787}}},"、":{"docs":{},"按":{"docs":{},"位":{"docs":{},"取":{"docs":{},"反":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}},"乘":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"改":{"docs":{},"进":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"支":{"docs":{},"持":{"docs":{},"本":{"docs":{},"节":{"docs":{},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"测":{"docs":{},"试":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}},"稍":{"docs":{},"微":{"docs":{},"一":{"docs":{},"提":{"docs":{},",":{"docs":{},"关":{"docs":{},"于":{"docs":{},"按":{"docs":{},"位":{"docs":{},"取":{"docs":{},"反":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"补":{"docs":{},"码":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}},"与":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"一":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"加":{"docs":{},"法":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"?":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}},"“":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},"”":{"docs":{},"?":{"docs":{},"举":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"已":{"docs":{},"知":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"a":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},"[":{"3":{"docs":{},"]":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"如":{"docs":{},"果":{"docs":{},"该":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"a":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},",":{"docs":{},"则":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"a":{"docs":{},"、":{"docs":{},"a":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},",":{"docs":{},"则":{"docs":{},"不":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},"而":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"看":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"给":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"前":{"docs":{},"端":{"docs":{},"变":{"docs":{},"量":{"docs":{},"到":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"表":{"docs":{},",":{"docs":{},"找":{"docs":{},"到":{"docs":{},"该":{"docs":{},"节":{"docs":{},"点":{"docs":{},"所":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"再":{"docs":{},"看":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"带":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"举":{"docs":{},"一":{"docs":{},"个":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"。":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"的":{"docs":{},"访":{"docs":{},"存":{"docs":{},"指":{"docs":{},"令":{"docs":{},"支":{"docs":{},"持":{"docs":{},"基":{"docs":{},"址":{"docs":{},"+":{"docs":{},"索":{"docs":{},"引":{"docs":{},"*":{"4":{"docs":{},"的":{"docs":{},"寻":{"docs":{},"址":{"docs":{},"模":{"docs":{},"式":{"docs":{},"(":{"docs":{},"类":{"docs":{},"似":{"docs":{},"x":{"8":{"6":{"docs":{},")":{"docs":{},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"又":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"含":{"docs":{},"义":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888}}}},"子":{"docs":{},"两":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},"为":{"docs":{},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"句":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"带":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"语":{"docs":{},"法":{"docs":{},"二":{"docs":{},"义":{"docs":{},"性":{"docs":{},":":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"作":{"docs":{},"为":{"docs":{},"子":{"docs":{},"项":{"docs":{},"目":{"docs":{},"进":{"docs":{},"行":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{},"新":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"名":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"便":{"docs":{},"起":{"docs":{},",":{"docs":{},"但":{"docs":{},"必":{"docs":{},"须":{"docs":{},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},",":{"docs":{},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"可":{"docs":{},"以":{"docs":{},"解":{"docs":{},"析":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"括":{"docs":{},"号":{"docs":{},"和":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"一":{"docs":{},"种":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"条":{"docs":{},"件":{"docs":{},"语":{"docs":{},"句":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"、":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"等":{"docs":{},"。":{"docs":{},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"怎":{"docs":{},"么":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"总":{"docs":{},"结":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},"的":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"现":{"docs":{},"在":{"docs":{},"利":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"树":{"docs":{},",":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"我":{"docs":{},"们":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"。":{"docs":{},"至":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"从":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}}}}},"我":{"docs":{},"们":{"docs":{},"开":{"docs":{},"始":{"docs":{},"正":{"docs":{},"式":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"如":{"docs":{},"何":{"docs":{},"在":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"所":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"看":{"docs":{},"作":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"体":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"可":{"docs":{},"能":{"docs":{},"遇":{"docs":{},"到":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"将":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"好":{"docs":{},"奇":{"docs":{},",":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"这":{"docs":{},"里":{"docs":{},"多":{"docs":{},"了":{"docs":{},"如":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"吧":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"修":{"docs":{},"改":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"起":{"docs":{},"来":{"docs":{},"很":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"最":{"docs":{},"大":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"感":{"docs":{},"觉":{"docs":{},"很":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"办":{"docs":{},"?":{"docs":{},"没":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"急":{"docs":{},"着":{"docs":{},"往":{"docs":{},"后":{"docs":{},"学":{"docs":{},",":{"docs":{},"先":{"docs":{},"休":{"docs":{},"息":{"docs":{},"一":{"docs":{},"下":{"docs":{},",":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"用":{"docs":{},"到":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"继":{"docs":{},"续":{"docs":{},"看":{"docs":{},"上":{"docs":{},"述":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"先":{"docs":{},"关":{"docs":{},"注":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"承":{"docs":{},"自":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"例":{"docs":{},"如":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},":":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}}}}},"考":{"docs":{},"虑":{"docs":{},"下":{"docs":{},"面":{"docs":{},"这":{"docs":{},"段":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}},"对":{"docs":{},"于":{"docs":{},"如":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"i":{"docs":{},"r":{"docs":{},"后":{"docs":{},"可":{"docs":{},"能":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}},"的":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"也":{"docs":{},"都":{"docs":{},"适":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}},"灰":{"docs":{},"色":{"docs":{},"部":{"docs":{},"分":{"docs":{},"表":{"docs":{},"示":{"docs":{},"相":{"docs":{},"对":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"、":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"、":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"和":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}},"“":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"”":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"了":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"”":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"需":{"docs":{},"要":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"计":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"如":{"docs":{},"加":{"docs":{},"、":{"docs":{},"减":{"docs":{},"、":{"docs":{},"乘":{"docs":{},"、":{"docs":{},"除":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855}}}}}}},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}},"意":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}},"味":{"docs":{},"着":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"没":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":10.018867924528301}}}}}},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"*":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"+":{"docs":{},"高":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"1":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"最":{"docs":{},"接":{"docs":{},"近":{"docs":{},"的":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}},"化":{"docs":{},"器":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"非":{"docs":{},"特":{"docs":{},"别":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"子":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"求":{"docs":{},"值":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"是":{"docs":{},"未":{"docs":{},"规":{"docs":{},"定":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"语":{"docs":{},"句":{"docs":{},"外":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"不":{"docs":{},"含":{"docs":{},"任":{"docs":{},"何":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"出":{"docs":{},"口":{"docs":{},"语":{"docs":{},"句":{"docs":{},"外":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"不":{"docs":{},"含":{"docs":{},"任":{"docs":{},"何":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"了":{"docs":{},"分":{"docs":{},"配":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"访":{"docs":{},"问":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"与":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"。":{"docs":{},"可":{"docs":{},"详":{"docs":{},"见":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"4":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{}}}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"会":{"docs":{},"麻":{"docs":{},"烦":{"docs":{},"一":{"docs":{},"点":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.02028740490278952}},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"恭":{"docs":{},"喜":{"docs":{},"你":{"docs":{},"!":{"docs":{},"到":{"docs":{},"目":{"docs":{},"前":{"docs":{},"为":{"docs":{},"止":{"docs":{},",":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"成":{"docs":{},"功":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}},"给":{"docs":{},"出":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"入":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"判":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"换":{"docs":{},"言":{"docs":{},"之":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"对":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"做":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"两":{"docs":{},"个":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},",":{"docs":{},"再":{"docs":{},"计":{"docs":{},"算":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"帧":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"运":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"建":{"docs":{},"立":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"在":{"docs":{},"退":{"docs":{},"出":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"对":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"非":{"docs":{},"常":{"docs":{},"重":{"docs":{},"要":{"docs":{},"。":{"docs":{},"那":{"docs":{},"么":{"docs":{},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"如":{"docs":{},"何":{"docs":{},"建":{"docs":{},"立":{"docs":{},"和":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"呢":{"docs":{},"?":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"代":{"docs":{},"码":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"用":{"docs":{},"于":{"docs":{},"建":{"docs":{},"立":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"那":{"docs":{},"段":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"称":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"与":{"docs":{},"销":{"docs":{},"毁":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"概":{"docs":{},"念":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"区":{"docs":{},"域":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"于":{"docs":{},"存":{"docs":{},"储":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"需":{"docs":{},"要":{"docs":{},"模":{"docs":{},"仿":{"docs":{},"新":{"docs":{},"建":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"指":{"docs":{},"针":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"确":{"docs":{},"定":{"docs":{},"和":{"docs":{},"最":{"docs":{},"终":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"配":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"位":{"docs":{},"于":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"了":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"均":{"docs":{},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}},"(":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}}}}}}}}}},"无":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"法":{"docs":{},"找":{"docs":{},"到":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"貌":{"docs":{},"似":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"工":{"docs":{},"程":{"docs":{},"?":{"docs":{},"实":{"docs":{},"际":{"docs":{},"不":{"docs":{},"然":{"docs":{},",":{"docs":{},"确":{"docs":{},"定":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"维":{"docs":{},"护":{"docs":{},"好":{"docs":{},"两":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"为":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"指":{"docs":{},"派":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"个":{"docs":{},"结":{"docs":{},"果":{"docs":{},"本":{"docs":{},"身":{"docs":{},"并":{"docs":{},"非":{"docs":{},"左":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"问":{"docs":{},"题":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"归":{"docs":{},"约":{"docs":{},")":{"docs":{},",":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"对":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"含":{"docs":{},"有":{"docs":{},"大":{"docs":{},"量":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"获":{"docs":{},"得":{"docs":{},"最":{"docs":{},"优":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"将":{"docs":{},"耗":{"docs":{},"费":{"docs":{},"可":{"docs":{},"观":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"时":{"docs":{},"间":{"docs":{},"用":{"docs":{},"于":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"到":{"docs":{},"执":{"docs":{},"行":{"docs":{},"效":{"docs":{},"率":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"一":{"docs":{},"般":{"docs":{},"采":{"docs":{},"用":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"的":{"docs":{},"?":{"docs":{},"请":{"docs":{},"简":{"docs":{},"要":{"docs":{},"描":{"docs":{},"述":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"(":{"docs":{},"局":{"docs":{},"部":{"docs":{},")":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"不":{"docs":{},"同":{"docs":{},"地":{"docs":{},"方":{"docs":{},"可":{"docs":{},"能":{"docs":{},"标":{"docs":{},"识":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}},"随":{"docs":{},"之":{"docs":{},"而":{"docs":{},"来":{"docs":{},"一":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},"是":{"docs":{},":":{"docs":{},"不":{"docs":{},"同":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"重":{"docs":{},"名":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"入":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"则":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"内":{"docs":{},"层":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"里":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}},"空":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"集":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"划":{"docs":{},"分":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},"块":{"docs":{},"之":{"docs":{},"前":{"docs":{},"就":{"docs":{},"要":{"docs":{},"具":{"docs":{},"有":{"docs":{},"的":{"docs":{},"了":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"集":{"docs":{},"合":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"获":{"docs":{},"得":{"docs":{},"了":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}},"取":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"更":{"docs":{},"详":{"docs":{},"细":{"docs":{},"的":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"论":{"docs":{},"文":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"附":{"docs":{},"录":{"docs":{},"有":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"该":{"docs":{},"方":{"docs":{},"程":{"docs":{},"说":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"把":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"所":{"docs":{},"有":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"中":{"docs":{},"去":{"docs":{},"掉":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}},"以":{"docs":{},"后":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"地":{"docs":{},"计":{"docs":{},"算":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"源":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"是":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"其":{"docs":{},"所":{"docs":{},"有":{"docs":{},"后":{"docs":{},"继":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"在":{"docs":{},"定":{"docs":{},"值":{"docs":{},"前":{"docs":{},"就":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"了":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"到":{"docs":{},"但":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"定":{"docs":{},"值":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"被":{"docs":{},"定":{"docs":{},"值":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"的":{"docs":{},"定":{"docs":{},"值":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"从":{"docs":{},"后":{"docs":{},"往":{"docs":{},"前":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"每":{"docs":{},"条":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"指":{"docs":{},"令":{"docs":{},"求":{"docs":{},"出":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"上":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"并":{"docs":{},"集":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"求":{"docs":{},"解":{"docs":{},"的":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},":":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306}}}}}}}},"在":{"docs":{},"离":{"docs":{},"开":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"入":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"之":{"docs":{},"前":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"么":{"docs":{},"是":{"docs":{},"空":{"docs":{},"集":{"docs":{},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"只":{"docs":{},"含":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"仿":{"docs":{},"照":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"悬":{"docs":{},"吊":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"能":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"这":{"docs":{},"个":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"设":{"docs":{},"置":{"docs":{},"产":{"docs":{},"生":{"docs":{},"式":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"选":{"docs":{},"择":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"够":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"我":{"docs":{},"们":{"docs":{},"生":{"docs":{},"成":{"docs":{},"解":{"docs":{},"析":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"工":{"docs":{},"具":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"若":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"被":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"输":{"docs":{},"出":{"docs":{},"到":{"docs":{},"终":{"docs":{},"端":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"前":{"docs":{},",":{"docs":{},"经":{"docs":{},"历":{"docs":{},"了":{"docs":{},"第":{"docs":{},"二":{"docs":{},"次":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"确":{"docs":{},"定":{"docs":{},"这":{"docs":{},"一":{"docs":{},"关":{"docs":{},"系":{"docs":{},"并":{"docs":{},"不":{"docs":{},"容":{"docs":{},"易":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"经":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"了":{"docs":{},"两":{"docs":{},"次":{"docs":{},"。":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"写":{"docs":{},"法":{"docs":{},"应":{"docs":{},"该":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"_":{"docs":{},"l":{"2":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},",":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"块":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"docs":{}}}},"目":{"docs":{},"标":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"语":{"docs":{},"句":{"docs":{},"应":{"docs":{},"该":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"定":{"docs":{},"义":{"docs":{},"?":{"docs":{},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"用":{"docs":{},"于":{"docs":{},"实":{"docs":{},"现":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},",":{"docs":{},"如":{"docs":{},"循":{"docs":{},"环":{"docs":{},"和":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"结":{"docs":{},"合":{"docs":{},"标":{"docs":{},"签":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}},"默":{"docs":{},"认":{"docs":{},"在":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}},"初":{"docs":{},"始":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"双":{"docs":{},"目":{"docs":{},"标":{"docs":{},")":{"docs":{},"更":{"docs":{},"合":{"docs":{},"理":{"docs":{},"?":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"(":{"docs":{},"言":{"docs":{},"之":{"docs":{},"有":{"docs":{},"理":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},"分":{"docs":{},"离":{"docs":{},")":{"docs":{},"?":{"docs":{},"写":{"docs":{},"一":{"docs":{},"些":{"docs":{},"你":{"docs":{},"认":{"docs":{},"为":{"docs":{},"两":{"docs":{},"种":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"案":{"docs":{},"各":{"docs":{},"自":{"docs":{},"的":{"docs":{},"优":{"docs":{},"劣":{"docs":{},"之":{"docs":{},"处":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"妥":{"docs":{},"善":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"在":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"中":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"单":{"docs":{},"独":{"docs":{},"增":{"docs":{},"添":{"docs":{},"了":{"docs":{},"将":{"docs":{},"a":{"0":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"无":{"docs":{},"需":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"目":{"docs":{},"标":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"a":{"0":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"拿":{"docs":{},"到":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"一":{"docs":{},"直":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"一":{"docs":{},"直":{"docs":{},"都":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{},"我":{"docs":{},"们":{"docs":{},"自":{"docs":{},"己":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"会":{"docs":{},"看":{"docs":{},"到":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"造":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"常":{"docs":{},"用":{"docs":{},"的":{"docs":{},"算":{"docs":{},"法":{"docs":{},"是":{"docs":{},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"docs":{},"为":{"docs":{},":":{"docs":{},"插":{"docs":{},"入":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}},"称":{"docs":{},"为":{"docs":{},"调":{"docs":{},"用":{"docs":{},"序":{"docs":{},"列":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"要":{"docs":{},"做":{"docs":{},"什":{"docs":{},"么":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"求":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"满":{"docs":{},"足":{"docs":{},"单":{"docs":{},"一":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"但":{"docs":{},"并":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"如":{"docs":{},"此":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"前":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"将":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"按":{"docs":{},"照":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}}}},"合":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"并":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"合":{"docs":{},"并":{"docs":{},"后":{"docs":{},"的":{"docs":{},"点":{"docs":{},"也":{"docs":{},"会":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},"就":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"合":{"docs":{},"并":{"docs":{},"后":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"段":{"docs":{},"或":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}},"里":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}},"中":{"docs":{},"。":{"docs":{},"举":{"docs":{},"例":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"示":{"docs":{},"例":{"docs":{},"将":{"docs":{},"未":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{},",":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"已":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"未":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"则":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"访":{"docs":{},"问":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"它":{"docs":{},"也":{"docs":{},"不":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"之":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"存":{"docs":{},"有":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"后":{"docs":{},"续":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"以":{"docs":{},"下":{"docs":{},"分":{"docs":{},"两":{"docs":{},"种":{"docs":{},"情":{"docs":{},"况":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"伪":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"哪":{"docs":{},"些":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}},"写":{"docs":{},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"存":{"docs":{},"放":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"储":{"docs":{},"操":{"docs":{},"作":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}},"甚":{"docs":{},"至":{"docs":{},"可":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}},"连":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"都":{"docs":{},"写":{"docs":{},"不":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}}}}}}}}},"难":{"docs":{},"度":{"docs":{},"不":{"docs":{},"大":{"docs":{},",":{"docs":{},"但":{"docs":{},"有":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"能":{"docs":{},"够":{"docs":{},"写":{"docs":{},"很":{"docs":{},"多":{"docs":{},"有":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"了":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"1":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"索":{"docs":{},"引":{"docs":{},"基":{"docs":{},"底":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}},"运":{"docs":{},"算":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}},"采":{"docs":{},"用":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"上":{"docs":{},"述":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"x":{"docs":{},"处":{"docs":{},"于":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}},"多":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},"按":{"docs":{},"照":{"docs":{},"类":{"docs":{},"似":{"docs":{},"一":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"内":{"docs":{},"部":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"括":{"docs":{},"号":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"举":{"docs":{},"例":{"docs":{},"说":{"docs":{},"明":{"docs":{},":":{"docs":{},"对":{"docs":{},"于":{"docs":{},"某":{"docs":{},"几":{"docs":{},"个":{"docs":{},"测":{"docs":{},"例":{"docs":{},",":{"docs":{},"你":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"之":{"docs":{},"后":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"它":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"被":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"?":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"表":{"docs":{},"示":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"共":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"已":{"docs":{},"经":{"docs":{},"不":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"如":{"docs":{},"是":{"docs":{},"则":{"docs":{},"把":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"随":{"docs":{},"机":{"docs":{},"选":{"docs":{},"择":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"把":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"上":{"docs":{},"(":{"docs":{},"这":{"docs":{},"叫":{"docs":{},"做":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"把":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"回":{"docs":{},"顾":{"docs":{},":":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}},"容":{"docs":{},"易":{"docs":{},"发":{"docs":{},"现":{"docs":{},",":{"docs":{},"至":{"docs":{},"少":{"docs":{},"需":{"docs":{},"要":{"3":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"docs":{}}}}}}}}}},"寻":{"docs":{},"找":{"docs":{},"图":{"docs":{},"中":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"少":{"docs":{},"于":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}},"尽":{"docs":{},"量":{"docs":{},"减":{"docs":{},"少":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"个":{"docs":{},"数":{"docs":{},",":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"或":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"少":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"点":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"染":{"docs":{},"色":{"docs":{},"(":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"点":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"为":{"docs":{},"它":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"它":{"docs":{},"和":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"。":{"docs":{},"别":{"docs":{},"担":{"docs":{},"心":{"docs":{},",":{"docs":{},"这":{"docs":{},"不":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"算":{"docs":{},"法":{"docs":{},"失":{"docs":{},"败":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"会":{"docs":{},"使":{"docs":{},"得":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"保":{"docs":{},"存":{"docs":{},"与":{"docs":{},"恢":{"docs":{},"复":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"统":{"docs":{},"计":{"docs":{},"与":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"仅":{"docs":{},"完":{"docs":{},"成":{"docs":{},"竞":{"docs":{},"赛":{"docs":{},"第":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"(":{"docs":{},"达":{"docs":{},"到":{"docs":{},"课":{"docs":{},"程":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"静":{"docs":{},"态":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"被":{"docs":{},"单":{"docs":{},"一":{"docs":{},"赋":{"docs":{},"值":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"仅":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},")":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}},"了":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"性":{"docs":{},"能":{"docs":{},"测":{"docs":{},"试":{"docs":{},",":{"docs":{},"将":{"docs":{},"根":{"docs":{},"据":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"进":{"docs":{},"行":{"docs":{},"评":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"案":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"你":{"docs":{},"们":{"docs":{},"进":{"docs":{},"行":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"每":{"docs":{},"个":{"docs":{},"人":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"如":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"、":{"docs":{},"类":{"docs":{},"型":{"docs":{},"不":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},",":{"docs":{},"这":{"docs":{},"与":{"docs":{},"比":{"docs":{},"赛":{"docs":{},"要":{"docs":{},"求":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"想":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"请":{"docs":{},"告":{"docs":{},"知":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"测":{"docs":{},"试":{"docs":{},":":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"因":{"docs":{},"如":{"docs":{},"此":{"docs":{},",":{"docs":{},"许":{"docs":{},"多":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"优":{"docs":{},"化":{"docs":{},"算":{"docs":{},"法":{"docs":{},"都":{"docs":{},"建":{"docs":{},"立":{"docs":{},"在":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"实":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"相":{"docs":{},"对":{"docs":{},"差":{"docs":{},"值":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"恒":{"docs":{},"定":{"docs":{},"的":{"docs":{},"(":{"docs":{},"如":{"docs":{},"比":{"docs":{},"较":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"附":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{},"中":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"部":{"docs":{},"分":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},",":{"docs":{},"以":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"关":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"\\":{"docs":{},"t":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"]":{"docs":{},"+":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"│":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.015215553677092139}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.009298393913778529}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0084530853761623}}}}},"利":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"宏":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"忽":{"docs":{},"略":{"docs":{},"空":{"docs":{},"格":{"docs":{},"和":{"docs":{},"换":{"docs":{},"行":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"规":{"docs":{},"则":{"docs":{},":":{"docs":{},"通":{"docs":{},"常":{"docs":{},"用":{"docs":{},"来":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"空":{"docs":{},"格":{"docs":{},"、":{"docs":{},"换":{"docs":{},"行":{"docs":{},"等":{"docs":{},"空":{"docs":{},"白":{"docs":{},"字":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"种":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"教":{"docs":{},"程":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"添":{"docs":{},"加":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"一":{"docs":{},"个":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"库":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"终":{"docs":{},"于":{"docs":{},",":{"docs":{},"在":{"docs":{},"上":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"环":{"docs":{},"境":{"docs":{},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"着":{"docs":{},"手":{"docs":{},"开":{"docs":{},"始":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"了":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"开":{"docs":{},"始":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"脚":{"docs":{},"本":{"docs":{},"会":{"docs":{},"从":{"docs":{},"官":{"docs":{},"方":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"行":{"docs":{},"使":{"docs":{},"用":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"该":{"docs":{},"方":{"docs":{},"法":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},",":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{},"规":{"docs":{},"则":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"定":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"原":{"docs":{},"则":{"docs":{},"上":{"docs":{},"那":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"的":{"docs":{},",":{"docs":{},"每":{"docs":{},"次":{"docs":{},"你":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"你":{"docs":{},"都":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"便":{"docs":{},"于":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"可":{"docs":{},"以":{"docs":{},"附":{"docs":{},"带":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"、":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"信":{"docs":{},"息":{"docs":{},"等":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":10.011363636363637}},"是":{"docs":{},"指":{"docs":{},"删":{"docs":{},"除":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"以":{"docs":{},"减":{"docs":{},"少":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"和":{"docs":{},"资":{"docs":{},"源":{"docs":{},"消":{"docs":{},"耗":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}},"缩":{"docs":{},"小":{"docs":{},"调":{"docs":{},"试":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"把":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}},"适":{"docs":{},"配":{"docs":{},"不":{"docs":{},"同":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"申":{"docs":{},"请":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},"区":{"docs":{},"分":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"指":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"静":{"docs":{},"态":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"与":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"动":{"docs":{},"态":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"北":{"docs":{},"大":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"k":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}},"算":{"docs":{},"术":{"docs":{},"语":{"docs":{},"句":{"docs":{},":":{"docs":{},"这":{"docs":{},"是":{"docs":{},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"最":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":10.00268817204301}},"(":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"小":{"docs":{},"节":{"docs":{},"参":{"docs":{},"考":{"docs":{},"并":{"docs":{},"改":{"docs":{},"编":{"docs":{},"自":{"docs":{},"北":{"docs":{},"航":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"处":{"docs":{},"理":{"docs":{},"思":{"docs":{},"路":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"]":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"呢":{"docs":{},"?":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"技":{"docs":{},"术":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"找":{"docs":{},"出":{"docs":{},"函":{"docs":{},"数":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},",":{"docs":{},"标":{"docs":{},"记":{"docs":{},"这":{"docs":{},"些":{"docs":{},"值":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}},"维":{"docs":{},"护":{"docs":{},"一":{"docs":{},"个":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"存":{"docs":{},"储":{"docs":{},"所":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}},"顺":{"docs":{},"着":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}},"确":{"docs":{},"定":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{},"e":{"docs":{},"和":{"docs":{},"e":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"手":{"docs":{},"册":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"length":7669},"corpusTokens":["!","!,","!=","!=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","!x;","!。","\"","\"\"\"","\"${cmake_cxx_flags_debug}","\"${cmake_cxx_flags}\")","\"(\"","\")\"","\"*.cpp\")","\";\"","\";\"代表分号被解析以后会转化为","\"=\"","\"_tk\"","\"a\"","\"antlr4","\"declaration\"]]):","\"frontend/lexer/simplecbasevisitor.h\"","\"frontend/lexer/simpleclexer.h\"","\"frontend/lexer/simplecparser.h\"","\"gcc:","\"if\"","\"input.c\"","\"rv32i2p0_m2p0\"","\"src/*.cpp\")","\"unprivileg","#","#2","#2]","#includ","$","$?","$a","${antlr4_src})","${src})","$。例如,让你运行","$,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。","%","&","&&","&&、逻辑或","&name)","&name){","&name,","&symbol)","'","'&&'","'''","'('","')","')'","'*'","'+'","'/'","':'","';'","';')","'='","'?'","'['","']'","']')*","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'for'","'if'","'int'","'int')","'return'","'while'","'{'","'|'!'|'~')","'|'~'|'!')","'||'","'}'","'}')?","(","(!isvalidtype(vartype))","(!lefttyp","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","(0","(0)","(1","(1)","(2","(_t0,_t1)","(_t0,_t2),(_t0,","(_t0,_t3)","(_t2,_t3)","(a","(a,b),可以如此检查它们是否可以合并:","(a/b)*b","(a=1)+(a=a+1);","(add","(anoth","(args)","(array)","(body)","(children[0])","(children[1])","(children[2])","(children[3])","(compound_stat","(cond)","(condition)","(ctx","(decl)","(expr)","(express","(extend","(foo,","(func)","(func_name,","(funcdeclar","(function","(godbolt.org)来快速获得一个riscv指令的实现","(i","(i)","(i=0;","(ident)","(index)","(init)","(int","(integ","(k","(lefttyp","(lh)","(lhs)","(op)","(params)","(program","(ratified)中的volum","(ret_t)","(rh)","(rhs)","(sifiv","(some","(spec)","(statement","(sub","(sysv),","(tac)","(type","(type)","(x)","(两周)",")",")。","*","*(i32*","*(i32[3]*","*.cpp","*.h","*ctx)","*dst,","*node)","*target;","*、整除","+","+、减",",",".","...","...)","......","...;","./a.out","./a.out:","./check.sh","./configur","./my_compil","./reports/.pdf","./reports/.pdf,比如","./reports/stag","./requirements.txt",".align",".attribut",".bss",".cpp",".data",".file",".g4",".gitlab",".global",".globl",".ident",".option",".section",".size",".space",".text",".text.startup,\"ax\",@progbit",".type",".word","/","//","//···","/path/to/antlr","/usr/","/usr/local/bin/pk","/usr/local/bin/pk,要么每次都用完整路径。","/、模","0","0(t0)","0)","0))","0,","0;","0;}。","0;定义的,g(a)中的a是上一行的let","0。","0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为","0。例如:","0的思考题请与stage","0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(risc","0)。","0)完成通过例子学习一节末尾的思考题。","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","0,则其行为都是未定义的。当","0,我们会对第三个操作数求值。当第一个操作数的值为","0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于","0,语义规范说","0,跳转到","0,跳转到_l0,否则跳转到_l1","0;当操作数等于","1","1)","1))","1+2*(4/2+1)","1+3","1+3==4","1,","1.","1.1","1.2","1.3","1.67","1.pdf。","1.pdf。整个","10","10%","10%。","10%,对思考题的回答占","10.1","10.1.0","10.2","10.3","100","10;","10,我们将这类一元运算操作都称为","11","11.1","11.2","11.3","11.4","12","12)","12.1","12.2","13","15","16","16)","17)","18","19","192.168.1.1,端口为","1;","1;语句,ir会如何改变?)","1;这样的语句,但是不会见到return","1;,这样一条声明在语义上等价于","1=2","1]","1],补码表示。","1。","1。在生成过程中,首先使用","1一起提交。","1(待我们加上四则运算后)。","1)。","1),主要讲讲和_t1","1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","1,!!2","1,也就是说","1,当不满足时结果为","1,那么判断是否有","1;否则其结果为","2","2)","2))","2);","2+3)。","2,","2.","2.1","2.2","2.3","2.4","2.5","2.pdf。注意报告的标题是","20","20%","20)","20.04","2020.04.0)","2020.08.2","2023","2024","2024000001@192.168.1.1","2024000001,服务器","2024;","2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。","2024,就是将立即数","21","2123),对初始化表达式是非字面量的情况不做任何要求(例如","2147483647","2147483648,但可以写成","223","223,则命令为:","23.04","233","233;}","24","24:00","25","26","2;","2;,则对应的","2;,否则执行","2^31","2^31,","2”。","2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。","2下,你可以通过git","2中对于后端翻译的介绍和step","2作业放置在分支stage","2创建一个新的分支并继承当前分支的修改。","2,否则判断是否有","2,因此","3","3)","3))","3))(前序表示),不能解析成mul","3);","3),不能解析成sub","3,","3.","3.1","3.10)","3.11.4","3.2","3.3","3.4","3.5","3.5,即其操作数的求值顺序是未指定行为。","3.9","3.pdf。注意报告的标题是","30%","32","35","35%","3;","3;。因此,我们设置了两个跳转标签","3rd_party/","3rd_party/antlr4","3应该解析成sub","3应该解析成语法树add","4","4)","4,","4.1","4.13.2","4.2","4.3","4.4","4.5","4.pdf。整个","40","40%。","42%","48%。","4;","4};","4的式子来计算出y[1]的地址)","4,即可得到","5","5%))","5,","5.1","5.10","5.10)执行一条","5.11","5.2","5.3","5.3)对于同一个标识符,在同一个作用域中至多有一个声明。","5.4","5.4)使用不在当前开作用域中的变量名是不合法的。","5.5","5.6","5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。","5.7","5.8","5.9","5.pdf。注意报告的标题是","50%","52(sp)","55%。","56","5;","5。","5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。","5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)stage","5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。","5,因此","6","6.1","6.2","6.3","6.4","6.pdf。整个","60%","64","6};","6。","6),包括附加测试样例。","6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义","7","7%","7.1","7.2","7.3","7.pdf。整个","7。","8","8%","8)","8.1","8.2","8.3","8.3.0","8.3.0\"","8.4","8.5","8.7","8.8","8.9","80%","8会被编译器优化为5","9","9.1","9.2","9.3","9.4","9.5","9.6","90%,剩余","9]+","9]+\"","9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码:","9_]*","9。",":","::=",";",";)",";))",";。","=","==","==,","==(等于)和",">",">,",">=",">equals(righttype))",">expr());",">insert(name,",">isfloat()",">isfloat())",">isinteger()",">isinteger())",">left);",">lookup(name);",">parent;",">right);",">statement(0));",">statement(1))",">statement(1));",">type;","?","@function","[","[,","[0","[0,","[1,","[]","[_t0,","[_t1,","[_t3,","[_t6,","[_t7,","[a","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","[r0,","[r0]","\\t\\r\\n]+","]","],","___","__init__(self,","_b0:","_b1","_b1:","_b2","_b2,","_b2:","_b2结尾都是jump指令,表示从true_bb、false_bb跳转到next_bb。","_b3","_b3:","_b3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_b0的结尾是一个branch指令,_b1,","_b3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_b4,","_b5两个基本块。多出来的_b6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_b6?提示:如果break;语句后面加上a","_l0","_l0,","_l0:","_l0],","_l1","_l1,","_l1:","_l1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到","_l2","_l2:","_l2]","_l2)是执行","_l2,分别表示","_l3","_l3)处。","_lk","_main:","_t0","_t0)","_t0,","_t0,_t2,_t3","_t0[i32","_t0、_t3、_t4","_t0。例如,测例中直接用返回","_t0。如果","_t0和_t1的值是常量,将_t0和_t1的值分别存入常量表。","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t0,此时","_t1","_t1)","_t1,","_t10","_t10)","_t11","_t1[i32","_t1}","_t1、_t2","_t1。","_t1。下面是另一个ir输出格式的例子:","_t1。为了满足","_t1翻译过程发生了什么。","_t2","_t2,","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","_t3","_t3)","_t3),(_t2,","_t3,","_t3}","_t4","_t4,","_t4]","_t5","_t5,","_t6","_t7","_t8","_t8,","_t9","_t9]","`p_`","`t_interger.__doc__`","a%b","a)","a.out","a.out:","a.out。但","a.out,具体操作如下","a.out,获取返回码","a0","a0,","a0,233","a0,a0","a1","a1,","a7","a;","a;}","a=0;","a=1+3;。编译器可以计算出","a=2;","a=4;。","a=f();","a=f();。","a=f();,其大致实现为","a[(l+r)/2];","a[0]","a[0][0]","a[0][1]","a[1]","a[1][0]","a[1][1]","a[1][7]","a[2][2]","a[4][5];","a[])","a[],","a[];。","a[][12]){","a[b],要求","a[d1][d2]...[dn],访问元素","a[i1][i2]...[in]","a[i1d2d3...dn","a[i]","a[i];","a[j]","a[j];","a[n];","a[n][m];","abdulaziz","accept","accept(self,","accept:根据每个函数的","access","add","add,","add_executable(my_compil","add_library(antlr4_runtim","add_subdirectory(3rd_party/antlr4","addexpr","addi","addit","addr,","address","ai,","ai即可。","aj,","alloc","alloca","alloca、load","alloca、load、stor","allocforloc:每一条指令进行寄存器分配。","allocregfor:根据活跃变量信息决定为当前","alloc、load","alloc,load","altern","analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。","analysis),或者称为“活跃变量分析”。","analyz","analyzer.accept(cfg)","analyzer):检查ast是否符合语法规则和语义规则。","antlr","antlr4","antlr4;","antlr4_runtim","antlr4_runtime)","antlr4_src","antlrinputstream","antlr。前几行(3","antlr简介","appl","approach","apt","arch,","architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。","arg1,","arg2,","argc,","argpars","argparse:","argument_list","argumentlist","argv[])","arithmet","arithmetic,将","arm","arm...)和源语言(minidecaf,","arm)中和","arr[0]","arr[1]","arr[2];","arr[3];","arr[3]={1,2,0};","arr[3]={1,2};","arr[4]","arrayref","arraytype())","arraytype(2,","arraytype(3,","array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为stackobject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","asm.transform","assembl","assign","assign:","assign_stmt","assignment,","ast","ast),接下来通过扫描","ast/","astbuildervisitor","astfunc","astfunc.body.accept(self,","astnod","astvisitor","ast省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。","ast)。比如,对于下面这一段简单的minidecaf","ast),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。","ast,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现","ast,对每个语句和表达式逐一进行类型检查,并在","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","atn","augment","auto","a。","a:","a:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块","a:可以通过本地测试或者通过","a:如果你安装了多版本的","b","b))","b);","b,f涂成相同颜色。这样就会导致","b;","b[1]);","b[2][3]","backend","backend/","backend/asm.pi","backend/dataflow/","backend/dataflow/cfg.pi","backend/reg/","backend/reg/bruteregalloc.pi","backend/riscv","backend/riscv/","barku","basevisitor","base,索引下标","bash","basic","basicblock","basicblock(基本块)内的指令进行寄存器分配。","basicblock,每个","bbl","begin","beginloop_label:开始下一轮迭代","beginloop_label:本轮迭代完成","beginloop_label:本轮迭代完成,条件满足时进行下一次迭代","behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。","behavior),即对程序的行为无任何限制。","beq","beqz","binari","binaryop(add)","binaryop(eq)","binaryop(lt)","bind:将一个","binop(add)","bison","bison,","bison)辅助你生成","bit","bits)中的任何一个,在编译选项中写上","block","block,","block_item","block_item*","blocks;","block)和控制流图(control","bne","bnez","bodi","book","bool","br","branch","branch、beqz(条件为假时跳转)、bnez(条件为真时跳转)或者","branch、condbranch","branch,当切换到一个新的","break","break/continu","break;","break_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","brew","brigg","bruteregalloc","bruteregalloc(emitter)","bss","builder","builder.buildfrom(pair[0])","b有边相连的所有结点中有多少个","b,则图中包含从","c","c)","c++","c++17","c++。通过定义语法文件(.g4","c++)","c++,rust","c++,你可以从","c,","c/c++","c17","c=0;","c=0;}","calcul","calculate()","calculate();","call","calle","caller","caller/calle","caller,语句中的表达式的值会返还给","cat","cd","cfg","cfg:","cfgbuilder()","cfg,可以参见","cfg:https://szp15.com/post/how","chaitin","chapter","chapter3:https://pfalcon.github.io/ssabook/latest/","char*","checkout","child","child.accept(self,","children","child,直接调用","ci","ci.yml","ci/cd","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","ci,这不会对你的提交/补交产生影响。","class","clone","cmake","cmake_minimum_required(vers","cmakelists.txt","cnt);","coalesc","coalescing的论文中并没有提及函数调用约定的处理方式,在这里以risc","code","code,","code。","code,可以删除。","commit","common.h","commontokenstream","compil","compilation)。","compiler:","compiler:","compiling.github.io/minisysi","complete.jar","complete.jar(截至文档写作时此为最新版)。","complete.jar替换成你的","compound_stat","cond","cond(std::move(cond)),","cond,","cond;","condbranch","condit","conditional,表示条件表达式。","cond,循环体","cond,更新语句","cond,真分支","conflict","const","construct","continu","continue_label:continu","controlflow","controlflow,","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。","count","cout","cp","cpp的","cpu","ctrl","ctrl,i=i+1","ctx)","ctx)是单一的作用域。到了","ctx:","currentscop","currentscope;","cxx)","d","d,","d;","d=0;","d=0;}","d=0;,到底是","d=0;?","darwin.tar.gz,不过还需要通过","darwin.tar.gz,只用里面的","data","dce","dce)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。","ddebug\")","debug","decaf","decaf,我们在新的且更简单的语言规范下复用了","declar","declaration)*","declaration,","declarator(identifier(\"b\"),","declarator(identifier(\"x\"))","declarator(identifier(\"y\"),","declarevariable(const","def","definit","def和def","def链、def","degre","devic","df","dfg(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。","dfs(func)","dfs(node:","diagram","directori","div","div:","divexpr","dlanguage=cpp","docstr","download","dragon","dst;","dtc","dtc):","e","e.g.,","e;","ebnf","echo","elementptr:","elf","elf(execut","elif","elimination,","elimination)、常量传播(const","else:","else;","elsebranch","else(dangl","else)","else),要求","emitfunc","emitt","emitter)","emitter.emitend()","emitter.selectinstr(func)","empti","encod","encoding;","encount","end","engin","enterscope()","enum","epilogu","epilogue。epilogu","epilogue,将","equal","error\"","error:","euc","exampl","example.c","exec","execut","executable,","exitscope()","explor","expr","express","expression)*)?","expression):","expression)?","expression.\");","expression:","expression?","expression_list","expression)。","expression,变成","expression,表示赋值表达式。","e)。假设我们的处理器只有","f","f()","f(){if(0)","f(a);","f(a);。","f(int","f_stream.open(argv[1]);","f_stream;","false_target,","file","file(glob_recurs","file:","fill_n","fill_n(arr,","fill_n(int","first","flex","floattype();","flow","fn","foo","foo(_t2,","foo(a,","foo(i32","foo(int","foo(t1,","foo.c","foo.s(记得加","foo:","foo函数的参数表示为_t0,","form)","format","format)。","found","fp","fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。","fp,此时","frontend.parser.parser(位于","frontend/","frontend/ast/node.pi","frontend/ast/tree.pi","frontend/ast/tree.py:unary、utils/tac/tacop.py:tacunaryop、utils/riscv.py:rvunaryop","frontend/ast/visitor.pi","frontend/ast/。","frontend/lexer/lex.pi","frontend/lexer/lex.py。ast","frontend/lexer/ply_lexer.pi","frontend/lexer/;语法分析程序位于","frontend/parser/ply_parser.pi","frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于","frontend/parser/ply_parser.py,而词法的定义位于","frontend/parser/;语法树位于","frontend/scop","frontend/scope/","frontend/scope/。","frontend/symbol","frontend/symbol/funcsymbol.pi","frontend/symbol/varsymbol.pi","frontend/tacgen/tacgen.pi","frontend/tacgen/tacgen.py。","frontend/type/array.pi","frontend/typecheck/namer.pi","frontend/typecheck/namer.py;类型检查位于","frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于","fun(int","func","func(1,","func(arr);","func(int","func:","func_exit","func_exit:","funcdeclar","funcdeclaration:","funcname,","function","function(node):","function(p[1],","function):","function*","function,","function:","functions;","function,同时代码中的p[0]","function,每个","g(a);","gcc","gcc编译程序运行时间","gcc,用来生成","gcc,这种","gcm","gener","generator):将","generator):将优化后的中间代码转换为目标机器代码。","getint","getint();","ghuloum","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github","github),托管至私有仓库的请不要给其他同学任何访问权限。","git。","glob_recurs","globals;","grammar","grammars,","graph(cfg)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectinstr),指令选择将中端tac代码转换为riscv汇编代码,selectinstr函数中,我们也采用了visitor模式遍历指令序列,","graph)是用于进行上述分析的数据结构。","gustedt","gvm","handbook","has_otherwise(oth","has_otherwise;","hello","here.","hints,如果你习惯在","homebrew","http://scheme2006.cs.uchicago.edu/11","https://blog.csdn.net/daybreak222/article/details/87968078","https://buaa","https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf","https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git","i2d3...*dn","i32","i32*","i32[3]*","i;","i=0;;i=i+1)","i=0;i","i=0;i。","i=1;","id","id:","ident","identifi","identifier(\"a\")","identifier(\"b\")","identifier(\"foo\")","identifier(\"i\")","identifier(\"main\")","identifier(\"x\")","identifier(\"y\")","identifier(main)","identifier)*)?","identifier,","identifier),可以用字符串字面量表示终结符(如","ident,初始表达式","ident,参数列表","if(a)","if(b)","if;这样的语句,因为","if_stmt","ifcontext","ifcontext,对应的语法规则如下:","ifnod","ifnode(std::unique_ptr","ifnode,并返回","ifnode:","ifstat","ifstream","if。","if;","immedi","in]。在将数组索引翻译成","include_directories(3rd_party/antlr4","include_directories(src)","increment","index","indexexpr","init","init_expr","initlist","init、ctrl","init、ctrl、post","init,i","init,循环条件","input","input(f_stream);","input.","input.c","input.s,最高优化等级(否则输出的汇编会很冗长)","insert(const","instal","instr.dst,","instr.operand))","instr.valu","instr.value))","instr:","instruct","instructions)(其实就是赋值)传值的寄存器。","instructions;","instruction。","instruction,然后根据不同的指令类型定义不同的子类。","int","int(1)","int(2)","int(t.value)","int:","integ","integer(2024)","integer)*)?","intexpr","intliteral(0)","intliteral(1)","intliteral(10)","intliteral(2)","intliteral(2024)","intliteral(3)","intliteral(4)","intliteral(5)","intliteral(6)","int)从左到右存放在","int)放在","int;关于逻辑非,只有","ip","ir","ir、完成中间代码生成","ir。","ir。在静态单赋值的","ir。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。","ir中的phi指令。通常phi指令会被翻译为mv指令,但留意多条phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。","ir里通常会假设数量无限的虚拟寄存器(或称作变量),但目标isa(instruct","ir)是介于语法树和汇编代码之间的一种程序表示。","ir)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的ast转换为中端代码。","ir,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。","ir,只需要写","ir,并能够输出","ir,这里有一些参考:","is_reg","is_reg;","isa","isa=rv32g","isinst","isinstance(child,","isinstance(node,","iter","j","j)","j);","jar","java","java...)。由于不同源语言的","java、python","jdk","jen","jmp","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","jp","jump","jvm","k","kind","l)","l,","l;","la","label","label(t0,","label1","label1,","label1,后续再通过无用指令消除去掉li","label2","label;","labelmanag","labelmanager()","labelmanager)","label,传入的实参为t0、t1等","lalr","lalr(1)","land","languag","lbrace","lc","lc:","ld","ldr","lefttyp","lefttype;","length","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","lexer(&input);","lexer/","lexer(或","lhs,右操作数","li","lib","link","linked,","linux","linux/mac","linux用户","linux,spik","list","list=riscv32","listen","listener(默认是激活的)和激活","live","livein","livein(succ(b))。","livein、liveout","livein、liveout。","livenessanalyzer()","liveout","liveout(b)","liveus","llvm","load","load_symbol","loadaddr","loader","loadfromstack","loadstackaddr","localalloc:根据活跃变量信息对一个","locat","logical_and","logical_or","lookup(const","loop","lor","lot","lp","lp:","lparen","lr(1)、ll(1)","ls","lsb","lsl","lt","lts;","lvalu","lvalue节点的例子,希望能帮到你。","lvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释)","lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在","lw","m","mabi=ilp32","mac","maco","mac),window","mac),可以尝试自行根据","main","main()","main(){","main(){return","main(int","main,","main.cpp","main.pi","main.py,它通过调用","main:","main],","main_exit","main_exit:","main。","main函数中对于数组b,先使用alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在loadaddr指令获取a的地址之后,还要用load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。","main(可忽略)","main:","make","malloc","march=rv32im","mem2reg","memset","merg","midend/","miniconda","minidecaf","minidecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低","minu","minus:","min{100,","mip","mips,","mips)规定的物理寄存器,其数目有限;而","mismatch","mod(int","monkey:","mov","move","mul","mul,","mul:","mulexpr","multi_nesting.c","multipl","mv","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitload(expr.value)","my_compil","n","n2176(n2176","name","name;","namer","namer(visitor[scope,","namer(visitor[scopestack,","namer(visitor[yourtype,","namer.transform","namer.transform,","namer/typ","namespac","naur","need","neg","network","node","node):","node,","node.functions:","node:","non","none","none:","none])","none]):","none]),其中","nopic","nora","notimplementederror","nqcc","nullptr)","nullptr;","o","o1与","o2","o2优化的性能的","o2(减少不必要的指令生成),翻译一条指令看看效果。","o2)。","o3","obj,","offset","offset(sp)就足够了。需要注意的是storetostack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为loadstackaddr和一条store指令。","offset)","offset:","offset:将t0中的内容写入到栈上对象obj偏移offset处","offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0","ok","omit","oop","op","op:","opcod","opcode;","openjdk","oper","operand","operand:","operand,运算类型","operator,","option","optional[u]:","os用户,假设你已经将spike加入环境变量,将pk加入系统目录","os)中进行开发。助教不推荐直接在","other(std::move(other)),","other;","otherwis","output","overrid","p","p)","p[0]","p[1]","p[1]则是minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的","p[2])","p[2],","p[6])","p_expression_precedence(p):","p_function_def(p):","p_program(p):","p_unary_expression(p):","pair","pair[1])","parallel","param","param[0]","param[]){","param_list","param_list,","paramet","parameter_list","parameterlist","params,函数体","parenexpr","parent","parent(parent)","parent;","pars","parser","parser(&tokens);","parser.pars","parser.parse(...)","parser.program();","parser/","parser)一些信息,最经典的例子是","parser,只需要执行","parsetree*","pass","pass。","pass。下面,我们将指出,step1","path=$path:/path/to/riscv","pdf","phase","phi","pip","pipelin","pk","pk。","pk,不过那是","pli","plu","plus:","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考","ply),其使用方法与","pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。","port","post","postfix","post。","ppa:deadsnakes/ppa","prebuilt","prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to","prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc","prefix=/usr/loc","prepare.sh","primari","print","printf(\"%d\\n\",","printf(\"hello","problem”。","prog.funcs:","prog:","program","program(function(...)),这里program、function类的定义在frontend/ast/tree.py文件中,你可以看到function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。","program(listnode[union[\"function\",","program(p[1])","program(p[1])代表了构建ast的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0]","program(p[1])最后就会变为p[0]","program)","program):","program,","program.functions().items():","program:","programmer’","program),大写字母打头的是终结符(如","project(my_compil","prologu","prologue。prologu","prologue,将","propagation)、值域传播(valu","propagation)等。","public","public:","push","putint","putint(int);","putint(x);","putint的liveout集合中,会与全部的cal","pylanc","python","python3","python3.9","python,使用","python,可以通过","qemu","qemu/spik","qemu。","qemu与","qemu)使用的可执行文件的格式是","qemu,即","qsort(a,","qsort(int","q:","q:使用","q:如何提交课程报告?","q:我怎样才能知道我的提交通过了所有测试用例?","r","r\"[0","r)","r0,","r1","r1,","r;","ra","ra,","rais","rang","ra是一个cal","ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了","rbrace","rc","rc:","readcod","readm","real","recognition)","recurs","reduc","reg0","reg0,","reg1","reg1,","reg_alloc","reg_alloc.accept(cfg,","reg_id;","regist","relat","remot","reports/.pdf,比如","reports/stag","repositori","represent","representation,","requirements.txt,你可以通过","res,","resolvevariable(const","result","result);","result;","ret","retri","return","return(statement):","return)","return):","return,","return_type,函数名","rhs,运算类型","righttyp","risc","riscv","riscv.callersaved)","riscv/riscv","riscv32","riscv64","riscv64,","riscvasmemitter(riscv.allocatableregs,","riscvasmemitter.pi","riscvsubroutineemitt","rp","rp:","rparen","rule","rules)。","rule:","runtim","runtime)","runtime.h","runtime.h\"","runtime/","runtime/cmakelists.txt","rust","rv32/64g","rv32i","rv32im","rvunaryop.neg,","s","s0","s0,","s1;","s2;","sandler","sat","save","save/cal","saved。","saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前cal","saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。","saved寄存器。","saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。)","saved寄存器。如果某个临时变量存放在calle","saved寄存器上。经过后续优化可能的最终汇编代码如下:","saved寄存器与临时变量的绑定关系。你可以用subemitter.emitstoretostack和unbind来达到上述效果。","saved寄存器中且活跃的临时变量,然后解除所有cal","saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如calle","saved寄存器中的临时变量保存到栈上,这实际上让所有cal","saved寄存器中的参数也被丢到了栈上?似乎有些多余?","saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有cal","saved寄存器中,那么它不会在上一步骤被放到栈上。","saved寄存器加入到call指令的def集合中,剩下的事情交给寄存器分配算法处理。考虑以下c语言片段:","saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。","saved寄存器或栈上。因此我们先将活跃且在cal","saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g.","saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是calle","saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在cal","saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它cal","saved寄存器相干涉,这样x就会自动被分配到calle","saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个calle","saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv","saved寄存器,但它有着和calle","scan","scope","scope.lookup","scope.pi","scopestack)","se","second","selectinstr","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","self.seq.append(riscv.unary(op,","self.visitother(that,","semanticanalyz","semi","semi:","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","seqz","set","set(cmake_cxx_flag","set(cmake_cxx_flags_debug","set(cmake_cxx_standard","shell","shell,那加到","shift","sifiv","signific","sim","simplec","simplec.g4","simplec.g4,并利用它生成一个","simplec;","simplecbasevisitor>","simpleclex","simplecpars","singl","size","skip","slt","snez","someth","sp","sp,","spec\"。","spec\",另外这里也有(非官方的)指令用法说明。下图给出了","specif","specifi","specification。","specifier(tint)","spike","spike(会自动安装","spill","sp,并恢复","src","src,","src/","src/frontend/lexer_pars","src/main.cpp","src1,","src1;","src2","src2;","ssa","ssa/","ssa)是编译器中间表示(ir)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。","ssh","stack_align,","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","stage","stage1","stage5","stage6","stage7","stage7,否则无法获得对应分数。","stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️","stage,每个","start","statement","statement(node):","statement)?","statement*","statement:","statements:","static","std::make_shared(currentscope);","std::make_unique(std::move(cond),","std::move(elsebranch));","std::move(thenbranch),","std::runtime_error(\"invalid","std::runtime_error(\"typ","std::shared_ptr","std::string","std::unique_ptr","std::unordered_map>","std::vector","std;","step","step1","step10","step10:全局变量","step11","step11:数组","step12","step12)。在这个","step12:为数组添加更多支持","step13","step13:寄存器分配算法改进","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step1,实验框架给出的初始代码可以通过","step1:一个仅有","step2","step2。","step2:一元运算符","step3","step3:加减乘除模","step4","step4)。在这个","step4:比较和逻辑表达式","step5","step5:局部变量和赋值","step6","step6:作用域和块语句","step7","step7:","step7:","step8","step8)。在这个","step8:循环语句","step9","step9,","step9:函数","step_pars","step_until=1","step。每个","stmt.expr.accept(self,","store","storetostack","store,搜索ubuntu,选择ubuntu20.04.","str])","strip","struct","stuff...","sub","sub,","subexpr","submodul","subroutineinfo.pi","sudo","sw","swap","swap(int","swap(y,","swap:","symbol","symbol)","symbol);","symbol.pi","symbolt","symboltable(std::shared_ptr","syntax","sysi","t","t)","t):","t.valu","t0","t0,","t0,t1","t0指令用于传递一个参数。","t0结果,成立为1,失败为0","t0,这里的逻辑或需要将t1、t0进行或操作后,再判断其值是否为1。为什么这一步不在产生","t1","t1,","t1和t2作为被调用函数foo的实参,而调用后的返回值保存在t0中。","t2)","t2,","t3,t1,t2","t3,t3","t_integer(t):","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","table;","table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。","tac","tacfunc","tacfuncemitt","tacfuncemitter(funclabel(funcname),","tacfuncs.append(emitter.visitend())","tacgen.transform","tacinstr.pi","tacprog(tacfuncs)","tacprog):","tacprog:","tacunaryop.neg:","tac)是一种经典的","tac)看起来很像汇编,与汇编最大的区别在于","tap","target","target_link_libraries(my_compil","temp","temp:","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","test.c","testcases/step1/multi_digit.c","testcases/step1/newlines.c","that:","then(std::move(then)),","then,","then;","thenbranch","then,假分支","throw","ti,","tint","tint(typeliteral):","tint)))","ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。","token","tokens(&lexer);","token。它被看成是一个取负符号、后面是它的绝对值。","token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0","token,然后解析器分析","tool","toplas'1996:","tostringtree(&parser,","transform","transform(self,","transit","tree","tree,","tree.unary(unaryop.neg,","tree/","tree:","tree;","tree。","tree。最终把一个简单的","tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用","tree)并根据其结构生成对应的","tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(ast)。ast","true)","true_target","tutorial/challenge/mem2reg/help.html","type","type(int)","type,","type:","type;","typecheckervisitor","typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typ","typeliteral(node):","typer","typer.pi","typer.transform","u","u;","u]):","u],","ubuntu","ubuntu,","ubuntu14/*","ubuntu14/改名为","ubuntu,debain","ubuntu,你需要自己编译出可用的用户态","ucb","unaligned_access,","unari","unary(expression):","unary)","unaryop(neg)","unary,其中p[0]代表的就是第一个unary,","unary,那么","unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。","unbind:将一个","union","union[int,","union{","unix","unknown","unprivileg","updat","update,循环体","us","user","username@ip","user。","use关系,找出所有用到常量_t0和_t1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_t2的值为5,也是一个常量,将_t2的值加入常量表。","use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","use链、可达定义分析等。","utils.error.illegalargumentexception:","utils/riscv.pi","utils/tac","utils/tac/;中间代码生成位于","utils/tacgen/tacgen.pi","v","v(32","v,","v.visitfunction(self,","v.visitprogram(self,","v0,","v:","valu","value))","value:","value;","var_type,变量名","var_t,标识符","vardecl","vardeclar","variable.\");","vartyp","vartype;","version","virtualbox","visit","visit(ctx","visit(nod","visitbinaryexpr(binaryexprnod","visitblock","visitfunct","visitfunction(self,","visitifstat","visitifstatement(simplecparser::ifstatementcontext","visitload(self,","visitor","visitor(protocol[t,","visitor[t,","visitor。此外,为了便于实现,我们不使用","visitother(self,","visitprogram(self,","visitreturn(self,","visitunary(self,","visitvariabledecl(variabledeclnod","visitxxx","vmware","void","vs","vscode","v为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个c语言片段:","v官方资料","v指令","v指令序列","v指令序列:","v标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。","v汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。","v的i型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。","v相关内容补充","v(非官方)汇编指令用法","v,risc","weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。","while(a","win10","window","world!","world!\"输出。","world!\\n\");","write","ws:","wsl","wsl,或者运行一个虚拟机。","wsl,通过","x","x)","x);","x+","x,","x1","x86","x86,","x86_64","x:","x;","x[10];","xi,","xi的方式将全部xi移入ti中,接下来再生成mv","xj;如果vi的值不在物理寄存器中,调用emitloadfromstack。(思考:","xx","xxx","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x同样也是表达式,其会生成一个值。而带返回值的","x(然后回车)。如果开头没有","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","x,那你最终敲到终端里的是","y","y)","y,","y1","y2","y;","y[10];","y[1];","y[])","yacc","yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。","yacc(简称","yourtyp","y。","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","y,并且","z0","z_]","za","zero,","zsh","{","{1,","{1,2};","{_t0,","{_t0}","{_t1}","{_t2,","{if(b)","{}","|","||","}","}))","};","}[instr.op]","}”","},且其返回值被","~","~!这三个单目运算符和从","~/.bashrc使修改生效。","~/.zshrc","~0","~a,","×","——","“typedef","“执行到了","“控制流图”","“虚拟寄存器”","↩","√","│","└──","├──","、乘","、按位取反","。","。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。","【linux","【maco","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","一个","一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。","一个例子","一个函数中可以有任意多条","一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。","一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。","一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的","一个编译器主要由以下几个部分构成:","一些tips:","一些可能带来困惑的地方","一元运算","一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。","一元运算(如取负、取位反)","一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。","一或多次,?","一栏的","一样,见上一节。如果不设置每次使用","一种可能的方案是使用","一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。","一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念,","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","三个操作的语义和","三地址码","三地址码为例,介绍中间表示的设计。","三地址码定义位于","三地址码(three","三地址码;在编译器后端中,将三地址码转换为","三种不同的一元运算符类型?","上例中,.data","上实现时,你可以用","上打开你的项目,在界面的右侧,clone","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上的结点类型。","上表给出","上进行类型标注。对于静态类型(static","上述代码转化为ir后可能如下:","上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到","上述步骤","上面例子对应的控制流图如下:","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","上面的说明只是简要介绍了算法的原理,请阅读论文","上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。","上,如","下。class","下实现了各种","下标运算越界是未定义行为。","下的","下载","下运行(qemu","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:","下面以二元运算指令为例,展示如何定义一个具体的指令类。","下面我们以","下面我们列出了所有框架中已经完成的特性:","下面我们将通过一个简单的","下面描述了","下面是一段含有函数调用的代码片段:","下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。","下面是环境配置指南,请阅读自己的系统的那一小节。","下面汇总一下。","下面的例子中,代码中不同的基本块被标以不同的颜色:","下面的描述中一定要记得区分accept和直接对于mv.visitxxx的调用,前者是在遍历ast时调用的,后者是在","下面简要介绍一些你可能需要的预备知识。","下面给出","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","不一样。","不为","不允许","不再要求完成基础实验以后再进行大实验","不出意外你会获得如下结果:","不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把","不合法,但","不同,主要用于在栈上分配内存)","不同,直接从","不建议阅读,太过冗长,这对于编译知识提升非常有限。","不支持","不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号","不是合法的","不是编译器常量;","不知道这点(parser","不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","不能出现在循环外。","不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。","不过事实上,很多时候看","不需要你编写任何代码,stage","不需要新增新的中间代码指令。","与","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么?","两类寄存器,而不是要求所有寄存器完全由","个","个偏移的内存地址中的数据","个元素(从","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个变量,m","个基础关卡,你需要通过它们以拿到一定的分数(35%)。","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","个寄存器可用于存放变量),那么可以依照下面的顺序执行","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个整数寄存器的分类。所谓","个模块。","个步骤(其中","个汇编生成器,只有","个源语言和","个点的颜色冲突。","个目标代码生成模块。如果有了","个目标指令集,需要写","个结点不会在在步骤1被删除,因此如果","个结点,m","个通用寄存器,在这种情况下,我们无法将","个,说明最多有","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。","中。比如我们有这样一段","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中会先调用","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你只需要关注","中你将实现常量操作(加减乘除模等)。","中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。","中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。","中你将第一次支持变量声明与赋值。","中你的代码会得到不一致的结果,请联系助教。","中你的编译器将支持作用域,以便支持后续的条件和循环。","中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。","中出现的每个变量名分别对应那个变量。","中加入相应的分派函数。","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中只有","中只需要考虑常量的计算,直到","中场休息","中存储地址,加载与该地址相差","中存在双目标分支(标签)的条件分支指令,其形式如下:","中实现的整型常量越界检查。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中引入的","中引入的二元运算节点中进行修改即可。","中引入的运算均为二元运算,在","中我们提供了","中我们提供了加法和逻辑或操作运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——单层作用域的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","中我们是如何实现符号表构建","中描述了如何运行","中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下:","中提到的当前代码框架中的分配算法。","中搭建开发环境。你需要安装或保证如下软件满足我们的要求:","中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它","中活跃变量的例子:","中添加基本块是否可达的判断。在寄存器分配算法","中的","中的一方保存?为何保存返回地址的","中的临时变量均用","中的变/常量可以直接对应。","中的对应结点来实现。另外,别忘了循环本身也是一个作用域!","中的每一个","中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。","中的第","中目标代码生成主要是指令的选择以及","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中端介绍","中端优化","中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。","中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等","中端参考资料","中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。","中端的设计包括:中间表示的设计、中端代码生成和中端优化。","中端设计","中端:负责中间代码生成、优化。","中第一个","中类型检查的部分,以及","中规定不管返回值有没有被使用,都是未定义行为。","中设置使用","中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中进行开发的话同时推荐使用","中通过一遍","中逻辑运算符","中间代码指令。需要特别提出的是,risc","中间代码生成","中间代码生成器(intermedi","中间代码生成:将","中间代码目录","中间的虚线边改为实线,表示不再考虑二者合并的情况。","中间表示","中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)?","中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。","中间表示设计","中间表示(也称中间代码,intermedi","中间表达指令为例,risc","中,a","中,a0","中,i=0","中,namer/typ","中,tac","中,主要有以下几个函数:","中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。","中,你将支持全局变量和数组,数组中包括全局数组和局部数组。","中,使实现更加模块化。","中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。","中,变量符号的定义里有该变量对应的","中,定义的新","中,我们会将左值的范围进一步包括数组元素。","中,我们只维护了","中,我们只需为","中,我们对于短路求值未做要求,但在包括","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","中,我们要给整数常量增加一元运算:取负","中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。","中,然后再把","中,由","中,负数字面量不被整体作为一个","中;寄存器分配在","临时变量","临时变量对应起来。","临时变量成员。","临时变量的赋值","临时变量赋值操作","为","为书面作业和日常成绩。","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","为了安全起见,服务器仅可通过校内网络访问。","为了实现","为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下:","为了实现所有可能的跳转,对每个","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:ir","为了简单,我们不要求这点。比如对于形如","为了让","为什么有的临时变量可能在寄存器中?","为什么框架定义了","为何","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为假,那么应当跳转到","为全局符号;.word","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为字符串,加载","为实验框架熟悉,不需要修改框架代码)。后续的","为止。由于在栈顶作用域对应的符号表中不存在变量符号","为满分,按照比例折算。如果一个程序","为环境配置和框架学习,无需进行编程,不计入成绩。","为真,那么按顺序执行","为立即数","为符号类的基类,varsymbol.pi","为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:","为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评","主函数入口符号","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","举个例子,一种可能的中间代码表示为:","举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的?","之前","之前执行的初始化函数中","之前甚至","之后","之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:","之后,如果我们想要编写一种遍历","之后,这些","之外的函数没有","之类的","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","也就是","也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。","也提供了","也是可以使用ssh远程写代码的,参考这里。","也是必要值。最终","也是必要值。继续找到","也是需要进行代码编写的,可以参考基础实验框架的ir在代码层面是如何实现的(utils/tac)。","也有很多写法,另一种是用尖括号表示非终结符","也需要如上改动。","了。","了,还有可能是如","事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。","事实上,我们可以用图染色问题去描述“相互冲突的变量”:","事实上,由于","二元操作符","二元运算","二元运算需要两个操作数,并且会产生一个计算结果。","二元运算(如加、减、乘、除)","什么是","什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。","什么是中间表示?","仅完成竞赛第一阶段(达到课程基础实验的要求)","仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次)","介绍","介绍,在当前的步骤不需要考虑)。","从","从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从执行的指令的条数这个角度(label","从本步骤开始,由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","从编译器中端出来的中间代码中,我们对","从这个ir例子中,我们可以看到,相对于c语言,ir中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在ir中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,ir中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。","从这里下载我们预编译的二进制程序包","从这里下载预编译好的","仓库下载","仓库下载预编译的库或者自己编译安装。但是官方的","仓库链接。","代替了返回变量","代码","代码”的操作被称为交叉编译(cross","代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码中的标签只有标志","代码中,x","代码为示例:","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出","代码可简化为:","代码框架","代码框架需要同学们对寄存器分配相关的","代码段","代码没有特别需要修改的地方。","代码生成","代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame","代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑","代码的控制流图。int","代码的格式,只要方便自己调试即可。例如,你也可以将","代码编译到","代码转化为了","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","代码(你不需要精确了解它的含义,大致理解即可):","代码,不过不是合法的","代码,也许","代码,这样可以使中端与后端完全解耦。","代码:","代表","代表a","代表b","以","以上给出了一份","以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下:","以下是一个简单的类型检查器示例:","以下讲述数据流分析的内容中,所有的","以产生","以及","以及常识相同,例如","以及括号","以及逻辑非","以后就能编译到","以处理命令行参数。官方文档中提供了它的教程。","以这个文法对应的一段","仿照","优先和最接近的没有匹配","优先级和结合性","优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1","优化器(optimizer):对中间代码进行优化。","会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入","会对应于一个","会将数组变为","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","会被","会返回","传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。","伪指令可能会被转换成哪些","但为了实现简便,我们就不要求支持这点。","但大多数时候ld","但如果将上述代码变为","但我们加上参数","但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习c或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:","但有时,可能需要后续阶段告诉","但特别注意,c","位","位整数,因此,我们可以把","位有符号整数类型,范围","位汇编","位汇编。","位的","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的支持存在问题。","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位的,而我们需要","位的,请使用我们预编译的","位立即数到指定寄存器中,其中","作为你的最终性能测试成绩。","作为函数参数的数组类型第一维可以为空。事实上,在","作为函数调用的表达式的值。一个函数可以有任意多条","作用","作用域中定义的","作用域和块语句(step6)。在这个","作用域定义的","作用域栈","作用域管理","作用域里的","作用域(占比:7%)","作详细介绍。","你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。","你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除","你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评","你会发现,我们的程序组织成了一个树状结构,即","你会发现,这种ir输出格式包含了一些类型信息,也更加易读。","你做了哪些工作(即你的实验内容)","你可以使用compil","你可以在instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。","你可以在instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","你可以试试,将rvunaryop.neg中名字改为rvunaryop.xxx看看输出的汇编代码会发生什么变化吧。","你可以选择","你可以通过","你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。","你可能会觉得,这一步不就是将","你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。","你完全可以不按照我们给出的这些结构来设计你的","你应该就能看到类似的输出。(记得自己写一个example.c)","你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩)","你应该能看到类似以下的输出:","你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用","你有更高效的解决方案吗?)","你的单个测试点的得分为:","你的学号","你的学号姓名","你的程序运行时间}","你的编译器","你的编译器应该能完成将简单的程序转换为","你的编译器应该能通过所有的测试样例(stage","你认为中间表示的哪种条件分支指令设计(单目标","你还可以开一个","你需要为代码添加合理的注释以便批阅。","你需要从","你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。","你需要通过遍历ast的节点来将其转换为ir。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。","你需要:","使得我们可以在生成中间代码时,使用","使用","使用以下命令(记得把/path/to/antlr","使用文法文件生成","使用时记得加这个参数,否则默认编译到","使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的","使用的是","使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","例如","例如上述代码转化为ir后可能如下:","例如下面的代码","例如以下是一个ir代码的例子:","例如以下的risc","例如,for","例如,int","例如,对于如下代码:","例如,考虑下面这段伪代码:","例如,考虑使用","例如:执行","例:","依据def","依然遵循语义规范","依赖包","便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。","保存在寄存器中,e","保存在栈帧中,因此需要分配","保存活跃的临时变量:首先保存所有位于caller","假如你的账号为","假定我们有","假设","假设在经过了词法分析和语法分析后,我们已经成功将","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","假设我们有一个解析树","假设我们有若干个参数,可以依次使用","做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的","做详细介绍。","先看visitunary函数:","先给当前函数新增一个基本块true_bb表示if语句的true分支入口。","先通过前端变量到ir的data对象的映射表,找到该节点所表示的前端变量对应的data对象。","免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。","入栈。然后在新的","全局作用域(栈底)","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量和数组(step10","全局变量和数组(占比:7%)","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","公钥添加到你的","共用寄存器。","关于名字由来,由于往年的实验叫","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。","关于操作系统,助教推荐使用","关于数据流分析的细节,我们将在","关系操作符","关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如","其中","其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。","其中f(a)中的a是上一行的let","其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:","其中这90%构成为:","其中,stage0","其中,while","其他测试点,太长省略","其他类型检查逻辑...","其优先级的设定会导致其含义在某些时候可能会反直观,例如,0","其实也支持非字面量的编译期常量,例如","具体依赖于1的处理方式,可能需要恢复","具体实现上,可以借助du/ud链来实现:","具体来说,在这一阶段中,我们需要对","具体的保存方法并不限制,但一般都使用栈来保存。","具体示例可以参考短路求值。","具体而言,某个“一整条函数调用”的中间表示大致如下:","具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参)","具有代表性的例子介绍它的整个编译流程。在之前","内存数据结构","内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的","再举一个arm的例子。arm的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列","再看visitreturn函数,我们这里的return是一个带返回值函数的return","写出","准备参数,完成传参。","准备报告。","准备报告。stage","出现在代码不同地方可能标识完全不同的变量。","函数","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数中定义名为","函数中所有出现过的变量符号即可。","函数中的指令,如果不在set中,就可以认为是dead","函数代码。如果你增加了","函数会对不同类型的","函数作用域对应的单张符号表即可。","函数作用域里定义的变量","函数入口标签","函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用","函数入口),以及作为分支语句的跳转目标(tac","函数内部可以包含多条语句和声明了。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数参数","函数参数以及返回值的传递","函数参数(32","函数和变量重命名,两个阶段。","函数声明规则","函数对于在block中的所有子节点调用了child.accept(self,","函数对应的作用域中,可以找到变量符号","函数执行","函数执行至","函数抽象到一个接口里,各种具体的","函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,df","函数时,开启一个局部作用域,在扫描","函数时,相当于执行了:","函数是可以递归调用的。","函数是否存在。(frontend/typecheck/namer.py:37)","函数根据被遍历的结点类型不同,执行不同的遍历逻辑。","函数的","函数的参数列表需要加上数组类型。","函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。","函数的栈帧,并且集中于临时变量的存储和加载。","函数符号的实现在","函数调用","函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。","函数调用语句","函数返回","函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。","函数里定义了变量","函数(step9)。在这个","函数(占比:7%)","函数)分别使用一个","函数,visitblock","函数,为","函数,以生成","函数,将返回地址压入栈中。","函数,并把不同的","函数,直到","函数,编译器应当报错。","分别对应","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","分工建议:两位同学负责中端优化,两位同学负责后端优化。","分支","分支。在","分支。通过","分支和","分支开始位置和整个","分支条件","分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","分支的代码,并在该分支结束时,用一条","分支语句","分支需要是一个语句(statement)而非声明(declaration)。","分支)。","分支,就会执行第二个语句,否则整个","分支,并生成对应的","分支,所以在递归到子结点时,请先判断子结点是否存在。","分支,那么只需要一个跳转标签即可。例如我们将例子中的","分析等理论知识在实践中的应用。","分配","分配一个临时变量","分(总评","划分基本块。","则对应着内层代码块定义的变量","创建","创建了一个仓库,其中","创建名为","初始语句","判等操作符","利用","到","到一个虚拟寄存器","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到可执行文件","到头文件搜索路径","到底和哪一个","到栈上)。","到此为止我们得到的tac代码如下:","到汇编","到汇编的步骤一分为二。如果目标代码有误,通过检查","到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查","到汇编翻译有误。","到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言?","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。","到远端仓库的时间。并且,你也可以随意地","前就被释放了,后端会尝试到栈中寻找","前端代码目录","前端参考资料","前端梗概","前端的主要任务是将源代码转换为抽象语法树(abstract","前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(intermedi","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用","前端设计","前端预期目标","前端:你可以使用现有的框架完成前端(如:antlr、flex","前端:负责词法分析、语法分析、语义分析,生成抽象语法树(ast)。","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","加法操作","加载到临时变量","加载到寄存器","加载操作:dst","加载立即数","助教在项目中使用","助教已经为每位同学在","助教强烈建议使用类似","勘误表","包列表文件","包含多个","包含多条","北大编译实验koopa","匹配。","即为满分。","即便是类似","即可。","即可。具体来说","即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。","即是控制表达式,其求值在循环体的每次执行之前。post","却编译出","参加大实验的同学应该需要自己从头设计一个符合","参数","参数类型","参考","参考实现进度及顺序","参考的","参考资料","又对于","及更高的版本,你可以直接使用","及触发此次","双目标)更合理?为什么?(言之有理即可)","反复运行","取负操作","变为","变成:","变量","变量。","变量和赋值(step5)。在这个","变量声明","变量的使用(读取/赋值)","变量的初始化表达式指定了变量的初始值。","变量的声明","变量符号究竟存在哪里,如果所生成的汇编程序不给出","变量(占比:7%)","另一种可能的方案是使用","另外这里也有(非官方的)指令用法说明。","只在内部大括号括起的作用域内生效。","只支持","只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。","只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复calle","只需要提交一份报告。","只需要提交一份报告,你不需要单独为","可以不合并但强制这两个点同色吗?","可以参考这个教程进行升级,升级时注意备份。","可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。","可以在保证合并后边数","可以在符号表中找到(我们在扫描","可以尝试如下命令:","可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。","可以直接合并这两个点吗?","可以等价于访问","可以简化每个变量的属性,进而简化编译器的优化过程。","可以被合并为一条指令:","可以被替换为bne","可以跟","可以适配不同指令集(risc","可以通过后续的文档了解每个部分的更多细节。","可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的","可以,但这样合并的点数比较少,优化效果差。这实际上是更早的","可执行文件","可执行文件。","可执行文件链接","可执行文件,所以我们的","可执行文件,最后用","可执行文件;","可执行程序。","可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出","右操作数;","合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的","合法。","同","同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。","同中间代码生成,全局数组自行思考实现。","同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。","名称","后才能尝试","后是一个","后端代码目录","后端优化:图染色寄存器分配、线性扫描法、指令折叠等等","后端设计","后端:负责目标代码生成。","后续","后续如果你选做“全局变量”部分,可以在","后面risc","后面会用到:(","后,可以用负号配合正整数常量来间接表示负整数常量。","向","向符号表中插入新的符号","否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。","否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。","含义","呢?","命令修改","命令安装下文提到的","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","命令无法正确安装依赖?","命令未必会对应","命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。","和","和常说的","和循环体)。","和文法文件生成所需的","和最近的","和类型检查","回顾:启发式寄存器分配算法","因为","因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案:","因为我们在步骤1中只操作了caller","因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体:","因此可以优化为:","因此我们不能直接使用有些系统自带的","因此我们希望生成的","因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。","因此,上述初始化可以等价地转化为:","因此,变量名不能唯一标识变量了,同一个变量名","因此,测例可以翻译成如下的中间代码:","因此,示例可以对应如下的","图染色问题:有","在","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","在frontend/lexer/lex.py文件中你可以看到每个","在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有pars","在step","在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本","在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体:","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。","在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。","在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。","在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。","在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2)","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:","在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a","在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。","在前端生成中间代码时,首先使用第二种方案利用","在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copi","在实现","在实际操作中,我们遍历","在实验框架中已经给出寄存器分配算法的代码,集中在","在实验框架中,我们使用的是","在实验要求的语义规范中,条件表达式存在短路现象。即:","在寄存器分配前可能对应如下代码:","在对","在左边输入以下例子","在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。","在当前作用域查找符号","在我们的实验要求中,返回值均是单个","在我们的框架中,从","在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。","在扫描到","在早先的文档中,函数调用涉及call和param两种指令。call指令只对应实际汇编代码的函数调用,而param","在本例中,","在本例中,_b0的最后是第一个while语句的条件部分,while语句还生成了_b1,","在本例中,生成了_b1,","在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案):","在框架中,我们有以下的","在此基础上,进行","在此表示感谢!","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。","在生成","在生成函数调用的代码时,除传参外,还需要考虑caller","在确认环境配置无误后,我们可以使用","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。","在第","在第一阶段,记录每个局部变量相关的","在第二阶段,遍历所有基本块,对其中局部变量相关的","在线编译器","在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码:","在编译器中有着广泛的应用,比如","在编译实验中可能需要的用法。","在词法分析","在该类型检查器中,我们遍历","在语法树上对应父","在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。","在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。","在这个示例中,我们在","在这个项目中,我们推荐使用","在这段","在这里我们介绍一种可能的实现方式。我们暂不考虑vla(vari","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","在遍历ast的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到ir的data对象的映射表等。","地址为","块之前就要具有的了)。","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","型,而","基于上面三个特点,已经求出基本块的","基于图染色的寄存器分配算法","基于复制指令的寄存器合并","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","基本块","基本块是指一段这样的代码序列:","基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:","基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可:","基本块(basic","基本指令集,并包含","基础的设计模式都在","增加中端优化和后端优化(剩下的时间)","增加了实验文档","声明","声明全局符号","声明和表达式","处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。bruteregalloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind,","处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在iter","处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv","处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitfunc函数中。框架的现有部分已经帮助大家处理好了calle","处理,并被转化为如下形式的一个","处,我们使用一条","备注","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。","大实验参考文档","大实验在","大实验的语法规范与","大实验简介","大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。","大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","大致如下。","天内这个","头文件","如以下是一个简单的例子:","如何使用","如何将一个立即数装载到指定寄存器中?","如何快速查询risc","如何找到所有冲突的变量","如何构建","如何检查我是否通过自动测试(ci)","如何解决寄存器分配对应的图染色问题","如何设置返回值?","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果","如果a","如果一个不是","如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值","如果不能合并,那么把","如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里","如果你使用我们提供的服务器,你可以直接来看risc","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","如果你感兴趣,可以了解一下llvm","如果你时间充足,你可以阅读:","如果你没有使用虚拟环境,可以参考下面的指导。linux","如果你认为成绩有问题,请及时与助教联系。","如果使用的是低版本的","如果关于报告提交有任何问题,请及时联系助教。","如果出于某些原因必须使用低版本的","如果出现悬吊","如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题?","如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少","如果在多次","如果在机器上直接安装了较低版本的","如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。","如果子节点是declaration,说明这是一个全局变量,就新建一个data对象,再访问该declaration节点,从而将该全局变量的前端信息存入data对象中,最后将其加入到当前program对象中的global_data列表。","如果子节点是function,就新建一个ir的function对象,再访问该function节点,从而将该函数的前端信息存入function对象中,最后将其加入到当前program对象中的functions列表。","如果当前基本块以","如果想要访问某个子结点","如果是数组参数,则可以直接保存在寄存器中。","如果是标量参数,要另外在栈上开空间。(这是为了满足","如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个jump指令,表示从false_bb跳转到next_bb。","如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。","如果有初始化,","如果没有安装qemu模拟器,则会出现如下错误:\"bash:","如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。","如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。","如果输入程序没有","如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then","如果这是个全局变量,则新增loadaddr指令,表示加载全局变量的地址,获取对应地址的寄存器","如果这是个局部变量,则直接通过data对象获取对应地址的寄存器","如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的getelementptr指令,表示通过数组基地址和下标获取元素的地址。","妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。","子两个结点,父结点为取负操作,子结点为常量","子句也可以不带,但这会导致语法二义性:els","子目录作为子项目进行构建","子语句列表","字节。","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节整数,是","字节流","字节的内存,并返回内存首地址","字节的栈帧空间。sp","存储操作:store","存放到","学术规范","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","它会对应如下的","它对应的完整语法分析树可能长这样:","它将在后续的","安装","安装依赖","安装依赖。","安装工具链","完备问题(可以从","完成","完成后端(两周)","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","完成竞赛第二阶段的优化编译器,替代期末考试","完成符号表构建后,我们就可以自顶向下地遍历","完成符号解析和类型检查后,编译器应该能够:","完成这个步骤的过程中你可能需要回顾step","完成这部分内容后,你的编译器应该能够通过","完成这部分内容后,你的编译器应该能将","宏","官方","官方文档","定义","定义括号和符号","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的","定义,以便lexer可以解析","实战教学","实现","实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑","实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。","实现了词法分析器分析输入(即字符)并产生","实现你的编译器,你的编译器生成的目标代码可以是","实现后端代码生成、栈帧管理","实现提示","实现的时候,你可以直接让所有函数都默认返回","实现细节","实现,称为","实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。","实际上,我们提供的中间代码设计和","实验思路指导与问答墙","实验成绩","实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","实验报告中需要包括:","实验指导","实验指导。本实验指导使用的例子为:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验框架中关于目标代码生成的文件主要集中","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在","实验框架环境配置","实验概述","实验环境简介","实验简介","实验要求","实验评测仓库在这里。","实验起点和基本要求","实验进度安排","实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个","容易发现,至少需要3个寄存器。因为","寄存器","寄存器。","寄存器中","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器中,然后在后面加上一条","寄存器中,请写出一段","寄存器分配","寄存器分配与代码优化(占比:8%)","寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spil","寄存器分配算法(step13)。在这个","寄存器分配问题:有","寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。","寄存器?","对于","对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足","对于parameter_list节点,可以把前几个寄存器编号分配给参数。","对于program节点,先新建一个ir的program对象,然后我们只需要再遍历子节点。","对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","对于一条ir指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些ir指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。","对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","对于下标运算","对于仅因复制指令相互冲突的一对点","对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于含有未定义行为的","对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","对于感兴趣的同学:c","对于数组则需要遍历integer节点,并分别使用store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。","对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。","对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增store指令,表示将得到的寄存器的值存入该标量对应的地址。","对于每个阶段(stage):","对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。","对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。","对于被调用者的处理","对于调用者的处理","对参数取负","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应到框架代码上:","对应的","对应的“传参和调用分离”的中间表示类似于:","对应的不使用跳转的汇编。","对应的临时变量。每当在","对应的临时变量为","对应的符号。符号","对应的结点时报错。","对应着","对应结点到","对应结点的有向边。对于以","对有兴趣的同学:","对有兴趣的同学:虽然","对未声明的变量的使用是错误。","对象,用以维护","寻找图中是否有连接了少于","将","将两个参数相加","将全局变量放到特定的数据段中","将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入","将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是cal","将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从body_bb跳转到body_cond_bb。","将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从true_bb跳转到next_bb。","将循环语句翻译成","将整数提升为浮点数","将栈上对象obj偏移offset(立即数)处的内容加载到","将每种颜色对应到寄存器上,生成后端代码。","将返回值放到","小于","小写字母打头的是非终结符(如","尝试运行","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","就","就可以被替换成新的非终结符","就是一种静态单赋值的","就是指","尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的","局部作用域","局部作用域(栈顶)","局部变量和","局部变量的名字可以为","工具使用","工具链。","工具链并解压。","工具链并解压到你喜欢的目录。","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","工具链,由","工具需要","工具,在环境配置中已经叙述了安装和使用方法。","左操作数","左操作数;","已提供的语法特性","已经成为了变量","已经提供的语法特性","常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。","常说的","常量传播","常量传播/常量折叠","常量传播/常量折叠的实现","常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下:","常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。","常量传播通常依赖use","常量表达式(step2","常量表达式(占比:7%)","年有一些变化,主要体现在:","年相对于","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","并不是一个会产生值的表达式)。","并且不会找到,出现报错:","并在","并填充其条件表达式、then","并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。","库与","库来实现这一点。yacc","应当变为如下形式:","应改为","应用商店可以很容易地安装","应该等于","应该输出一个可执行文件","建立基本块之间的连接关系。","建议使用","建议各位同学使用我们提供的","建议配置","开头以被","开头的","开始计数)。","开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。","开始,我们要支持多函数了。","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","开始,语法树上出现了各种运算操作结点。在生成","引入的运算符也都适用。","当","当且仅当其对应的二进制位是","当中,我们只需要提取","当以上迭代函数稳定不变时,所有未标记的指令都可以认为是dead","当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用","当恢复一个从步骤1删除的结点时,因为当前它连接了少于","当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有","当操作数不等于","当操作数有一个非","当操作数都非","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","当然也是可以的,而且更清晰简单。","当然,如果一条","当然,如果变量在使用前还是必须先被声明。","当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。","当然,广义上的编译器就囊括了这所有阶段。","当程序读入程序的字符流之后,它首先会被","当遇到","当遇到一个","形式的","形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是ssa)。","形式的语法规范生成相应","形式)","形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_t2来进行。对于y[1],利用下标和getelementptr指令可以得到其地址,然后通过load指令可以得到其值。(getelementptr指令是为了写起来方便快捷;这里你也可以通过基地址_t1和下标1,构造出_t1","形式,哪怕是局部标量,也要用alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。","形式:","形式:branch","形式:dst","形式:jump","形式:return","往往也可以调用qemu环境正确执行,并得到\"hello","很容易通过增加新的非终结符,去掉这些符号。例如","很显然,其中变量","很遗憾,上述程序并不符合","得到的","循环、while","循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于","循环作为示例。","循环可以有以下两种翻译方式:","循环可以看作","循环实现,同学们可以参考着完成","循环我们都需要定义三个跳转标签:begin,","循环括号中的三个表达式/声明自左向右依次为","循环条件","循环的","循环的实现。","循环的控制表达式的求值在循环体的每次执行之前。","循环的特例,我们选择了","循环而言:如果","循环要自带一个作用域。在示例里,for","循环语句","循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果","循环语句的作用域(包含","循环语句的语义和","循环语句翻译成","循环语句还会使用。","必做部分:","必做:risc","必做:测试你是否正确配置好了环境","必须是8的整数倍)。","快速入门","忽略空格和换行","忽略规则:通常用来忽略空格、换行等空白字符。","怎么从","怎么从tac到汇编代码","思考","思考题","性能测试,将根据你的编译器的性能进行评分。","性能评分方案:","总的来说,我们现在利用","总结","恭喜你实现了","恭喜你!到目前为止,你已经成功实现了一个基于","悬吊","意义不同,但","意味着执行时没有通过","成员","成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:","成绩占比","我们为什么要这样做呢?","我们人为规定:els","我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。","我们以","我们使用","我们使用一个","我们使用词法分析器产生一个","我们假定当前栈帧的栈顶地址存储在","我们假设你已经正确设置好了环境变量,否则运行","我们先忽略livenessanalyzer和control","我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program","我们创建一个在令牌流上工作的解析器","我们创建一个在该输入上工作的词法分析器","我们只接受","我们可以为所有指令定义一个基类","我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。","我们可以继承","我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的","我们如何实现","我们定义了另一个变量","我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:","我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。","我们将在中间表示设计中介绍ir设计时候需要考虑的地方和并列举一些实例。","我们将由易到难完成","我们将输入转换为","我们按照上一节划分的编译器阶段,分阶段给出","我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。","我们提供了预编译的","我们提供预先编译好的","我们是以函数为单位来组织基本块的,函数定义为如下的结构体:","我们暂不要求支持不包含函数体的函数声明。","我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句?","我们没有支持","我们注意到,变量","我们用缩进表示树结构,其中","我们的实验框架里是如何处理悬吊","我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如use","我们的框架现在对于","我们的编译器只生成","我们目前的","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。visitor","我们给出risc","我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。","我们能发现","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","我们要增加块语句的支持。","我们要增加对循环语句,以及","我们要增加的是:","我们要增加的是:加","我们要支持条件语句,包括","我们要支持的是全局变量,语法改动非常简单:","我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的","我们还需要支持函数调用:","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。","我们采用","我们需要下载安装","我们需要先引入下面四种针对基本块的集合:","我们需要在符号表构建的过程中,确定","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","我们需要支持函数的声明和定义:","我们首先来看本节指导用例所对应的中间代码:","或","或venv的系统管理不同的python环境。你可以方便地使用miniconda安装最新的python版本,安装好之后使用pip安装依赖即可。","或不定长数组","或者","或自行编译。","截止","截止之前完成","截止前完成","所","所以我们无法用字面量表示","所以,我们不要求支持变长数组","所使用,则这是一个未定义行为。","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","所对应的寄存器在","所对应的数据段。","所有","所有截止时间均为所标日期的23:59:59(utc+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。","所有测试点取算数平均值,最后结果","所用的方法就是的","所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在","所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。","所需的底层类。其中","手册","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","才知道),所以它们都会用同样的","才能执行。","才需要考虑符号表构建。","才需要考虑,届时再介绍其处理方法)。如上例所示,tac","打开","打开microsoft","执行","执行一条","执行完之后,有可能跳转到另一个基本块","执行时","执行汇编中的函数调用指令,开始执行子函数直至其返回。","扩展(乘除法)。本实验中我们不需要其他扩展。","扫描完成","找出函数所有的必要值,标记这些值的定义指令。","技术。","把","把export","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","把右边的编译器选为risc","把图中当前所有结点中,连接了至少","把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。","报告语义错误,如未定义的符号、类型不匹配等。","报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。","抽象语法树相关代码","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令。","指令。phi","指令。不过为了实现循环语句,需要仔细地考虑如何将","指令不支持","指令与其对应,因此上述中间代码可以翻译为如下的","指令与汇编指令比较类似,每条","指令与汇编指令类似,每条","指令为条件跳转指令,branch","指令为跳转指令。","指令分配到内存中,之后每次访问变量都通过","指令即可完成函数返回的工作。","指令将值写入数组元素。","指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的","指令快速地构建满足","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令显式地读写内存。使用上述方案编写的程序满足","指令来完成翻译工作。","指令来完成翻译工作。以","指令来实现,我们还需要引入一条类似的","指令来执行。如果","指令来支持加载一个","指令来简单地实现","指令来翻译中间表示里的","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令的语法是","指令的顺序对结果没有影响)。","指令调度","指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造dag,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。","指令跳转到","指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的","指令选择","指令选择相关的窥孔优化","指令选择相应的","指令都是位运算指令,不是逻辑运算指令。","指令链接:https://github.com/thethirdone/rars/wiki/support","指令集文档在这里,我们只需要其中的","指令集架构,编译实验要求你的编译器把","指令集架构,编译实验要求所实现的编译器把","指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。","指令(例如","指令,但频繁地访问内存将导致严重的性能问题。","指令,则可能需要在","指令,同学们可以在必要时修改或增加","指令,并由此在基本块的开头插入","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","指向父作用域的符号表","指定","指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了c语言操作符的优先级和结合性,因为我们的minidecaf语言是c语言的一个子集,所以这张表格也足够我们的语言使用了。","指导书上的思考题","按删除的逆序恢复所有结点。","按照","按照上文说的,","按照下面的","按照本文档的前几节(riscv","按照汇编约定,data","按照测例的","按照这个规定,parser","按钮的下方,commit","换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。","接下来我们会用到","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,将对我们所使用的中间代码","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","控制流、数据流分析和寄存器分配","控制流和数据流分析","控制流图","控制流图是一个有向图:它以基本块作为结点,如果一个基本块","控制语句(占比:7%)","提交/补交时间是该","提供了","提供了一系列的汇编指令,用以声明全局变量","提供了与中间代码中","提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:","提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。","提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。","提出的寄存器分配算法,并以此代替","提示:","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","提示:发生越界的一步计算是","操作数","操作数一","操作数二","操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于","操作码","操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:","操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。","支持多种语言,包括","改进你的编译器,支持上面提到的寄存器分配算法。","改进你的编译器,支持本节引入的新特性,通过相关测试。","教程","数据段;.globl","数据流分析","数据流图定义及优化在","数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。","数组传参是支持不定长度的","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","数组和普通变量类似,可以分为局部数组和全局数组。","数组的下标操作","数组的传参:","数组的初始化:","数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在","数组类型,其值和地址都可以用一个32位整数存储,故","整个操作序列扫描完毕后,我们就成功建立了所有基本块。","整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体:","整体思路是通过遍历ast的节点,根据节点类型进行相应的处理。推荐先根据ast的遍历顺序写一个框架,再填充具体的处理逻辑。","整型","整数的规则","整数运算越界是未定义行为(undefin","文件","文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与cmake文件实例.","文件,","文件包含以下几个部分:","文件名:","文件夹下,step1","文件夹中的","文件是","文件结构","文件),antlr","文件,gcc","文件,其中写入如下内容","文件,我们能够为","新特性的语义、优先级、结合性和","方便全局优化寄存器分配,减少基本块之间的","方便起见,我们称","方法中先将全局作用域加入栈底,再往上才是","方法对每个函数内的","方法生成每个函数的","方法遍历解析树中的","无","无条件跳转到","无条件跳转语句","无法找到,因此编译器需要在扫描到","日","时","时定义变量符号","时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。","时能快速找到","时请用完整路径。","时都要输入完整路径。不过对于","时间安排及补交政策请看实验进度安排。","时,从栈顶作用域符号表查找","时,会执行第一个子句;当控制条件等于","时,你需要一个机制来检查","时,其结果为","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","时,如果有","时,定义了另一个变量","时,应终止执行并返回","时,我们通常是在解析树(pars","时,我们需要分析","时,我们需要遍历解析树(pars","时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。","时,条件表达式的求值结果为第三个操作数所求得的值。","时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非","时,表达式","时,选择没有","时,逻辑与操作符","时,逻辑或操作符","时,逻辑非运算符","时,遇到的子节点是","是","是一个","是一个与","是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。antlr","是一个声明,其声明发生在控制表达式的第一次求值之前;如果","是一个很像","是一个数组类型,b","是一个整数类型,a[b]","是一个根据","是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl","是一条声明,则其所声明的变量所属的作用域是整个","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_t0","是两个表达式节点,对于if语句,这两个变量是两个语句节点。","是什么,不用担心,我们稍后会看到。","是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在","是其中存放代码的段(section),.bss","是合法的","是合法的代码片段。","是否成功安装,详见risc","是否正确就可以知道:是","是否正确就可以知道:是ast","是否通过","是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。","是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。","是如何定义的,每个token都会以t_开头。如t_semi","是对大小写敏感的)","是左结合的,所以表达式1","是必要值","是未定义行为。这一条规则对于后续","是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回","是某个","是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","是逻辑真(int","显然,两个代码块里的变量","更具体来讲是创建","更新的时间,这几乎等于你","替换为你自己的","最后一次触发","最后一次触发的","最后将当前基本块改为next_bb。","最后新增store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。","最后,扫描语句","最新的","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","最终我们将以上的这些“指令”展开。例如loadfromstack可以保守地展开为以下risc","有一些差异。","有两个原因我们要求同学们从头设计一个编译器:","有两种循环语句:for","有了上述两条指令,可以将测试用例翻译如下:","有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:","有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器:","有了这些语句以后,我们的ir就可以描述源程序的语义了。","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","有以下三种特点:","有没有更好的解决方案呢?","有短路现象,我们不要求。","有短路现象,我们的实现中不要求大家考虑它们的短路性质。","有能力的同学可以考虑将原先","有许多可行的翻译方法,例如","有,我们可以将两种方案结合起来。","服务器环境如下:","服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。","本","本地编译器","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本实验指导使用的例子为:","本次实验一共设置","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","本步骤中无须新增新的","本步骤中没有需要新增的","本步骤中语义分析没有特别需要增加的内容,只需要在扫描到","本步骤主要涉及的语法为主函数和","本步骤引入全局变量,在引入全局变量之后,ast","本步骤语义分析阶段的处理方式和","本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。","本节主要就是引入了跳转,后面","本节实验要求实现论文","本节指导用例对应如下","本部分仅供参考,你需要根据自己设计的ast和ir进行调整。","机器上、把","机器上,却要编译到","条件和循环(step7","条件表达式","条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于","条件跳转语句","条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。","条边的结点。","条边的结点标记为","条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于","条边)。","条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。","条边,所以我们总能为它指定一个颜色,使之不和相邻的最多","来创建一个新的分支。","来判断结点类型,而是调用结点自身的一个","来处理","来存储操作数的值或者寄存器编号,使用一个","来安装用户态的","来实现这个接口。","来手动更新。","来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要","来生成对应的","来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。","来表示跳转用标签,以此和函数入口标签区分开来。","来说,这一点其实几乎已经被语法保证,因为其","构建","构建并运行我们自己实现的编译器,你将会看到","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","构造算法。一种常用的算法是将整个过程分为:插入","架构的","架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。","标准为","标准正式发布前的最后一版草案,根据","标准的编者之一","标准相比只有表述上的差异)","标准草案","标准草案保持一致","标准调用约定中要引入","标签。","标签和","标签处","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","标签的维护。","标签(示例中的","标签,这样才能确定每一条","标记而且存在跳转语句跳转到这个行号时。","标记,即不能跳转到基本块中间。","标识符的规则","标识符(用于表示变量名)","栈帧","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","栈帧确定和最终代码生成","树,transform","根据优化等级不同会有数百个不等的","根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。","根据调用约定,调用其它函数后caller","根据这个方程,我们可以通过迭代更新的办法求出每个基本块的","根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要","根目录下的","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","格式","格式提交到","格式的实验报告。你需要将报告放在仓库的","格式的实验报告,你需要将报告放在仓库的","框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如","框架使用了","框架本身在","框架里已经提供了需要的","检查变量声明的类型是否正确","检查右操作数的类型","检查左操作数的类型","检查所有的操作数和运算符的类型是否匹配;","检查操作数的类型是否匹配","检查是否安装成功","检查是否有","模式。如果你还不知道","模式。这个文件里除了类型tacgen之外还有一个辅助类tacfuncemitter,它用于处理产生tac代码过程中一些相对底层的细节。在本框架中,tac","模式就是常见的一种。","模式有所了解,或者假设你已经知道在遍历","模式生成","模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个","模式的遍历代码,逐个解析树结点处理并生成","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","模式递归查找","模式速成","模式遍历","模式遍历这个树并对这个树的每个节点进行一些操作。","模式,代码变得结构清晰且便于扩展。","模式,并以框架中的代码为示例进行介绍。","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","模式,针对解析树的不同节点调用对应的处理函数,来生成合适的","模拟","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","模拟器和一个简易内核","模拟器运行","模拟器,不过只能在","正因如此,许多编译器优化算法都建立在","正确性测试:你需要通过","此处举个例子:","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","此外,如果安装了多个版本的","此外,我们提供了","此外,我们的","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。","此部分对应框架源码位置:","此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。","步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:","死代码消除","死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。","死代码消除通常依赖于use","死代码消除(dead","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","段内存)。","段或","段里。","每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。","每个","每个步骤结尾的","每个节点的出度都是","比如5","比较大小和相等的二元操作:、、>=,","汇编","汇编。","汇编中","汇编中有","汇编中有对应","汇编中的","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)stage","汇编代码,将栈帧空间扩大","汇编代码,并通过","汇编代码:","汇编变成","汇编指令来翻译","汇编标签","汇编的思想是一致的,risc","汇编课上应该讲过,实际中(包括","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","汇编,然后再使用","汇编:","没有被初始化的(局部)变量的值是不确定的。","法调试,发现是","注意","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","注意这里的","注意,我们虽然是用的工具前缀是","注意:","注意:if","注意:大实验工作量较大,并不推荐所有同学都参加。","注意:安装了qemu之后,直接运行","注意:引入数组后,左值不再一定是","注意:此处不要直接写一个可以计算得到结果的式子","注意:由于子模块使用","注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。","活跃变量和活跃变量方程","活跃变量集合","流","流:","测试。","测试中看到。","测试你","测试用例,一起走过它的编译全流程:","测试运行的","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","添加","添加一个相应的","添加第三方库目录","添加项目的","源代码到你的代码仓库里,并为你的整个项目编写一个","源代码目录","源文件","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","灰色部分表示相对上一节的修改。","点。如果有","然后从这里上下载我们预编译的二进制程序包","然后在","然后让它等价于","然后,21","然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。","熟悉框架和基础知识","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的","版本的包管理器。请尝试使用","版本高于此版本。","版本,如果你是其他平台(如m1","版本:","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","环境下安装","环境配置","环境配置和实验框架环境配置)配置好实验环境。","环境(如","现在尝试运行","现在我们可以看到如何在","现在我们开始正式遍历","现在让我们来看看示例所对应的","现在,使用","甚至可以支持","生成","生成。和语义分析一样,这部分也使用了","生成中间代码","生成器和","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","生成汇编的话,为了支持","生成的","生成的ast可能如下:","生成的以下中间代码无法成功生成目标代码。","生成的可执行程序只能在你本机(x86)上运行。","生成词法分析器和语法分析器,能够将","生成词法分析器和语法分析器,解析源代码生成解析树。","生成过程中,每当扫描到","用上面提过的活跃变量分析可以算出,在","用于分配内存空间:","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","用户】qemu","用户】spike","用户环境配置指南","用户环境配置指南安装","用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitloadfromstack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitstoretostack,我们需要手动生成一条nativestoreword指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。","由于","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值进行学习。","由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(live","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","由于循环体的存在可能被赋值多次,因此上述写法并不符合","由于循环语句可以嵌套,所以","由于每个组的ast和ir设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。","由于每个结点只含有一个语句,因此其","由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其","由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用","由于源语言(minidecaf)和目标语言(risc","由于现在","由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。","由此,上述程序中每一个变量只被赋值了一次,满足了","由此,我们的程序可以改写为:","登陆服务器?","的","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的“替身”。每次需要用到变量","的。根据通过测试样例情况评分。","的。看上述图染色算法流程,可以发现如果一个点不是","的一个纯","的一种参考方法。","的主函数编译为","的主函数编译全流程:","的代码片段,你可以以任意方式处理。","的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(scope","的使用,结合我们的文档,来快速上手","的值。因此,为了在后续使用变量","的值为0,则跳转到","的值为真(不等于0),那么应当执行","的值作为参数","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值是不确定的。","的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。","的值来自于","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,一种可能的写法为:","的值,然后将返回地址弹出栈中,跳转到返回地址。","的入门,但这不是必须的。","的全局变量,同时在","的全局唯一的作用域可以被当作“函数作用域使用”,在","的内容","的内容进行细微修改。具体来说,需要在","的内容,就是上面汇编输出的简化版本","的函数作用域。","的函数执行到了它的","的分支跳转指令。由于","的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看","的博文,其与","的可执行文件,将所有源文件编译链接到这个可执行文件中","的同学可以使用","的含义与","的图标,代表当前","的图标,或者在网页左侧选择","的地址。","的基础之上,例如:死代码消除(dead","的声明,risc","的处理。","的处理方式更符合你的直觉。","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里","的完整流程","的定义指令都可以认为是dead","的定义,从","的定义,程序是有bug的。实际上,risc","的实现,大家可以直接运行通过","的实验报告需要放在","的实验,不会有额外扣分。","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","的工具链使用","的工具链使用。","的工具链使用和运行实验框架。","的工具链使用总结了","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的左侧,可以看到一个画圈的","的左操作数必须是一个可修改的左值(modifi","的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。","的帐号名后,助教会给每个人建立一个私有的仓库,url","的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。","的形式提供。","的形式表示(k表示变量的编号)。","的思考题。","的情况下合并这两个点吗?","的成绩并替代期末考试对应权重)。","的成绩并替代期末考试对应权重)。注意,你需要在完成","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的截止时间;","的所有测例。","的所有测试样例以及附加测试的测试样例,这样你可以获得","的报告中(注意不是","的报告还需要额外包含","的指令,我们直接给出翻译结果:","的支持:","的改动如下:","的数据流分析一节。","的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。","的文档。","的文档都将以如下形式组织:首先我们会介绍当前","的文法文件","的文法:","的新特性,请保证你所使用的","的方法(来源于《高级编译器设计与实现》(鲸书)):","的方法,可以直接继承","的时候选择shift,从而对悬挂else进行就近匹配。","的时间,而不是","的时间;","的最小版本要求","的标准调用约定","的根结点类型","的概念,并介绍它的布局。","的正确性得分。","的求值在循环体的每次执行之后。","的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。","的注释里给出的提示。","的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块","的测试样例。","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的源码进行编译,附","的生成","的用户态模式,我们使用","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的目标是实现论文","的目标是支持数组的初始化和传参:","的目标是支持数组:","的第一次赋值是不必须的,因为变量","的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。","的组合。ssa","的组合针对局部变量生成符合","的结果为","的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是","的结果是其操作数的相反数。","的结果是操作数的乘积。","的结果是操作数的和。","的结果是第一个操作数减去第二个操作数所得的差。","的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为","的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符","的编译器框架,所以今年的实验就叫","的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。","的编译结果","的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。","的要求。","的要求。(注意,ssa","的要求,且避免了繁琐地构造","的要求,因为其中变量","的规范是一致的。不过有一点需要注意:","的解决方案。","的记号:","的词法分析和语法分析部分。","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","的跨平台性,理论上也可以在","的转换经过了","的输出。","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","的运算结果为","的返回码,也就是我们","的那个值","的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。","的阶乘。","的颜色和","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","的,它会在步骤1被删除。","的?","目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。","目录下)","目录下为符号的实现。其中","目录下为符号表的实现。其中","目录下实现了生成","目录下所有的","目录中输出生成的代码。","目录到头文件搜索路径","目标代码生成","目标代码生成器(target","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","目标代码生成步骤的关键点与","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将ir翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。","目标寄存器","目标平台汇编代码生成","目标平台汇编代码生成在","目标架构相关优化","直接使用包管理器安装:","相互冲突,需要各一个寄存器,而","相关信息","相关的解释和详细说明可以参考:","相关资源","相同,从而意外地和","相同,即“如果","相同,导致溢出到内存。","相同,针对中间代码指令,选择合适的","相干寄存器","相比于step","看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list,","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","看起来很像汇编,与汇编最大的区别在于","真实硬件的性能相对差值是比较恒定的(如比较","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","确定栈帧后生成函数的prologue和epilogue,其中主要包括calle","示例","示例程序。请注意","示例:_t2","示例:_t3","示例:branch","示例:jump","示例:return","示例:store","禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。","种颜色可用于染色(对应","种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。","称为调用序列(call","程序。","程序。因此,在符号表构建阶段,扫描到","程序中使用我们生成的解析器。","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序代码编译成","程序代码里的一个函数调用,包含了下面一系列的操作:","程序入口文件","程序出现了分支结构,我们需要开始考虑跳转语句了。在","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序由标签和指令构成:","程序的入口点在","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","程序的生成以函数为单位,对每个函数(step1","程序的语义分析。","程序的起始规则","程序编译到","程序翻译成","程序翻译成满足","程序解析为抽象语法树(ast),并完成对","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","程序,ast","程序,在启用优化选项编译时,编译器可能产生意料之外的结果。","程序,我们将tacgen.transform代码贴了一些在这里:","程序:","稍微一提,关于按位取反,我们使用补码存储","空","空集","符号对应的初始值。","符号所代表的地址","符号表","符号表总是和作用域相关的。例如,在","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(ast),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。","符号解析的核心工具是符号表(symbol","符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。","符号解析(namer)","第一个编译器(step0","第一次进度检查:第六周周六(10.19)","第一种(即实验指导中的翻译方式):","第一部分:依赖环境准备","第三周周日(9.29):stage","第三方库","第三次进度检查:第十二周周六(11.23)","第三部分:ast","第二次进度检查(中期检查):第八周周六(11.2)","第二种:","第二部分:文法文件的编写与","第八周周日(11.3):stage","第六周周日(10.20):stage","第十五周周日(12.22):stage","第十六周周日(12.29):stage","第十周周日(11.17):stage","第十四周周日(12.15):stage","第四周周日(10.6):stage","第四次进度检查(期末检查):第十六周周末(12.29)","第四部分:语义分析","等","等。","等价于","等价于将其替换为一个非零常数,比如","等分析器。","等均为","等模拟器来运行","等符号都可以作为一元运算符出现,比如!x,","等跳转语句时。","等跳转语句(但可以包含","等),当然你也可以在类","等,然后参考下面","简单的启发式寄存器分配算法","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","算术语句:这是计算机最基础的语义。","类中增加生成相应指令的代码。","类中调用的。并且希望大家一定要对着代码看。","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类似的","类似的指令:","类型","类型为","类型具体指","类型和","类型基类","类型检查","类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。","类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。","类型检查(typer)","类型检查:各语句和表达式是否类型正确。","类型的规则(这里只支持","类型系统","类型转换","类型)","类型,但可以忽略返回值达到类似的效果。","类来处理它。","类来通过","类的","类里实现了维护","类,并在对应结点的","系统环境(mac","索引基底","索引运算","组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。","组织如下:","组织实验,各个","组织文档,每个","终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的","经过","经过使用","经过常量传播/常量折叠优化后,代码变为:","经过常量传播优化后,可以得到:","结合性是一个操作符的性质,例如","结合,也就是说上面两种理解中只有前者合法。","结合?","结尾,则不需要加入新的边。","结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。","结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共","结构。现在,我们想要编写代码对","结构:","结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","结点","结点。","结点。这里我们可以使用","结点包含条件表达式cond、then","结点时,不要忘记开启一个局部作用域。","结点时,会依次检查该操作的两个操作数","结点时,若当前不处于任何循环内,则报错。","结点构建抽象语法树,最终生成中间表示或目标代码。","结点的基类","结点类实现(进行了适当的简略):","结点,生成","给出","给当前函数新增一个基本块body_bb表示while语句的循环体入口。","给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。","给当前函数新增一个基本块next_bb表示if之后的基本块。","给当前函数新增一个基本块next_bb表示while之后的基本块。","统计与","继承自","继续看上述例子,我们先关注只有","维护一个set,存储所有必要值的定义指令。","综上所述,我们上述中间代码翻译成如下","编写","编写simplec.g4","编写前端、设计","编写程序使用循环计算","编写程序计算","编译","编译优化的基础是数据流分析。","编译到","编译原理经典书籍","编译后运行时间为","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器后端的主要功能是将中间表示(ir)转换为目标架构的汇编代码,在我们的课程实验中即将tac翻译为risc","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器应当只接受","编译器标志,这里没有额外添加,使用默认","编译器的构成","编译器的构造中会使用到很多设计模式,visitor","编译器结构","编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。","编译如下程序来了解如何翻译逻辑非运算符到","编译实验","编译实验分为多个","编译实验框架,我们给大家的代码框架中已经包含所有","编译程序进行验证。","缩小调试范围,通过把","翻译中间代码","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","而","而不是","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","而在step5","而操作数可能是一个立即数,也可能是一个变量。例如以下的情况:","而是用","而看到第二个时只能选择有","而这里的","而非","能够帮助我们生成解析源代码所需的词法分析和语法分析工具。","能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有","脚本会从官方","自动生成的","自己的仓库中,放在仓库根目录下的","节点","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","节点来表示它,给出的参考定义如下(框架中已经提供):","节点来表示它,给出的参考定义如下:","节点的定义位于","节点里,也可以单独设置一类节点继承","节点,还需要类似地实现条件表达式节点。","若","范围内的整数常量,","范围内的非负整数,使得运算过程中发生越界。","获取","获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。","获得了每个基本块的","虚拟机,使用","虽然也运行在我们的","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。","行展示了使用","补交政策","表示。","表示使用","表示分组,|","表示存储空间大小为","表示寄存器名,","表示将","表示接下来是一条命令,记得运行的时候去掉","表示立即数值,如:li","表示输出到","表示选择,*","表示逻辑假,其他的","表示预留一块连续的内存,4","表达式","表达式的规则","表达式,只使用","被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(reach","被绑定到","被赋值了两次。正确的写法应该为:","被输出到终端中。","要做什么","要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用","要求的代码。","规则:定义语言中各种结构的模式。","规范","解析器的标准方式:","计算完成后,calcul","计算机无法运行。","让你的编译器能够通过","让我们先来看看示例对应的","让我们来看看示例所对应的","让我们考虑","记号书写语法规范,采用类似","记录函数调用情况(可选):你也许需要在subroutineemitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。","设置","设置环境变量不管用,要么把它放到系统目录","设置调试模式下的编译器标志,开启","设置项目名称和使用的语言(cxx","设计","设计,tac","访存语句","访问","访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理:","访问它也不能通过","访问并生成","访问并生成条件表达式的","评分会以每个","评分方法","评分标准","评测将会在我们提供的服务器上进行,通过","识别。","词法分析","词法分析与语法分析","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析器头文件","词法分析器源文件","词法分析器(lexer):将输入的源代码转换为一个个的标记(token)。","词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。","词法分析相关代码","词法分析程序位于","词法规则:定义词法单元(如关键字、标识符、符号等)。","词法语法分析","诚信守则","该方程说的是一个基本块的","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","详细讨论。","详细说明你的代码的运行逻辑","语义分析","语义分析器(semant","语义分析步骤中,我们要遍历","语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","语义规范","语义计算中被用到。","语句","语句。","语句不总是有","语句不给任何变量定值,load","语句修改为","语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的","语句则会给对应变量定值)。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句和","语句和条件表达式时递归地访问其子结点即可。请注意","语句和条件表达式(又称三元/三目表达式,ternari","语句块","语句块。","语句块和可选的","语句基类","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以","语句所在的最小的循环语句的循环体的末尾。","语句所在的最小的循环语句的执行。","语句既可以带","语句时应当跳转到的位置。","语句时,都需要调用","语句是否在一个循环内。这可以通过修改","语句没有","语句没有返回值的情况是在哪一步处理的?报的是什么错?","语句生成过程中需要动态维护","语句的","语句的实现。","语句的实现已经在框架中给出,同学们可以参考并实现","语句的执行便已经完成。","语句的结束位置。如果","语句的结束位置,从而跳过","语句的规则","语句的语义和","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语句相类似,但是请额外注意以下两点:","语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。","语句结点的定义:","语句而言,当控制条件不等于","语句要么出现在循环体里,要么其就是循环体。","语句跳转到何处。因此,在","语句返回的常量,为之分配一个临时变量,再生成相应的","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句需要一个值,我们可以理解为带返回值的","语句)。","语句,完成本步骤之后,你的编译器将支持将一个仅有","语句,意味着将程序的执行跳转至该条","语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的","语句,意味着终止该条","语句,我们需要设计","语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:","语句,那么应当跳转到此处,执行循环之后的指令。","语法上我们继续修改","语法上改动不大","语法上没有太大改动,","语法上没有改动。","语法上的改动是:","语法上,step5","语法上,我们需要修改","语法分析","语法分析器头文件","语法分析器源文件","语法分析器直接产生的实际上是一棵语法分析树,而构建","语法分析器(parser):将标记(token)转换为抽象语法树(ast)。","语法分析树的建立可以说明所输入的","语法分析相关代码","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","语法定义","语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为","语法改为了","语法文件,定义源语言的解析规则。","语法要求从","语法规范","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","语言中的基本类型只有","语言中规定只有使用了返回值才是未定义行为,而","语言中,我们可以在全局作用域中定义名为","语言中,逻辑运算符","语言子集","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?","语言的完整编译器,能够把","语言的思路,我们可能给出如下写法:","语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。","语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。","语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个","语言相同。","语言相同,注意条件表达式优先级只比赋值高。","语言相同,注意检查","语言程序","语言规范规定,允许局部变量是可变长度的数组(variabl","请下载isa","请务必注意上表中的两个变量","请将你的作业放置在分支stage","请将你的整个stage","请将实验报告以","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意","请注意我们提供的预编译","请注意,tac","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","请注意,翻译所得的","请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。","请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到","请画出下面","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","读内容","课程中覆盖,这里重提一下","课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度)","课程实验的目标平台为","课程问答墙","调用不同的visit","调用了","调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量t1到tn,然后按照mv","调用函数","调用函数名","调用约定","调用约定。","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp","账号上,才能将其克隆下来。","赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。","赋值语句","赋值运算","跑在","路径","路径)测试是否能正常使用:","路径,比如","跳到这","跳转到","跳转到_l2","跳转到_l2,跳过else块","跳转目标","跳转语句应该怎么定义?这里我们需要引入基本块的概念。","跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。","转化为如下形式的","转化:","转换为","转换为一个","转换为中间代码。","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输入,输出汇编代码。","输出","输出成","输出的汇编比看什么文档都有用。","输出结果","输出结果,能看到是","运算符","运行","运行你的程序。经过测试","运行在我们的","运行实验框架","运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接","运行时库","运行时库是解析器生成的代码在运行时所依赖的代码。对于","运行时库的","运行时的编译链接","运行时目录(在源码的","运行测试","返回","返回值实现。","返回值(32","返回指令即可。不难看出,本例对应的三地址码为:","返回类型","返回类型,这可以通过忽略函数的","返回表达式的类型","返回语句","返回,例如","还是","这一","这一信息。","这一函数里","这一插件。","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步我们终于要增加变量了,包括:","这一步是","这一节引入的","这一解决方案也被称为","这个","这个token。而对于一些复杂的","这个临时变量,在符号表中存储","这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:","这个思路相比代码框架中的启发式寄存器分配算法有以下好处:","这个数字是一个表达式,","这个方程的直观意义是:","这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。","这个符号时,应当为该符号设置一个成员,存储","这个问题被称为","这也是合法的","这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li","这时候你的编译器应该能通过基础实验的所有测试样例(stage","这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配?","这是否意味着原本就在caller","这是我们程序的主文件,展示了如何在","这条语句后已经为其定义),而","这条语句时,中间代码先把立即数","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。","这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。","这样的奇怪的","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种“gcc","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这种汇编代码模式在数组访问中较为常见。","这种,但仍然不允许类似","这种,同样也是未定义行为。","这篇实验要求实现的论文的解决方案","这部分的工作流程如下:","这里举几个例子:","这里介绍一种","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。","这里将中端的tacunaryop.neg翻译为了后端的rvunaryop.neg,在后端输出汇编时,我们直接将rvunaryop.neg转换为小写字符串取了11位以后的字符,直接输出为neg(参考unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在rvunaryop中增加对应的同名的enum字段。","这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_t0与a1相干涉(指令4的use集合、指令3的liveout集合包含a1,_t0在指令3的def集合中),因此_t0不能被分配到a1;同时_t0也与a0相干涉(指令6的use集合,指令5的liveout集合包含_t0,a0在指令5的def集合中),最终_t0被分配到一个新的寄存器t0。而_t1可以安全地被分配到a1,故指令4被视作无用指令消除。","这里我们以一种经典","这里我们需要关注源文件backend/reg/bruteregalloc.py中的bruteregalloc类。","这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的riscvsubroutineemitter类和backend/reg/bruteregalloc.py中的bruteregalloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。","这里的","这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。","这里简单地举几个例子。","这里进入了tacfuncemitter.visitload:","进一步地,你可以实现符合静态单赋值要求的","进一步如果我们进行死代码消除,可以得到:","进度检查","进行两遍扫描,分别完成以下的检查:","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","进行扫描。很容易写出递归的","进行真正的函数调用:可以使用emitnative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","进行隐式类型转换","连快速排序都写不了。","适配不同指令集(risc","选做二说明","选做实验不接受补交。","选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。","选做实验二说明","选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。","选做部分:","选项一","选项二","选项分别用于禁止生成","选项用于设置输出目录。我们将在","选项):","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","通过例子学习,一个仅有","通过把","通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。","通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用;","通过编写","通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","通过这种方式,我们能够将解析树转换为精简的抽象语法树(ast),为后续的中端和后端处理提供基础。","逻辑与","逻辑与和逻辑或。可详见step4。","逻辑操作符","逻辑表达式会麻烦一点,因为","遍历。","遍历所有语句,找出常量定义,将其全部加入常量表。例如:","遍历时的上下文信息(参数","遍历:","那么在扫描到加法操作的","那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的","那么语义检查时应当报错。","那么,在进入","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","部分处理思路","都可以被省略。省略","都是其中存放数据的段,前者零初始化后者须指定初始值。","都是必要值,而","都是活跃变量。但观察代码可以发现","都是继承","都是逻辑真。","都继承自","配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。","配置。","配置文件","配置文件,需要你手动添加一个","配置文件里)","采用","采用上述方式,x处于call","里加入新的","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","里的","里的临时变量也是","里的实验报告为准,详见补交政策。","里面的","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","重复上一步,直到set不再变化。","重复上述过程,直到常量表不再增加为止。","重新设计”的过程,一步步实现从简单到复杂的","重用一下","针对","针对全局变量,我们需要新设计","针对函数特性,我们需要设计","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对块语句,我们需要设计","针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对局部变量定义和赋值操作,我们需要设计","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对循环语句和","针对数组,我们需要设计","针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","链接,你需要将你的","问题","问题。","问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。","问题的?请简要描述。","附加测试中performance部分测试样例,以","附:函数调用相关","除了分配数组,我们还需要考虑如何访问数组元素。通过","除了替换位于","除入口语句外基本块中不含任何的","除出口语句外基本块中不含任何的","除非特别声明,子表达式求值顺序是未规定行为(unspecifi","随之而来一个问题是:不同变量可以重名了。","随后,在上述代码的基础上,","随后,我们需要实现","难度不大,但有了数组让我们能够写很多有意思的程序了,step11","集合。如果我们把基本块内所有","集合中去掉","集合以后的部分。","集合以后,我们需要进一步地计算基本块内每个","集合就是源操作数对应的所有变量。","集合是","集合是其所有后继基本块的","集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。","集合是在这个基本块内被定值的所有变量。所谓的定值","集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出","集合的变量加上","集合的并集,而且","集合,以下是求解的伪代码:","集合:一个基本块的","集合:在离开基本块出口的时候是活跃的那些变量。","集合:在进入基本块入口之前必须是活跃的那些变量。","集要么是空集,要么只含有一个元素。","零或一次。","零或多次,+","需要以","需要增加的类型检查重构进","需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令sourc","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的","需要注意的是,所有的","需要注意的是,由于我们目前只支持一个","需要特别注意的是,在","需要用到的知识点,其次我们会以一个当前","需要申请更大的","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。","需要说明的是","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。","静态单赋值","静态单赋值这一小节参考并改编自北航的编译课程实验文档:","静态单赋值(ssa)","静态单赋值(static","项目结构","顺着ud链,可以找到","预期目标","预编译的较新版本的工具链对","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","首先把文件夹riscv64","首先检查是否存在空闲的寄存器,有则直接分配给当前变量。","首先,我们应该把","首先,我们需要为","首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。","默认在","(definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:stor","(也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","(占比:0%)","(可选)设置环境变量,方法与","(如果你不用系统自带的","(小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","(更新","(汇编)保存",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",不额外扣分。也可以继续大实验不做基础实验,但是至少要在",",也就使得",",书面作业和日常成绩",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",如果你的程序执行时间为",",将作业提交到那个仓库即可。",",并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将",",期末成绩",",看她们是否需要换成新函数。",",设置“开发者模式”以及“启用子系统功能”。",",静态单赋值的",":"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"实验简介","keywords":"","body":"MiniDecaf 编译实验\n\n实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。\n\n实验概述\nMiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step。每个 step 大家都会完成一个可以运行的编译器,把不同的 MiniDecaf 程序代码编译成 RISC-V 汇编代码,可以在 QEMU/SPIKE 硬件模拟器上执行。随着实验内容一步步推进,MiniDecaf 语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用 MiniDecaf 语言实现的快速排序程序,与 C 语言相同。\nint qsort(int a[], int l, int r) {\n int i = l; int j = r; int p = a[(l+r)/2];\n while (i p) j = j - 1; \n if (i > j) break; \n int u = a[i]; a[i] = a[j]; a[j] = u; \n i = i + 1; \n j = j - 1; \n } \n if (i l) qsort(a, l, j); \n return 0;\n}\n\n2024 年秋季学期基本沿用了 2023 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。\n从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。\n实验起点和基本要求\n本次实验一共设置 13 个步骤(其中 step 0 和 step 1 为实验框架熟悉,不需要修改框架代码)。后续的 step 2-13 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。\n我们以 stage 组织实验,各个 stage 组织如下:\n\n \n 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。\n \n \n 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。\n \n \n 变量和赋值(step5)。在这个 stage 中你将第一次支持变量声明与赋值。\n \n \n 作用域和块语句(step6)。在这个 stage 中你的编译器将支持作用域,以便支持后续的条件和循环。\n \n \n 条件和循环(step7-step8)。在这个 stage 中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。\n \n \n 函数(step9)。在这个 stage 中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。\n \n \n 全局变量和数组(step10-step12)。在这个 stage 中,你将支持全局变量和数组,数组中包括全局数组和局部数组。\n \n \n 寄存器分配算法(step13)。在这个 stage 中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。\n \n\n\n\n其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。\nstage1 - stage5 为 5 个基础关卡,你需要通过它们以拿到一定的分数(35%)。\nstage6 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评 7% 的成绩并替代期末考试对应权重)。\nstage7 为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评 8% 的成绩并替代期末考试对应权重)。注意,你需要在完成 stage6 后才能尝试 stage7,否则无法获得对应分数。\n我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。\n我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。\n诚信守则\n请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。\n实验提交\n大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf-你的学号 ,将作业提交到那个仓库即可。\n每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git checkout -b 来创建一个新的分支。\n本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。\n.gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件;\nprepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。\n在 CI 中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过 CI。\n我们只接受 pdf 格式的实验报告。你需要将报告放在仓库的 ./reports/.pdf 路径,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。\n实验报告中需要包括:\n\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n评分标准\n对于每个阶段(stage):\n\n80% 的成绩是自动化测试的结果,你可以直接在 git.tsinghua 的 CI 测试中看到。\n20% 的成绩是实验报告,其中对实验内容的描述占 10%,对思考题的回答占 10%。\n\n评分会以每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。\n如果你认为成绩有问题,请及时与助教联系。\n时间安排及补交政策请看实验进度安排。\n学术规范\n由于实验有一定难度,同学之间相互学习和指导是提倡的。\n对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。\n如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。\n我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。\n代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。\n相关资源\n\n实验指导书(首页有实验报告提交要求)\n实验指导书勘误表\n课程问答墙\n实验思路指导与问答墙\n\n参考资料\n\nWriting a C Compiler: by Nora Sandler\nnqcc\n\n\nhttp://scheme2006.cs.uchicago.edu/11-ghuloum.pdf\n\n备注\n\n1. 关于名字由来,由于往年的实验叫 Decaf,我们在新的且更简单的语言规范下复用了 Decaf 的编译器框架,所以今年的实验就叫 MiniDecaf 了。 ↩\n\n"},"docs/misc/schedule.html":{"url":"docs/misc/schedule.html","title":"实验进度安排","keywords":"","body":"实验进度安排\n所有截止时间均为所标日期的23:59:59(UTC+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。\n必做部分:\n\n第三周周日(9.29):Stage 0 截止 熟悉框架和基础知识 (占比:0%)\nstage 0 不需要你编写任何代码,stage 0的思考题请与stage 1一起提交。\n\n\n\n\n第四周周日(10.6):Stage 1 截止 常量表达式(占比:7%)\n\n第六周周日(10.20):Stage 2 截止 变量(占比:7%)\n\n第八周周日(11.3):Stage 3 截止 作用域(占比:7%)\n\n第十周周日(11.17):Stage 4 截止 控制语句(占比:7%)\n\n第十四周周日(12.15):Stage 5 截止 函数(占比:7%)\n\n函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。\n\n\n\n选做部分:\n选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。\n\n第十五周周日(12.22):Stage 6 截止 全局变量和数组(占比:7%)\n\n第十六周周日(12.29):Stage 7 截止 寄存器分配与代码优化(占比:8%)\n\n\n补交政策\n\n假设 a 日 24:00 是某个 stage 的截止时间;\na + k (k \n提交/补交时间是该 stage 截止 10 天内这个 stage 的 branch 最后一次触发 CI 的时间;\n更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。\n如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。\n\n\n选做实验不接受补交。\n\n"},"docs/step0/errate.html":{"url":"docs/step0/errate.html","title":"勘误表","keywords":"","body":"勘误表\n在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。\n \nQ:使用 pip install -r ./requirements.txt 命令无法正确安装依赖?\nA:如果你安装了多版本的 python,使用 pip 命令未必会对应 3.9 版本的包管理器。请尝试使用 python3.9 -m pip install -r ./requirements.txt 安装依赖。\n \nQ: 代码框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。\n经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错:\nutils.error.IllegalArgumentException: error: encounter a non-returned basic block\n请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?\nA:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。\n \nQ:我怎样才能知道我的提交通过了所有测试用例?\nA:可以通过本地测试或者通过 CI 结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。\n \nQ:如何提交课程报告?\nA:\n\n请将实验报告以 pdf 格式提交到 git.tsinghua 自己的仓库中,放在仓库根目录下的 reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 reports/stage-1.pdf。\n\n最新的 CI 会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作 pass。\n\n如果关于报告提交有任何问题,请及时联系助教。\n\n\n"},"docs/ref/riscv.html":{"url":"docs/ref/riscv.html","title":"RISC-V 参考资料","keywords":"","body":"RISC-V相关内容补充\nRISC-V官方资料\n不建议阅读,太过冗长,这对于编译知识提升非常有限。\nRISC-V 官方\n请下载ISA Specifications (Ratified)中的Volume 1, Unprivileged Specification。\n如果你时间充足,你可以阅读:\nChapter 24 RV32/64G Instruction Set Listings\nChapter 25 RISC-V Assembly Programmer’s Handbook\n如何快速查询RISC-V指令\n在线编译器\n你可以使用Compiler Explorer (godbolt.org)来快速获得一个riscv指令的实现\n在左边输入以下例子\nint mod(int x, int y) {\n // 注意:此处不要直接写一个可以计算得到结果的式子\n // 比如5 % 8会被编译器优化为5\n return x % y;\n}\n\n把右边的编译器选为RISC-V(32-bits)中的任何一个,在编译选项中写上-O2(减少不必要的指令生成),翻译一条指令看看效果。\n本地编译器\n你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 或者 -O2 选项):\nint foo(int x) {\n return !x;\n}\n\n不出意外你会获得如下结果:\nfoo:\n seqz a0,a0\n ret\n"},"docs/step0/intro.html":{"url":"docs/step0/intro.html","title":"实验环境简介","keywords":"","body":"实验环境简介\n2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。\n服务器环境如下:\n\nUbuntu 23.04\npython 3.11.4\n\n注意:\n\n禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。\n为了安全起见,服务器仅可通过校内网络访问。\n服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。\n\n提示:\n\n如何使用 ssh 登陆服务器? ssh username@ip -p port\n # 假如你的账号为 2024000001,服务器 ip 地址为 192.168.1.1,端口为 223,则命令为:\n ssh 2024000001@192.168.1.1 -p 223\n\n\n建议配置 ssh 免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。\n\nvscode 也是可以使用ssh远程写代码的,参考这里。\n\n\n如果你使用我们提供的服务器,你可以直接来看RISC-V 的工具链使用和运行实验框架。\n"},"docs/step0/riscv_env.html":{"url":"docs/step0/riscv_env.html","title":"RISC-V 环境配置","keywords":"","body":"RISC-V 环境配置\n必做:RISC-V 的 gcc 和 qemu\n我们的编译器只生成 RISC-V 汇编,然后再使用 gcc 把 RISC-V 汇编变成 RISC-V 可执行文件,最后用 qemu/spike 等模拟器来运行 RISC-V 可执行文件。\n\n注意这里的 gcc 和常说的 gcc 不一样。\n常说的 gcc 运行在我们的 x86 机器上、把 C 编译到 x86 可执行文件;\n而这里的 gcc 虽然也运行在我们的 x86 机器上,却要编译到 RISC-V 可执行文件。\n这种“gcc 跑在 x86 却编译出 RISC-V 代码”的操作被称为交叉编译(cross compilation)。\n因此我们不能直接使用有些系统自带的 gcc,这种 gcc 生成的可执行程序只能在你本机(x86)上运行。\n我们需要下载安装 riscv64-unknown-elf-gcc,用来生成 RISC-V 可执行程序。\n建议各位同学使用我们提供的 RISC-V 工具链,由 SiFive 预编译的较新版本的工具链对 32 位的支持存在问题。\n\n我们提供了预编译的 riscv64-unknown-elf-gcc 和 qemu/spike 模拟器,不过只能在 Linux/Mac 下运行(qemu 对应 Linux,spike 对应 Mac),Windows 的同学可以使用 WSL,或者运行一个虚拟机。\n命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。\n下面是环境配置指南,请阅读自己的系统的那一小节。\n 你的编译器 gcc qemu/spike\nMiniDecaf 源文件 ------------> RISC-V 汇编 -----> 可执行文件 --------> 输出\nWindows 用户环境配置指南\n下面描述了 WSL 的一种参考方法。\n你还可以开一个 Linux 虚拟机,使用 Virtualbox 或 VMWare 等,然后参考下面 Linux 配置。\nWin10 设置\n\n参考 https://blog.csdn.net/daybreak222/article/details/87968078 ,设置“开发者模式”以及“启用子系统功能”。\n\n打开Microsoft Store,搜索Ubuntu,选择ubuntu20.04.\n\n按照下面的 Linux 用户环境配置指南安装 riscv 工具链。\n\n\nUbuntu 用户环境配置指南\n\n建议使用 Ubuntu 20.04 及更高的版本,你可以直接使用 apt 来安装用户态的 qemu,即 apt install qemu-user。\n如果使用的是低版本的 WSL,通过 Windows 应用商店可以很容易地安装 Ubuntu 20.04 LTS;\n如果在机器上直接安装了较低版本的 Ubuntu, 可以参考这个教程进行升级,升级时注意备份。\n如果出于某些原因必须使用低版本的 Ubuntu,你需要自己编译出可用的用户态 QEMU。\ngit clone https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git\ncd qemu && ./configure --prefix=/usr/local --target-list=riscv32-linux-user\nmake\nmake install\nqemu-riscv32 --version # 检查是否安装成功\n\n\n从这里下载预编译好的 RISC-V 工具链并解压。\n\n安装工具链 cp riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/* /usr/ -r\n\n在第 2. 步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:\n首先把文件夹riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/改名为 riscv-prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc 文件, 把export PATH=$PATH:/path/to/riscv-prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to 需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令source ~/.bashrc使修改生效。\n(如果你不用系统自带的 bash 而是用 zsh 之类的 shell,那加到 ~/.zshrc 等 shell 配置文件里)\n\n\n\nmacOS 用户环境配置指南\n\n从这里下载预编译好的 RISC-V 工具链并解压到你喜欢的目录。\n由于 macOS 不支持 QEMU 的用户态模式,我们使用 Spike 模拟器和一个简易内核 riscv-pk 提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:\n\n从这里下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,不过还需要通过 Homebrew 安装依赖 device tree compiler:\n$ brew install dtc\n\n\n通过 Homebrew 安装 Spike(会自动安装 dtc):\n$ brew tap riscv/riscv\n$ brew install riscv-isa-sim\n\n然后从这里上下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,只用里面的 pk。\n\nHomebrew 也提供了 riscv-pk,不过那是 64 位的,而我们需要 32 位的,请使用我们预编译的 riscv-pk 或自行编译。\n请注意我们提供的预编译 pk 是 x86 版本,如果你是其他平台(如M1 Mac),可以尝试自行根据 pk 的源码进行编译,附 Github 仓库链接。\n\n\n\n\n(可选)设置环境变量,方法与 Linux 一样,见上一节。如果不设置每次使用 gcc 和 spike 时都要输入完整路径。不过对于 pk 设置环境变量不管用,要么把它放到系统目录 /usr/local/bin/pk,要么每次都用完整路径。\n\n测试你 GCC 和 Spike 是否成功安装,详见RISC-V 的工具链使用。\n\n\n必做:测试你是否正确配置好了环境\n\n创建 test.c 文件,其中写入如下内容\n#include \nint main() { printf(\"Hello world!\\n\"); }\n\n\n编译 test.c 文件,gcc 应该输出一个可执行文件 a.out。但 a.out 是 RISC-V 可执行文件,所以我们的 X86 计算机无法运行。\n$ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 test.c\n$ ls a.out\na.out\n$ ./a.out\n# 如果没有安装qemu模拟器,则会出现如下错误:\"bash: ./a.out: cannot execute binary file: Exec format error\"\n\n后面RISC-V 的工具链使用总结了 gcc 和 qemu 在编译实验中可能需要的用法。\n\n使用 qemu 执行 a.out,具体操作如下\n\n\nLinux用户\n$ qemu-riscv32 a.out\nHello world!\n注意:安装了qemu之后,直接运行 ./a.out 往往也可以调用qemu环境正确执行,并得到\"Hello world!\"输出。\n\nMac OS用户,假设你已经将spike加入环境变量,将pk加入系统目录\n$ spike --isa=RV32G pk a.out\nbbl loader\nHello world!\n\n备注\n\n1. 开头的 $ 表示接下来是一条命令,记得运行的时候去掉 $。例如,让你运行 $ echo x,那你最终敲到终端里的是 echo x(然后回车)。如果开头没有 $,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。 ↩\n\n"},"docs/step0/riscv.html":{"url":"docs/step0/riscv.html","title":"RISC-V 的工具链使用","keywords":"","body":"RISC-V 相关信息\nRISC-V 是一个很像 MIPS 的 RISC 指令集架构,编译实验要求你的编译器把 MiniDecaf 程序编译到 RISC-V 汇编。\n指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\"。\n\n另外这里也有(非官方的)指令用法说明。\n不过事实上,很多时候看 gcc 输出的汇编比看什么文档都有用。\n\nRISC-V 工具使用\n我们提供预先编译好的 RISC-V 工具,在环境配置中已经叙述了安装和使用方法。\n下面汇总一下。\n\n注意,我们虽然是用的工具前缀是 riscv64,\n但我们加上参数 -march=rv32im -mabi=ilp32 以后就能编译到 32 位汇编 1。\n使用时记得加这个参数,否则默认编译到 64 位汇编。\n\n我们假设你已经正确设置好了环境变量,否则运行 riscv64-unknown-elf-gcc 或 qemu-riscv32 或 spike 时请用完整路径。\n\ngcc 编译 input.c 到汇编 input.s,最高优化等级(否则输出的汇编会很冗长)\n\n# input.c 的内容\n$ cat input.c\nint main(){return 233;}\n\n# 编译到 input.s\n$ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 -S input.c\n\n# gcc 的编译结果\n$ cat input.s\n .file \"input.c\"\n .option nopic\n .attribute arch, \"rv32i2p0_m2p0\"\n .attribute unaligned_access, 0\n .attribute stack_align, 16\n .text\n .section .text.startup,\"ax\",@progbits\n .align 2\n .globl main\n .type main, @function\nmain:\n li a0,233\n ret\n .size main, .-main\n .ident \"GCC: (SiFive GCC 8.3.0-2020.04.0) 8.3.0\"\n\n\ngcc 编译 input.s 到可执行文件 a.out\n\n# input.s 的内容,就是上面汇编输出的简化版本\n$ cat input.s\n .text\n .globl main\nmain:\n li a0,233\n ret\n\n# 编译到 a.out\n$ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 input.s\n\n# 输出结果,能看到是 32 位的 RISC-V 可执行文件\n$ file a.out\na.out: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, not stripped\n\n\n【Linux 用户】qemu 运行 a.out,获取返回码\n\n# 运行 a.out\n$ qemu-riscv32 a.out\n\n# $? 是 qemu 的返回码,也就是我们 main 所 return 的那个值\n$ echo $?\n233\n\n\n【macOS 用户】Spike 模拟器运行 a.out,获取返回码\n\n# 运行 a.out\n# /usr/local/bin/pk 替换为你自己的 pk 路径\n$ spike --isa=RV32G /usr/local/bin/pk a.out\nbbl loader\n\n# $? 是 spike 的返回码,也就是我们 main 所 return 的那个值\n$ echo $?\n233\n\n\n\n1. 这里的 rv32im 表示使用 RV32I 基本指令集,并包含 M 扩展(乘除法)。本实验中我们不需要其他扩展。 ↩\n\n"},"docs/step0/env.html":{"url":"docs/step0/env.html","title":"实验框架环境配置","keywords":"","body":"实验框架环境配置\nPython 实验框架环境配置\n关于操作系统,助教推荐使用 Linux 环境(如 Ubuntu,Debain 或 Windows 下的 WSL 等),当然你也可以在类 Unix 系统环境(Mac OS)中进行开发。助教不推荐直接在 Window 中搭建开发环境。你需要安装或保证如下软件满足我们的要求:\n\npython >= 3.9\n助教强烈建议使用类似 Miniconda 或venv的系统管理不同的Python环境。你可以方便地使用miniconda安装最新的Python版本,安装好之后使用pip安装依赖即可。\n框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性,请保证你所使用的 python 版本高于此版本。\n如果你没有使用虚拟环境,可以参考下面的指导。Linux 环境下安装 Python 3 可以尝试如下命令:\n> sudo add-apt-repository ppa:deadsnakes/ppa\n> sudo apt update\n> sudo apt install python3\n\n此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的 Python3 版本:\n> python3 --version\n框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse:\n$ python3 -m pip install -r ./requirements.txt\n\n\nargparse\n框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。\n\nply\nply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考 ply 的文档。\n\n\n助教在项目中使用 type hints,如果你习惯在 vscode 中进行开发的话同时推荐使用 pylance 这一插件。\n由于 python 的跨平台性,理论上也可以在 Windows 下进行开发。但不保证Windows和在线测试环境下程序行为的一致性。\n"},"docs/step0/testing.html":{"url":"docs/step0/testing.html","title":"运行实验框架","keywords":"","body":"运行实验框架\n配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。\n\n接下来我们会用到 git。\ngit 的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里 。\n\n\n按照本文档的前几节(RISCV 环境配置和实验框架环境配置)配置好实验环境。\n\n助教已经为每位同学在 git.tsinghua.edu.cn 创建了一个仓库,其中 minidecaf 的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块 git clone --recursive 。\n由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用 git submodule update --remote --merge 来手动更新。\n\n\n\n注意:由于子模块使用 ssh 链接,你需要将你的 ssh 公钥添加到你的 git.tsinghua 账号上,才能将其克隆下来。\n\n\n按照测例的 README 运行测试 step1,实验框架给出的初始代码可以通过 step1 的所有测例。\n\n测试运行的 输出结果 大致如下。\n$ STEP_UNTIL=1 ./check.sh\ngcc found\nqemu found\nparallel found\nOK testcases/step1/multi_digit.c\nOK testcases/step1/newlines.c\n...... 其他测试点,太长省略\n\n"},"docs/step1/arch.html":{"url":"docs/step1/arch.html","title":"MiniDecaf 编译器结构","keywords":"","body":"MiniDecaf 编译器结构\nMiniDecaf 编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入 MiniDecaf 源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(Abstract Syntax Tree, AST),接下来通过扫描 AST 进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描 AST 生成中间代码 —— 三地址码;在编译器后端中,将三地址码转换为 RISC-V 汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。\n\n我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的 step 作详细介绍。\n\n词法分析和语法分析\n\n此部分对应框架源码位置:\n词法分析程序位于 frontend/lexer/;语法分析程序位于 frontend/parser/;语法树位于 frontend/ast/。\n\n编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描 MiniDecaf 源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的 MiniDecaf 程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(Abstract Syntax Tree, AST)。比如,对于下面这一段简单的MiniDecaf 代码:\nif (i) i = 1;\n\n它对应的完整语法分析树可能长这样:\nif_stmt\n |- \"if\"\n |- \"(\"\n |- Identifier(\"i\")\n |- \")\"\n |- assign_stmt\n |- Identifier(\"i\")\n |- \"=\"\n |- Int(1)\n |- \";\"\n其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:\nif_stmt\n |- (condition) Identifier(\"i\")\n |- (body) assign_stmt\n |- (lh) Identifier(\"i\")\n |- (rh) Int(1)\nAST省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。\n词法分析和语法分析的最终结果是一棵跟所输入的 MiniDecaf 源程序相对应的语法树。本阶段的实验重点是掌握 LEX 和 YACC 的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、LALR(1) 分析等理论知识在实践中的应用。\n语义分析\n\n此部分对应框架源码位置:\n符号表构建位于 frontend/typecheck/namer.py;类型检查位于 frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于 frontend/scope/。\n\n语法分析树的建立可以说明所输入的 MiniDecaf 源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。\n可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。\n具体来说,在这一阶段中,我们需要对 AST 进行两遍扫描,分别完成以下的检查:\n\n符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。\n类型检查:各语句和表达式是否类型正确。\n\n如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。\n符号表构建\n针对 MiniDecaf 程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1) 在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2) 符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。\n\nstep1-4 中只需要考虑常量的计算,直到 step5 才需要考虑符号表构建。\n\n类型检查\n完成符号表构建后,我们就可以自顶向下地遍历 AST,对每个语句和表达式逐一进行类型检查,并在 AST 上进行类型标注。对于静态类型(statically-typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typing rules)。 在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。\n\n事实上,由于 MiniDecaf 代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑 int 和 int 数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。\n\n中间代码生成\n\n三地址码定义位于 utils/tac/;中间代码生成位于 frontend/tacgen/tacgen.py。\n\n在对 AST 进行语义分析后,我们将在这一阶段把带有类型标注的 AST 翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。 \n由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下:\n\n通过把 AST 到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查 IR 是否正确就可以知道:是 AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。\n通过 IR 可以适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。\n\n接下来,将对我们所使用的中间代码 —— 三地址码 (TAC) 做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的 TAC 并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。\n三地址码\n三地址码(Three Address Code, TAC)看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。\nmain: # main 函数入口标签\n _T0 = 1 # 加载立即数\n _T1 = _T0 # 临时变量赋值操作\n _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1\n _T3 = NEG _T0 # 取负操作 _T3 = -_T0\n return _T2 # 函数返回\n\n\n以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。\n\nTAC 程序由标签和指令构成:\n标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的 main 函数入口),以及作为分支语句的跳转目标(TAC 指令不支持 MiniDecaf 语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。\nTAC 指令与汇编指令类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。 操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于 step10 才需要考虑,届时再介绍其处理方法)。如上例所示,TAC 中的临时变量均用 \"_Tk\" 的形式表示(k表示变量的编号)。\nTAC 程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,MiniDecaf 只支持 int 类型和 int 数组类型,其值和地址都可以用一个32位整数存储,故 MiniDecaf 程序中的变/常量和 TAC 中的变/常量可以直接对应。\n数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在 step11 详细讨论。\n控制流、数据流分析和寄存器分配\n\n数据流图定义及优化在 backend/dataflow/ 中;寄存器分配在 backend/reg/ 中\n\n控制流和数据流分析\n一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。\n所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。 关于数据流分析的细节,我们将在 step7 做详细介绍。\n寄存器分配\n所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在 step5 中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。\n目标平台汇编代码生成\n\n目标平台汇编代码生成在 backend/asm.py | subroutineinfo.py 以及 backend/riscv/ 中。\n\n通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用 addi 汇编指令来翻译 ADD 中间代码指令。需要特别提出的是,RISC-V 指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。\n课程实验的目标平台为 RISC-V,RISC-V 是一个与 MIPS 类似的 RISC 指令集架构,编译实验要求所实现的编译器把 MiniDecaf 程序编译到 RISC-V 汇编代码。指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\",另外这里也有(非官方的)指令用法说明。下图给出了 RISC-V 的32个整数寄存器的相关说明,其中需要特别注意的寄存器有 ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了 RISC-V 的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是 caller-saved 还是 callee-saved。\n\n"},"docs/step1/provided.html":{"url":"docs/step1/provided.html","title":"已提供的语法特性","keywords":"","body":"已经提供的语法特性\n为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的 while 循环实现,同学们可以参考着完成 for 循环的实现。\n下面我们列出了所有框架中已经完成的特性:\n\nstep1 中我们提供了所有实现。\nstep2 中我们提供了取负运算的实现。\nstep3 中我们提供了加法和逻辑或操作运算的实现。\nstep5 中我们提供了基础数据结构——符号表的实现。\nstep6 中我们提供了基础数据结构——单层作用域的实现。\nstep7 中我们提供了 if 语句的实现。\nstep8 中我们提供了 while 循环的实现。\n此外,我们提供了 step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。\n\n"},"docs/step1/intro.html":{"url":"docs/step1/intro.html","title":"实验要求","keywords":"","body":"实验指导 step1:一个仅有 return 的 main 函数\n实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在 stage 1 的报告中(注意不是 stage 0)完成通过例子学习一节末尾的思考题。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 1 准备报告。\n"},"docs/step1/example.html":{"url":"docs/step1/example.html","title":"通过例子学习","keywords":"","body":"通过例子学习,一个仅有 return 的主函数编译全流程:\n本步骤主要涉及的语法为主函数和 return 语句,完成本步骤之后,你的编译器将支持将一个仅有 return 的主函数编译为 32 位 RISC-V 汇编代码,并通过 RISC-V 工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触 MiniDecaf 编译实验框架,我们给大家的代码框架中已经包含所有 step1 的实现,大家可以直接运行通过 step1 的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。\n下面我们将通过一个简单的 step1 测试用例,一起走过它的编译全流程:\nint main() {\n return 2024;\n}\n\n词法分析 & 语法分析\n在词法分析 & 语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的 AST,我们使用了 lex/yacc 库来实现这一点。yacc 是一个根据 EBNF 形式的语法规范生成相应 LALR parser 的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对 lex/yacc 的使用,结合我们的文档,来快速上手 lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行 lex/yacc 的入门,但这不是必须的。\n在实验框架中,我们使用的是 lex/yacc 的一个纯 python 实现,称为 python-lex-yacc(简称 ply),其使用方法与 lex/yacc 有一些差异。\nPython-lex-yacc 快速入门\n程序的入口点在 main.py,它通过调用 frontend.parser.parser(位于 frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于 frontend/lexer/ply_lexer.py 的词法分析器进行词法分析。语法的定义和语法分析器都位于 frontend/parser/ply_parser.py,而词法的定义位于 frontend/lexer/lex.py。AST 节点的定义位于 frontend/ast/tree.py 中。以下表示中的符号都出自于这几个文件。\n这部分的工作流程如下:\n 读内容 词法分析 & 语法分析 语义分析\n readCode parser.parse Namer.transform & Typer.transform\nMiniDecaf 源文件 --------> 字节流 -----------> AST -------------------------------> ...\n当程序读入程序的字符流之后,它首先会被 lexer 处理,并被转化为如下形式的一个 Token 流:\nInt Identifier(\"main\") LParen RParen LBrace Return Integer(2024) Semi RBrace\n在frontend/lexer/lex.py文件中你可以看到每个 Token 是如何定义的,每个token都会以t_开头。如t_Semi = \";\"代表分号被解析以后会转化为 Semi 这个Token。而对于一些复杂的 Token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0-9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码:\ndef t_Integer(t):\n r\"[0-9]+\" # can be accessed from `t_Interger.__doc__`\n t.value = int(t.value)\n return t\n\n之后,这些 token 会被 yacc 生成的 LALR(1) parser 转化为如下形式的 AST:\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) Return\n |- (expr) IntLiteral(2024)\n得到的 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。\n在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有parser = yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。\ndef p_program(p):\n \"\"\"\n program : function\n \"\"\"\n p[0] = Program(p[1])\n\ndef p_function_def(p):\n \"\"\"\n function : type Identifier LParen RParen LBrace block RBrace\n \"\"\"\n p[0] = Function(p[1], p[2], p[6])\n我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program -> function,同时代码中的p[0] = Program(p[1])代表了构建AST的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0] = Program(p[1])最后就会变为p[0] = Program(Function(...)),这里Program、Function类的定义在frontend/ast/tree.py文件中,你可以看到Function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。\n尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c)\n语义分析\n在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误:\n\nmain 函数是否存在。(frontend/typecheck/namer.py:37)\n\n在实际操作中,我们遍历 AST 所用的方法就是的 Visitor 模式,通过 Visitor 模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于 Visitor 的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如 gcc 根据优化等级不同会有数百个不等的 pass。下面,我们将指出,step1 中我们是如何实现符号表构建 pass 和类型检查 pass 的,同学们可以选择去看相应的代码注释与实现细节。\nfrontend/typecheck/namer.py 和 typer.py 分别对应了符号表构建和类型检查这两次遍历。在框架中,Namer 和 Typer 都是继承 frontend/ast/visitor.py 中的 Visitor 类来通过 Visitor 模式遍历 AST 。\n中间代码生成\n在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的 Visitor 模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在 step1 当中,我们只需要提取 return 语句返回的常量,为之分配一个临时变量,再生成相应的 TAC 返回指令即可。不难看出,本例对应的三地址码为:\nmain: # main 函数入口标签\n _T0 = 2024 # 为立即数 2024 分配一个临时变量\n return _T0 # 返回\n\n\n下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。\n\nutils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。\nfrontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。这个文件里除了类型TACGen之外还有一个辅助类TACFuncEmitter,它用于处理产生TAC代码过程中一些相对底层的细节。在本框架中,TAC 程序的生成以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 TACFuncEmitter 来生成对应的 TAC 函数代码。如果你增加了 TAC 指令,则可能需要在 TACFuncEmitter 类中增加生成相应指令的代码。\n目标代码生成\n目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:\n\n如何将一个立即数装载到指定寄存器中?\nRISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2024,就是将立即数 2024 加载到寄存器 t0 中。\n\n如何设置返回值?\n在 RISC-V 中,a0 和 a1 是 gcc 调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在 a0 和 a1 中。也就是说,如果你有一个 32 位的返回值,你可以放在 a0 中返回,如果你有两个 32 位的返回值,你就需要把它们分别放在 a0 和 a1 中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。 \n在我们的实验要求中,返回值均是单个 32 位的值。因此在当前步骤中你只需要了解,将需要返回的值放入 a0 寄存器中,然后在后面加上一条 ret 指令即可完成函数返回的工作。\n\n\n综上所述,我们上述中间代码翻译成如下 RISC-V 汇编代码:\n .text # 代码段\n .global main # 声明全局符号 main\nmain: # 主函数入口符号\n li t0, 2024 # 加载立即数 2024 到 t0 寄存器中\n mv a0, t0 # 将返回值放到 a0 寄存器中\n ret # 返回\n\n实验框架中关于目标代码生成的文件主要集中 backend 文件夹下,step1 中你只需要关注 backend/riscv 文件夹中的 riscvasmemitter.py 以及 utils/riscv.py 即可。具体来说 backend/asm.py 中会先调用 riscvasmemitter.py 中的 selectInstr 方法对每个函数内的 TAC 指令选择相应的 RISC-V 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitFunc 方法生成每个函数的 RISC-V 汇编。\n思考题\n\n在我们的框架中,从 AST 向 TAC 的转换经过了 namer.transform, typer.transform 两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么?\n int main(){\n return 10;\n }\n\n\n我们的框架现在对于 return 语句没有返回值的情况是在哪一步处理的?报的是什么错?\n\n为什么框架定义了 frontend/ast/tree.py:Unary、utils/tac/tacop.py:TacUnaryOp、utils/riscv.py:RvUnaryOp 三种不同的一元运算符类型?\n\n\n"},"docs/step1/visitor.html":{"url":"docs/step1/visitor.html","title":"Visitor 模式速成","keywords":"","body":"Visitor 模式速成\n编译器的构造中会使用到很多设计模式,Visitor 模式就是常见的一种。 基础的设计模式都在 OOP 课程中覆盖,这里重提一下 Visitor 模式,并以框架中的代码为示例进行介绍。\n我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。Visitor 模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个 DFS 遍历。\n让我们考虑 step1 的文法:\nprogram : function\nfunction : type Identifier '(' ')' '{' statement '}'\ntype : 'int'\nstatement : 'return' expression ';'\nexpression : Integer\n以这个文法对应的一段 MiniDecaf 代码为示例:\nint main() {\n return 2;\n}\n\n它会对应如下的 AST 结构:\nprogram\n function\n type(int)\n identifier(main)\n param_list\n return\n int(2)\n\n我们用缩进表示树结构,其中 program, function, type, identifier, param_list, block, return, int 等均为 AST 上的结点类型。\n\n在框架中,我们有以下的 AST 结点类实现(进行了适当的简略):\n'''\nfrontend/ast/node.py\n'''\nclass Node: # 所有 AST 结点的基类\n # ...\n'''\nfrontend/ast/tree.py\n'''\nclass Program(ListNode[Union[\"Function\", \"Declaration\"]]): # 程序,AST 的根结点类型\n # ...\nclass Function(Node): # 函数\n # ...\nclass Statement(Node): # 语句基类\n # ...\nclass Return(Statement): # return 语句\n # ...\nclass TypeLiteral(Node): # 类型基类\n # ...\nclass TInt(TypeLiteral): # 整型\n # ...\n\n假设在经过了词法分析和语法分析后,我们已经成功将 MiniDecaf 代码转化为了 AST 结构。现在,我们想要编写代码对 AST 进行扫描。很容易写出递归的 DFS 遍历:\ndef dfs(node: Node):\n if isinstance(node, Program):\n for func in node.functions:\n dfs(func)\n elif isinstance(node, Function):\n # do something for scanning a function node\n elif isinstance(node, Return):\n # ...\n\ndfs 函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,dfs 函数根据被遍历的结点类型不同,执行不同的遍历逻辑。 那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的 Visitor。此外,为了便于实现,我们不使用 isinstance 来判断结点类型,而是调用结点自身的一个 accept 函数,并把不同的 visitXXX 函数抽象到一个接口里,各种具体的 Visitor 来实现这个接口。\n''' frontend/ast/node.py '''\nclass Node: # 所有 AST 结点的基类\n def accept(self, v: Visitor[T, U], ctx: T) -> Optional[U]:\n raise NotImplementedError\n''' frontend/ast/tree.py '''\nclass Program(ListNode[Union[\"Function\", \"Declaration\"]]):\n # ...\n def accept(self, v: Visitor[T, U], ctx: T):\n return v.visitProgram(self, ctx)\nclass Function(Node):\n # ...\n def accept(self, v: Visitor[T, U], ctx: T):\n return v.visitFunction(self, ctx)\n# ...\n''' frontend/ast/visitor.py '''\nclass Visitor(Protocol[T, U]):\n def visitOther(self, node: Node, ctx: T) -> None:\n return None\n def visitProgram(self, that: Program, ctx: T) -> Optional[U]:\n return self.visitOther(that, ctx)\n def visitFunction(self, that: Function, ctx: T) -> Optional[U]:\n return self.visitOther(that, ctx)\n # ...\n\n之后,如果我们想要编写一种遍历 AST 的方法,可以直接继承 Visitor 类,并在对应结点的 visit 成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:\nclass Namer(Visitor[ScopeStack, None]):\n def visitProgram(self, program: Program, ctx: ScopeStack) -> None:\n # ...\n for child in program:\n if isinstance(child, Function):\n child.accept(self, ctx) \n def visitFunction(self, func: Function, ctx: ScopeStack) -> None:\n # ...\n # ...\n\n如果想要访问某个子结点 child,直接调用 child.accept(self, ctx) 即可。\n"},"docs/step1/spec.html":{"url":"docs/step1/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep1 语法规范\n我们采用 EBNF (extended Barkus-Naur form) 记号书写语法规范,采用类似 ANTLR 的记号:\n\n小写字母打头的是非终结符(如 program),大写字母打头的是终结符(如 Identifier),可以用字符串字面量表示终结符(如 'int')\n后面会用到:( 和 ) 表示分组,| 表示选择,* 零或多次,+ 一或多次,? 零或一次。\n很容易通过增加新的非终结符,去掉这些符号。例如 x+ 就可以被替换成新的非终结符 y,并且 y : x | x y。\n\n\n\n\nEBNF 也有很多写法,另一种是用尖括号表示非终结符 ::= 等。\n\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : Integer\n\n\nstep1 语义规范\n1.1 MiniDecaf 的 int 类型具体指 32 位有符号整数类型,范围 [-2^31, 2^31-1],补码表示。\n1.2 编译器应当只接受 [0, 2^31-1] 范围内的整数常量, 不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号-后,可以用负号配合正整数常量来间接表示负整数常量。\n1.3 如果输入程序没有 main 函数,编译器应当报错。\n"},"docs/step2/intro.html":{"url":"docs/step2/intro.html","title":"实验要求","keywords":"","body":"实验指导 step2:一元运算符\nstep2 中,我们要给整数常量增加一元运算:取负 -、按位取反 ~ 以及逻辑非 !。\n语法上,我们需要修改 expression 的定义,从 expression : Integer 变成:\n\nexpression\n : unary\n\nunary\n : Integer\n | ('-'|'!'|'~') unary\n\n\n三个操作的语义和 C 以及常识相同,例如 ~0 == -1,!!2 == 1。\n稍微一提,关于按位取反,我们使用补码存储 int;关于逻辑非,只有 0 表示逻辑假,其他的 int 都是逻辑真。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 2 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n如何检查我是否通过自动测试(CI)\n在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。\n如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。\n"},"docs/step2/example.html":{"url":"docs/step2/example.html","title":"通过例子学习","keywords":"","body":"step2 实验指导\n我们按照上一节划分的编译器阶段,分阶段给出 step2 实验指导。本实验指导使用的例子为:\n\n需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的 MiniDecaf 程序。\n\n-1\n\n词法语法分析\n在 step2 中,我们引入了一元运算,因此需要引入新的抽象语法树节点:\n\n\n\n节点\n成员\n含义\n\n\n\n\nUnary\n操作数 operand,运算类型 op\n一元运算\n\n\n\n注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。\n语义分析\n由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。\n代码没有特别需要修改的地方。\n中间代码生成\n在 step1 中,我们只需为 return 语句的返回的整型常量分配一个临时变量即可。而从 Step2 开始,语法树上出现了各种运算操作结点。在生成 TAC 的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。\n针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nNEG\nT0\n对参数取负\n\n\n\n按照上文说的,-1 在语法树上对应父-子两个结点,父结点为取负操作,子结点为常量 1。在生成过程中,首先使用 Visitor 模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。\n因此,测例可以翻译成如下的中间代码:\n_T0 = 1\n_T1 = NEG _T0\n\n目标代码生成\nstep2 目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。以 NEG 中间表达指令为例,RISC-V 汇编中有 neg 指令与其对应,因此上述中间代码可以翻译为如下的 RISC-V 汇编:\nli t0, 1\nneg t1, t0\n\n如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里\n实现细节\n\n 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。\n\n相比于step 0, 我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:-1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):\n首先,我们应该把 - 看作一个符号,而不应该将 -1 看作一个整体,因为我们还可能遇到 -x 这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对 - 的处理。\n我们能发现 -, !, ~ 等符号都可以作为一元运算符出现,比如!x, ~a, -10,我们将这类一元运算操作都称为 unary ,一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和 AST 节点了。\n因此我们希望生成的 AST 应当变为如下形式:\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) Return\n |- (expr) Unary\n |- (op) Minus\n |- (expr) IntLiteral(1)\n看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 1 这个数字是一个表达式, -1 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。\n词法分析 & 语法分析\n在 frontend/lexer/lex.py 里加入新的 lex token 定义,以便lexer可以解析 -:\nt_Minus = \"-\"\n\n在 ply 的 lexer 中,定义的新 token 需要以 t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。\n在 frontend/ast/tree.py 里加入新的 AST 节点定义(以及相应的其它东西):\nclass Unary(Expression):\n def __init__(self, op: Operator, operand: Expression):\n ...\n\n并在 frontend/ast/visitor.py 中加入相应的分派函数。\n它将在后续的 parser 语义计算中被用到。\n在 frontend/parser/ply_parser.py 里加入新的 grammar rule:\ndef p_expression_precedence(p): # 定义的新语法规则名。可以随便起,但必须以 `p_` 开头以被 ply 识别。\n \"\"\"\n expression : unary\n unary : primary\n \"\"\" \n # 以 [BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) 定义的新语法规则,以 docstring 的形式提供。\n p[0] = p[1] # 这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。\n # 语法分析器直接产生的实际上是一棵语法分析树,而构建 AST 这一数据结构则通过相应语法制导的语义计算过程来完成。\n\ndef p_unary_expression(p):\n \"\"\"\n unary : Minus unary\n \"\"\"\n p[0] = tree.Unary(UnaryOp.Neg, p[2])\n这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unary : Minus unary,其中p[0]代表的就是第一个unary, p[1]则是Minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的-通过backward_search对应到我们在代码中enum的UnaryOp.Neg(frontend/ast/node.py:40)。\n现在尝试运行 python main.py --input example.c --parse 看看效果吧。(记得修改example.c)\n怎么从 AST 变为 TAC 的?\n什么是 TAC ,如果你没读前面的章节,你可以快速看看这一部分。\n这一步就是 TACGen.transform 函数(frontend/tacgen/tacgen.py)做的事了, TACGen.transform 接受一个AST树输入,输出一个TAC表示,请确保你已经对Visitor 模式有所了解,或者假设你已经知道在遍历 AST 时 accept 函数会对不同类型的 AST Node 调用不同的visit 函数。例如,visit (children[0]) Return 时,遇到的子节点是 (expr) Unary,那么 accept 最终会调用visitUnary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。\n下面的描述中一定要记得区分accept和直接对于mv.visitXXX的调用,前者是在遍历AST时调用的,后者是在 TACFuncEmitter 类中调用的。并且希望大家一定要对着代码看。\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) Return\n |- (expr) Unary\n |- (op) Minus\n |- (expr) IntLiteral(1)\n继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序,我们将TACGen.transform代码贴了一些在这里:\ndef transform(self, program: Program) -> TACProg:\n labelManager = LabelManager()\n tacFuncs = []\n for funcName, astFunc in program.functions().items():\n # in step9, you need to use real parameter count\n emitter = TACFuncEmitter(FuncLabel(funcName), 0, labelManager)\n astFunc.body.accept(self, emitter)\n tacFuncs.append(emitter.visitEnd())\n return TACProg(tacFuncs)\n\n现在我们开始正式遍历 AST 树,transform 会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入 visitBlock 函数,visitBlock 函数对于在block中的所有子节点调用了child.accept(self, mv),在这个例子中则会调用Return 语句对应的visitor,进入visitReturn。继续向下,visitReturn 又对于 return AST Node 中的 expr 调用了 stmt.expr.accept(self, mv) ,又进入了visitUnary,同理,expr.operand.accept(self, mv)会进入visitIntLiteral。\n到了此处出现了不同,我们发现visitIntLiteral中第一次调用了mv的成员函数 mv.visitLoad(expr.value) 这里进入了TACFuncEmitter.visitLoad:\ndef visitLoad(self, value: Union[int, str]) -> Temp:\n temp = self.freshTemp()\n self.func.add(LoadImm4(temp, value))\n return temp\n\nself.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将 1 load 到一个虚拟寄存器 temp 中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。\n到此为止我们得到的TAC代码如下:\nFUNCTION:\n_T0 = 1\n_T1 = - _T0\nreturn _T1\n\n现在尝试运行 python main.py --input example.c --tac 看看效果吧。\n怎么从TAC到汇编代码\n这一步是 Asm.transform 函数(backend/asm.py)处理的,Asm.transform 接受一个 TAC 输入,输出汇编代码。\ndef transform(self, prog: TACProg):\n analyzer = LivenessAnalyzer()\n reg_alloc = BruteRegAlloc(emitter)\n\n for func in prog.funcs:\n emitter = RiscvAsmEmitter(Riscv.AllocatableRegs, Riscv.CallerSaved)\n pair = emitter.selectInstr(func)\n builder = CFGBuilder()\n cfg: CFG = builder.buildFrom(pair[0])\n analyzer.accept(cfg)\n reg_alloc.accept(cfg, pair[1])\n\n return emitter.emitEnd()\n\n我们先忽略LivenessAnalyzer和Control Flow Graph(CFG)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectInstr),指令选择将中端TAC代码转换为riscv汇编代码,selectInstr函数中,我们也采用了visitor模式遍历指令序列, _T0 = 1 这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li _T0, 1),主要讲讲和_T1 = - _T0 和 return _T1翻译过程发生了什么。\n先看visitUnary函数:\ndef visitUnary(self, instr: Unary) -> None:\n op = {\n TacUnaryOp.NEG: RvUnaryOp.NEG,\n # You can add binary operations here.\n }[instr.op]\n self.seq.append(Riscv.Unary(op, instr.dst, instr.operand))\n\n这里将中端的TacUnaryOp.NEG翻译为了后端的RvUnaryOp.NEG,在后端输出汇编时,我们直接将RvUnaryOp.NEG转换为小写字符串取了11位以后的字符,直接输出为neg(参考Unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在RvUnaryOp中增加对应的同名的enum字段。\n你可以试试,将RvUnaryOp.NEG中名字改为RvUnaryOp.XXX看看输出的汇编代码会发生什么变化吧。\n再看visitReturn函数,我们这里的return是一个带返回值函数的return\ndef visitReturn(self, instr: Return) -> None:\n if instr.value is not None:\n self.seq.append(Riscv.Move(Riscv.A0, instr.value))\n else:\n self.seq.append(Riscv.LoadImm(Riscv.A0, 0))\n self.seq.append(Riscv.JumpToEpilogue(self.entry))\n\n这里会进入第一个分支,由于 Risc-V 的调用约定将A0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条Move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。\n你可能会觉得,这一步不就是将 TAC 一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如T2 = T1 || T0,这里的逻辑或需要将T1、T0进行或操作后,再判断其值是否为1。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。\n物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。\n现在尝试运行 python main.py --input example.c --riscv 看看效果吧。\n思考题\n\n我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个 minidecaf 表达式,只使用-~!这三个单目运算符和从 0 到 2147483647 范围内的非负整数,使得运算过程中发生越界。\n\n\n提示:发生越界的一步计算是-。\n\n总结\n本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。\n"},"docs/step2/spec.html":{"url":"docs/step2/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep2 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : unary\n\nunary\n : Integer\n | ('-'|'!'|'~') unary\n\n\nstep2 语义规范\n2.1 运算符 - 的结果是其操作数的相反数。\n2.2 运算符 ~ 的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是 1 当且仅当其对应的二进制位是 0)。\n2.3 当操作数不等于 0 时,逻辑非运算符 ! 的结果为 0;当操作数等于 0 时,其结果为 1。\n2.4 MiniDecaf 中,负数字面量不被整体作为一个 token。它被看成是一个取负符号、后面是它的绝对值。\n 所以我们无法用字面量表示 -2147483648,但可以写成 -2147483647-1(待我们加上四则运算后)。\n2.5 整数运算越界是未定义行为(undefined behavior),即对程序的行为无任何限制。\n\n例如 -(-2147483647-1) 是未定义行为。这一条规则对于后续 step 引入的运算符也都适用。\n对于含有未定义行为的 C/C++ 程序,在启用优化选项编译时,编译器可能产生意料之外的结果。\n\n"},"docs/step3/intro.html":{"url":"docs/step3/intro.html","title":"实验要求","keywords":"","body":"实验指导 step3:加减乘除模\nstep3 我们要增加的是:加 +、减 -、乘 *、整除 /、模 % 以及括号 ( )。\n语法上我们继续修改 expression,变成\n\nexpression\n : additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n\n\n新特性的语义、优先级、结合性和 C 以及常识相同,例如 1+2*(4/2+1) == 7。\n我们这种表达式语法写法可能比较繁琐,但它有几个好处:\n\n和 C17 标准草案保持一致\n把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。\n\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 3 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n如何检查我是否通过自动测试(CI)\n在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。\n如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。\n"},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导\n本实验指导使用的例子为:\n1+3\n\n词法语法分析\n在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点:\n\n\n\n节点\n成员\n含义\n\n\n\n\nBinary\n左操作数 lhs,右操作数 rhs,运算类型 op\n二元运算\n\n\n\n\n对有兴趣的同学:虽然 -2 和 2-3 里面的 - 意义不同,但 lexer 不知道这点(parser 才知道),所以它们都会用同样的 token kind - 表示。\n但有时,可能需要后续阶段告诉 lexer(或 parser)一些信息,最经典的例子是 “typedef-name identifier problem”。\n\n语义分析\n同 Step2。\n中间代码生成\n与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n作用\n\n\n\n\nADD\nT0,T1\n将两个参数相加\n\n\n\n因此,测例可以翻译成如下的中间代码:\n_T0 = 1\n_T1 = 3\n_T2 = ADD _T0, _T1\n\n目标代码生成\nstep3 目标代码生成步骤的关键点与 step2 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。\nli t0, 1\nli t1, 3\nadd t2, t0, t1\n\n思考题\n\n我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是 0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如 x86-64 或 ARM)中和 RISCV-32 的 qemu 模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)\n\n#include \n\nint main() {\n int a = 左操作数;\n int b = 右操作数;\n printf(\"%d\\n\", a / b);\n return 0;\n}\n\n总结\n本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。\n"},"docs/step3/precedence.html":{"url":"docs/step3/precedence.html","title":"优先级和结合性","keywords":"","body":"优先级和结合性\n操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:\n\n优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1 + 2 * 3应该解析成语法树add (1 mul (2 3))(前序表示),不能解析成mul (add (1 2) 3)\n结合性是一个操作符的性质,例如-是左结合的,所以表达式1 - 2 - 3应该解析成sub (sub (1 2) 3),不能解析成sub (1 sub (2 3))\n\n我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。\n但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习C或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:\n\nexpression\n : expression ('+'|'-') expression\n | expression ('*'|'/'|'%') expression\n | ('-'|'~'|'!') expression\n | Integer\n | '(' expression ')'\n\n\n当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。\n之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:\n\n把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。\n指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了C语言操作符的优先级和结合性,因为我们的MiniDecaf语言是C语言的一个子集,所以这张表格也足够我们的语言使用了。\n\n"},"docs/step3/spec.html":{"url":"docs/step3/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep3 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n\n\nstep3 语义规范\n3.1 二元操作符 * 的结果是操作数的乘积。\n3.2 二元操作符 / 的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符 % 的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为 0,则其行为都是未定义的。当 b 不为 0 时,表达式 (a/b)*b + a%b 应该等于 a。\n3.3 二元操作符 + 的结果是操作数的和。\n3.4 二元操作符 - 的结果是第一个操作数减去第二个操作数所得的差。\n3.5 除非特别声明,子表达式求值顺序是未规定行为(unspecified behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。\n 例如:执行 int a=0; (a=1)+(a=a+1); 之后 a 的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。\n"},"docs/step4/intro.html":{"url":"docs/step4/intro.html","title":"实验要求","keywords":"","body":"实验指导 step4:比较和逻辑表达式\nstep4 我们要增加的是:\n\n比较大小和相等的二元操作:、、>=, >, ==, !=\n \n equality\n : relational\n | equality ('=='|'!=') relational\n\n relational\n : additive\n | relational ('|'>'|'|'>=') additive\n\n逻辑与 &&、逻辑或 ||\n \n expression\n : logical_or\n\n logical_or\n : logical_and\n | logical_or '||' logical_and\n\n logical_and\n : equality\n | logical_and '&&' equality\n\n\n\n新特性的语义、优先级、结合性和 C 以及常识相同,例如 1=2 是逻辑真(int 为 1)。\n但特别注意,C 中逻辑运算符 || 和 && 有短路现象,我们不要求。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 4 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n如何检查我是否通过自动测试(CI)\n在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。\n如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。\n"},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导\n本实验指导使用的例子为:\n1\n词法语法分析\n本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。\n语义分析\n同 Step2。\n中间代码生成\n针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nLT\nT0,T1\n给出 T0结果,成立为1,失败为0\n\n\n\n\n需要特别注意的是,在 C 语言中,逻辑运算符 || 和 && 有短路现象,我们的实现中不要求大家考虑它们的短路性质。\n\n因此,测例可以翻译成如下的中间代码:\n_T0 = 1\n_T1 = 2\n_T2 = LT _T0, _T1\n\n目标代码生成\nstep4 目标代码生成步骤的关键点与 step3 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。\nli t0, 1\nli t1, 2\nslt t2, t0, t1\n\n逻辑表达式会麻烦一点,因为 gcc 可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出 land 和 lor 对应的不使用跳转的汇编。\n\n\n\nIR\n汇编\n\n\n\n\nlor\nor t3,t1,t2 ; snez t3,t3\n\n\nland\nsnez d, s1; sub d, zero, d; and d, d, s2; snez d, d;\n\n\n\n\n注意 RISC-V 汇编中的 and 和 or 指令都是位运算指令,不是逻辑运算指令。\n\n思考题\n\n在 MiniDecaf 中,我们对于短路求值未做要求,但在包括 C 语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?\n\n总结\n本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。\n恭喜你!到目前为止,你已经成功实现了一个基于 MiniDecaf 语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个 Stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️\n"},"docs/step4/spec.html":{"url":"docs/step4/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep4 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : logical_or\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n\n\n\nstep4 语义规范\n4.1 关系操作符 (小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。\n\n关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如 0 的含义与 (0 相同,即“如果 0 小于 1,那么判断是否有 1 小于 2,否则判断是否有 0 小于 2”。\n\n4.2 判等操作符 ==(等于)和 !=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为 1。\n\n其优先级的设定会导致其含义在某些时候可能会反直观,例如,0 的运算结果为 1。\n\n4.3 当操作数都非 0 时,逻辑与操作符 && 的结果为 1;否则其结果为 0。\n4.4 当操作数有一个非 0 时,逻辑或操作符 || 的结果为 1;否则其结果为 0。\n4.5 逻辑操作符 || 和 && 依然遵循语义规范 3.5,即其操作数的求值顺序是未指定行为。\n 换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。\n"},"docs/step5/intro.html":{"url":"docs/step5/intro.html","title":"实验要求","keywords":"","body":"实验指导 step5:局部变量和赋值\n这一步我们终于要增加变量了,包括:\n\n变量的声明\n变量的使用(读取/赋值)\n\n此外,我们的 main 函数内部可以包含多条语句和声明了。\n为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入 栈帧 的概念,并介绍它的布局。\n语法上,step5 的改动如下:\n\n\nfunction\n : type Identifier '(' ')' '{' statement* '}'\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | declaration\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : logical_or\n | Identifier '=' expression\n\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。\n请将你的作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 2 的实验报告需要放在 stage-2 这个 branch 下的 ./reports/stage-2.pdf。注意报告的标题是 stage-2 而不是 step-5。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step5/example.html":{"url":"docs/step5/example.html","title":"通过例子学习","keywords":"","body":"step5 实验指导\n本实验指导使用的例子为:\nint main() {\n int x = 2024;\n return x;\n}\n\n词法语法分析\n针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供):\n\n\n\n节点\n成员\n含义\n\n\n\n\nTInt\n无\n整型\n\n\nIdentifier\n名称 value\n标识符(用于表示变量名)\n\n\nAssignment\n同 Binary\n赋值运算\n\n\nDeclaration\n类型 var_t,标识符 ident,初始表达式 init_expr\n变量声明\n\n\n\n请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。\n语义分析\n从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。\n在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。\n类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:\nint main() {\n int x = 2024;\n return x + y;\n}\n\n那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2024; 这条语句后已经为其定义),而 y 无法找到,因此编译器需要在扫描到 y 对应的结点时报错。\n符号表总是和作用域相关的。例如,在 C 语言中,我们可以在全局作用域中定义名为 \"a\" 的全局变量,同时在 main 函数中定义名为 \"a\" 的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑 main 函数作用域对应的单张符号表即可。\n此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在 step11 中,我们会将左值的范围进一步包括数组元素。\n对应到框架代码上:\nfrontend/symbol 目录下为符号的实现。其中 symbol.py 为符号类的基类,varsymbol.py 为变量符号。在本节中,同学们只需要考虑变量符号即可。\nfrontend/scope 目录下为符号表的实现。其中 scope.py 为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个 Scope 对象,用以维护 main 函数中所有出现过的变量符号即可。\n中间代码生成\n我们首先来看本节指导用例所对应的中间代码:\nmain:\n _T1 = 2024\n _T0 = _T1\n return _T0\n\n针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nASSIGN\nT0,T1\n临时变量的赋值\n\n\n\n从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于 MiniDecaf 语言中的基本类型只有 int 型,而 TAC 里的临时变量也是 32 位整数,因此,我们可以把 MiniDecaf 局部变量和 TAC 临时变量对应起来。\n在扫描到 int x = 2024; 这条语句时,中间代码先把立即数 2024 加载到临时变量 _T1 中,然后再把 _T1 的值赋给临时变量 _T0,此时 _T0 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T0。例如,测例中直接用返回 _T0 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T0 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。\n请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。\n目标代码生成\n本节指导用例对应如下 RISC-V 汇编代码:\n .text\n .global main\nmain:\n li t1, 2024\n mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令\n mv a0, t0\n ret\n\n简单的启发式寄存器分配算法\n在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。\n实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 Step6 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。\n基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条 TAC 指令(例如 _T2 = ADD _T1, _T0),对于每个源操作数对应的临时变量(本例中 _T1 和 _T0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的 _T2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。\n在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。\n在实验框架中已经给出寄存器分配算法的代码,集中在 backend/reg/bruteregalloc.py 中,主要有以下几个函数:\n\naccept:根据每个函数的 DFG(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。\nbind:将一个 Temp(临时变量)与寄存器绑定。\nunbind:将一个 Temp(临时变量)与相应寄存器解绑定。\nlocalAlloc:根据活跃变量信息对一个 BasicBlock(基本块)内的指令进行寄存器分配。\nallocForLoc:每一条指令进行寄存器分配。\nallocRegFor:根据活跃变量信息决定为当前 Temp(临时变量)分配哪一个寄存器。\n\n栈帧\n上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。\n\n栈帧的概念\n在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在 Step11 中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。\n\n需要注意的是,由于我们目前只支持一个 main 函数,直到 Step9 才会有多函数支持。所以现在关于栈帧的讨论,就只针对 main 函数的栈帧,并且集中于临时变量的存储和加载。\n\n假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp 指向当前栈帧的栈底,sp 指向当前栈帧的栈顶,fp 和 sp 之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在 Step6 介绍,在当前的步骤不需要考虑)。\n\n\n栈帧的建立与销毁\n栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的 prologue。prologue 所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的 epilogue。epilogue 所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回\n貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp 和 fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。\n\n一个例子\n #include \n\n int calculate() {\n int a = 1;\n int b = 2;\n int c = 3;\n int d = 4;\n int e = 5;\n int result = a + b + c + d + e;\n return result;\n }\n\n int main() {\n int result = calculate();\n printf(\"%d\\n\", result);\n return 0;\n }\n\n 在这个示例中,我们在 calculate 函数内部声明了 5 个局部整数变量(a 到 e)。假设我们的处理器只有 4 个通用寄存器,在这种情况下,我们无法将 5 个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:\n\nmain 函数调用 calculate 函数,将返回地址压入栈中。\ncalculate 函数执行 prologue,将 fp 的值保存到栈中,然后将 sp 的值赋给 fp,此时 fp 和 sp 的值相同,都指向栈顶。\ncalculate 函数分配栈帧空间,在这个例子中,假设 a 到 d 保存在寄存器中,e 保存在栈帧中,因此需要分配 4 字节的栈帧空间。sp 指向栈顶,因此 sp 的值减去 4,即可得到 e 的地址。\n计算完成后,calculate 函数执行 epilogue,将 fp 的值赋给 sp,并恢复 fp 的值,然后将返回地址弹出栈中,跳转到返回地址。\n\n\n\n思考题\n请将你的整个stage-2作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。\n\n我们假定当前栈帧的栈顶地址存储在 sp 寄存器中,请写出一段 risc-v 汇编代码,将栈帧空间扩大 16 字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc-v 汇编中 addi reg0, reg1, 表示将 reg1 的值加上立即数存储到 reg0 中。)\n有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的 Rust 代码(你不需要精确了解它的含义,大致理解即可):\n\nfn main() {\n let a = 0;\n let a = f(a);\n let a = g(a);\n}\n\n其中f(a)中的a是上一行的let a = 0;定义的,g(a)中的a是上一行的let a = f(a);。\n如果 MiniDecaf 也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)\n总结\nStep5 主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。\n"},"docs/step5/spec.html":{"url":"docs/step5/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep5 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement* '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | declaration\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : logical_or\n | Identifier '=' expression\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep5 语义规范\n5.1 每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。\n5.2 变量的初始化表达式指定了变量的初始值。\n5.3 同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。\n5.4 对未声明的变量的使用是错误。\n5.5 没有被初始化的(局部)变量的值是不确定的。\n\n在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。\n例如,int a = a + 1;,这样一条声明在语义上等价于 int a; a = a + 1;\n\n5.6 局部变量的名字可以为 main。\n5.7 赋值运算 = 的左操作数必须是一个可修改的左值(modifiable lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在 int a; a = 1; 中,a 即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。\n\n就 step5 来说,这一点其实几乎已经被语法保证,因为其 = 的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。\n\n5.8 在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。\n5.9 赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。\n5.10 一个函数中可以有任意多条 return 语句。\n5.11 当 main 函数执行至 } 时,应终止执行并返回 0。\n"},"docs/step6/intro.html":{"url":"docs/step6/intro.html","title":"实验要求","keywords":"","body":"实验指导 step6:作用域和块语句\nstep6 我们要增加块语句的支持。\n虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。\n随之而来一个问题是:不同变量可以重名了。\n重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。\n因此,变量名不能唯一标识变量了,同一个变量名 a 出现在代码不同地方可能标识完全不同的变量。\n我们需要在符号表构建的过程中,确定 AST 中出现的每个变量名分别对应那个变量。\n语法上改动不大\n\nfunction\n : type Identifier '(' ')' compound_statement\n\ncompound_statement\n : '{' block_item* '}'\n\nstatement\n : 'return' expression ';'\n | compound_statement\nblock_item\n : statement\n | declaration\n\n\n语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。\n当然,如果变量在使用前还是必须先被声明。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 3 的实验报告需要放在 stage-3 这个 branch 下的 ./reports/stage-3.pdf。注意报告的标题是 stage-3 而不是 step-6。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step6/example.html":{"url":"docs/step6/example.html","title":"通过例子学习","keywords":"","body":"step6 实验指导\n本实验指导使用的例子为:\nint main() {\n int x = 1;\n {\n x = 2; \n int x = 3;\n }\n x = 4;\n return x;\n}\n\n词法语法分析\n针对块语句,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nBlock\n子语句列表 children\n语句块\n\n\n\n语义分析\n从 Step6 开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管 main 函数里定义了变量 x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句 x = 2; 中的 x 就是指 main 作用域中定义的 x,而随后通过 int x = 3; 我们定义了另一个变量 x,这个 x 只在内部大括号括起的作用域内生效。\n在 Step5 中,我们只维护了 main 的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(Scope Stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。\n接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有 main 函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入 main 函数时,开启一个局部作用域,在扫描 int x = 1; 时定义变量符号 x,并将其加入栈顶作用域对应的符号表中。如下所示:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域(栈顶)\n变量 x\n\n\n\n接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描 x = 2; 时,我们需要分析 x 这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域\n变量 x\n\n\n局部作用域(栈顶)\n空\n\n\n\n对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量 x 为止。由于在栈顶作用域对应的符号表中不存在变量符号 x,于是向下继续查找。在 main 函数对应的作用域中,可以找到变量符号 x。因此,语句 x = 2; 中的 x 对应 main 函数作用域里定义的变量 x。\n接下来,当扫描到语句 int x = 3; 时,定义了另一个变量 x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域\n变量 x\n\n\n局部作用域(栈顶)\n变量 x\n\n\n\n请务必注意上表中的两个变量 x 是不同的变量。\n接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域(栈顶)\n变量 x\n\n\n\n最后,扫描语句 x = 4; 时,从栈顶作用域符号表查找 x,所找到的变量 x 为 main 作用域定义的 x 变量。\n中间代码生成\n本步骤中无须新增新的 TAC 指令。\n让我们来看看示例所对应的 TAC 代码:\nmain:\n _T1 = 1\n _T0 = _T1 # int x = 1;\n _T2 = 2\n _T0 = _T2 # x = 2\n _T4 = 3\n _T3 = _T4 # int x = 3;\n _T5 = 4\n _T0 = _T5 # x = 4;\n return _T0\n\n显然,两个代码块里的变量 x 是不同的变量,因此它们分别对应着不同的临时变量。其中,_T0 对应着 main 作用域里的 x,而 _T3 则对应着内层代码块定义的变量 x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。\n目标代码生成\n不需要新增新的中间代码指令。\n代码框架需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。\n实现提示\n\n在 step5 中,namer/typer 遍历时的上下文信息(参数 ctx)是单一的作用域。到了 step 6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义 class Namer(Visitor[Scope, None]) 应改为 class Namer(Visitor[YourType, None]),其中 YourType 是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在 frontend/scope/ 下。class Typer 也需要如上改动。\n\n之前 step5 的全局唯一的作用域可以被当作“函数作用域使用”,在 visitFunction 入栈。然后在新的 visitBlock 中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。\n\n当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用 Scope.lookup 实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑 Typer / Namer 中的每一个 Scope.lookup ,看她们是否需要换成新函数。\n\n后续 stage-4 时,你需要一个机制来检查 break/continue 语句是否在一个循环内。这可以通过修改 namer/typer 中的对应结点来实现。另外,别忘了循环本身也是一个作用域!\n\n后续如果你选做“全局变量”部分,可以在 Namer 和 Typer 的 transform 方法中先将全局作用域加入栈底,再往上才是 visitFunction 的函数作用域。\n\n\n思考题\n\n请画出下面 MiniDecaf 代码的控制流图。int main(){\n int a = 2;\n if (a \n\n\n"},"docs/step6/dataflow.html":{"url":"docs/step6/dataflow.html","title":"数据流分析","keywords":"","body":"数据流分析\n编译优化的基础是数据流分析。\n基本块(basic block)和控制流图(control-flow graph)是用于进行上述分析的数据结构。\n以下讲述数据流分析的内容中,所有的 CondBranch 指令为条件跳转指令,Branch 指令为跳转指令。\n基本块\n基本块是指一段这样的代码序列:\n\n除出口语句外基本块中不含任何的 Branch、Beqz(条件为假时跳转)、Bnez(条件为真时跳转)或者 Return 等跳转语句(但可以包含 Call 语句)。\n\n除入口语句外基本块中不含任何的 Label 标记,即不能跳转到基本块中间。\n\n在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。\n\n\n下面的例子中,代码中不同的基本块被标以不同的颜色:\n\n也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。\n控制流图\n控制流图是一个有向图:它以基本块作为结点,如果一个基本块 A 执行完之后,有可能跳转到另一个基本块 B,则图中包含从 A 对应结点到 B 对应结点的有向边。对于以 Branch 语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以 CondBranch 语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。\n为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:\n\n划分基本块。\n\n建立基本块之间的连接关系。\n\n\n基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:\n\n当遇到一个 Label 标记而且存在跳转语句跳转到这个行号时。\n\n当遇到 Branch、CondBranch 或者 Return 等跳转语句时。\n\n\n整个操作序列扫描完毕后,我们就成功建立了所有基本块。\n在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:\n\n如果当前基本块以 Branch 结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。\n\n如果当前基本块以 CondBranch 结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共 2 条边)。\n\n如果当前基本块以 Return 结尾,则不需要加入新的边。\n\n\n在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。\n上面例子对应的控制流图如下:\n\n活跃变量和活跃变量方程\n从编译器中端出来的中间代码中,我们对 TAC 中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。\n因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。\n根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要 spill 到栈上)。\n由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(liveness analysis),或者称为“活跃变量分析”。\n一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。\n下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:\n\n\n\nTAC 代码\n活跃变量集合\n\n\n\n\n_T0 = 4\n{_T0}\n\n\n_T1 = 3\n{_T0, _T1}\n\n\n_T2 = _T0 * _T1\n{_T0}\n\n\n_T3 = _T0 * _T0\n{_T0, _T3}\n\n\n_T2 = _T3 * _T3\n{_T0, _T2, _T3}\n\n\n_T2 = _T0 * _T2\n{_T2, _T3}\n\n\n_T1 = _T2 * _T3\n{_T1}\n\n\nreturn _T1\n空集\n\n\n\n一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念, 我们需要先引入下面四种针对基本块的集合:\n\nDef 集合:一个基本块的 Def 集合是在这个基本块内被定值的所有变量。所谓的定值 (definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:Store 语句不给任何变量定值,Load 语句则会给对应变量定值)。\n\nLiveUse 集合:一个基本块的 LiveUse 集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。\n\nLiveIn 集合:在进入基本块入口之前必须是活跃的那些变量。 \n\nLiveOut 集合:在离开基本块出口的时候是活跃的那些变量。\n\n\n其中 Def 和 LiveUse 是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。\n有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:\n\n该方程说的是一个基本块的 LiveOut 集合是其所有后继基本块的 LiveIn 集合的并集,而且 LiveIn 集合是 LiveUse 集合的变量加上 LiveOut 集合中去掉 Def 集合以后的部分。\n这个方程的直观意义是:\n\n一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。\n\n在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本 块之前就要具有的了)。\n\n\n根据这个方程,我们可以通过迭代更新的办法求出每个基本块的 LiveIn、LiveOut 集合,以下是求解的伪代码:\nfor i 获得了每个基本块的 LiveIn 和 LiveOut 集合以后,我们需要进一步地计算基本块内每个 TAC 语句的 LiveIn 和 LiveOut 集合。如果我们把基本块内所有 TAC 语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的 “控制流图” 有以下三种特点:\n\n每个节点的出度都是 1,也就是说 LiveOut(B) = LiveIn(Succ(B))。\n\n由于每个结点只含有一个语句,因此其 Def 集要么是空集,要么只含有一个元素。\n\n由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其 LiveUse 集合就是源操作数对应的所有变量。 \n\n\n基于上面三个特点,已经求出基本块的 LiveOut 集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出 LiveIn、LiveOut。\n"},"docs/step6/spec.html":{"url":"docs/step6/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep6 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' compound_statement\n\ntype\n : 'int'\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\n\nstatement\n : 'return' expression ';'\n | compound_statement\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\nstep6 语义规范\n6.1 根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。\n6.2 (更新 5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。\n\n在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a + 1 的值是不确定的。\nint a = 1;\n{\n int a = a + 1;\n}\n\n6.3 (更新 5.3)对于同一个标识符,在同一个作用域中至多有一个声明。\n6.4 (更新 5.4)使用不在当前开作用域中的变量名是不合法的。\n"},"docs/step7/intro.html":{"url":"docs/step7/intro.html","title":"实验要求","keywords":"","body":"实验指导 step7:\nstep7 我们要支持条件语句,包括 if 语句和条件表达式(又称三元/三目表达式,ternary expression)。\n语法上的改动是:\n\nif 表达式\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n\n\n条件表达式\n\nassignment\n : conditional\n | Identifier '=' expression\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\n\n\n\nif 语句的语义和 C 语言相同,注意条件表达式优先级只比赋值高。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 7 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step7/example.html":{"url":"docs/step7/example.html","title":"通过例子学习","keywords":"","body":"step7 实验指导\n本实验指导使用的例子为:\nint main() {\n int x = 1;\n if (x) x = 2; else x = 3;\n return x;\n}\n\n词法语法分析\n针对 if 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供):\n\n\n\n节点\n成员\n含义\n\n\n\n\nIf\n分支条件 cond,真分支 then,假分支 otherwise\nif 分支语句\n\n\n\n仿照 if 节点,还需要类似地实现条件表达式节点。\n悬吊 else 问题\n这一节引入的 if 语句既可以带 else 子句也可以不带,但这会导致语法二义性:else 到底和哪一个 if 结合?\n例如 if(a) if(b) c=0; else d=0;,到底是 if(a) {if(b) c=0; else d=0;} 还是 if(a) {if(b) c=0;} else d=0;?\n这个问题被称为 悬吊 else(dangling else) 问题。\n如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。\n我们人为规定:else 和最近的 if 结合,也就是说上面两种理解中只有前者合法。\n为了让 parser 能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有 else 的 if。\n按照这个规定,parser 看到 if(a) if(b) c=0; else d=0; 中第一个 if 时,选择没有 else 的 if;\n而看到第二个时只能选择有 else 的 if ,也就使得 else d=0; 被绑定到 if(b) 而不是 if(a) 了。\n\n需要说明的是 bison 默认在 shift-reduce conflict 的时候选择shift,从而对悬挂else进行就近匹配。\n\n语义分析\n本步骤中语义分析没有特别需要增加的内容,只需要在扫描到 if 语句和条件表达式时递归地访问其子结点即可。请注意 if 语句不总是有 else 分支,所以在递归到子结点时,请先判断子结点是否存在。\n中间代码生成\n从本步骤开始,由于 MiniDecaf 程序出现了分支结构,我们需要开始考虑跳转语句了。在 Step1-4 中,TAC 代码中的标签只有标志 main 函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用 _Lk 来表示跳转用标签,以此和函数入口标签区分开来。\n为了实现 if 语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n作用\n\n\n\n\nBEQZ\nT0, Label\n若 T0 的值为0,则跳转到 LABEL 标签处\n\n\nJUMP\nLabel\n跳转到 LABEL 标签处\n\n\n\n现在让我们来看看示例所对应的 TAC 代码:\nmain:\n _T1 = 1\n _T0 = _T1\n BEQZ _T0, _L1\n _T2 = 2\n _T0 = _T2\n JUMP _L2\n_L1:\n _T3 = 3\n _T0 = _T3\n_L2:\n return _T0\n\n在这段 TAC 代码中,x 对应的临时变量为 _T0。如果 x 的值为真(不等于0),那么应当执行 then 分支 x = 2;,否则执行 else 分支 x = 3;。因此,我们设置了两个跳转标签 _L1 和 _L2,分别表示 else 分支开始位置和整个 if 语句的结束位置。如果 x 为假,那么应当跳转到 _L1 处,我们使用一条 BEQ 指令来执行。如果 x 为真,那么按顺序执行 then 分支的代码,并在该分支结束时,用一条 JMP 指令跳转到 if 语句的结束位置,从而跳过 else 分支。在 TAC 生成过程中,每当扫描到 if 语句时,都需要调用 TAC 的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。\n当然,如果一条 if 语句没有 else 分支,那么只需要一个跳转标签即可。例如我们将例子中的 if 语句修改为 if (x) x = 2;,则对应的 TAC 代码可简化为:\nmain:\n _T1 = 1\n _T0 = _T1\n BEQ _T0, _L1\n _T2 = 2\n _T0 = _T2\n_L1:\n return _T0\n\n同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。\n目标代码生成\nStep7 中目标代码生成主要是指令的选择以及 label 的声明,RISC-V 提供了与中间代码中 BEQZ 和 JUMP 类似的指令:\nstep7: # RISC-V 汇编标签\n beqz t1, step7 # 如果 t1 为 0,跳转到 step7 标签处\n j step7 # 无条件跳转到 step6 标签处\n\n思考题\n\n我们的实验框架里是如何处理悬吊 else 问题的?请简要描述。\n\n在实验要求的语义规范中,条件表达式存在短路现象。即:\n\n\nint main() {\n int a = 0;\n int b = 1 ? 1 : (a = 2);\n return a;\n}\n\n会返回 0 而不是 2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。\n总结\n本节主要就是引入了跳转,后面 Step8 循环语句还会使用。\n"},"docs/step7/spec.html":{"url":"docs/step7/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep7 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' block_item* '}'\n\ntype\n : 'int'\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | compound_statement\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\n注意:if 的 then 分支和 else 分支需要是一个语句(statement)而非声明(declaration)。\n例如 if (1) int a; 不是合法的 MiniDecaf 程序。\n\nstep7 语义规范\n7.1 条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于 0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于 0,我们会对第三个操作数求值。当第一个操作数的值为 0 时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非 0 时,条件表达式的求值结果为第三个操作数所求得的值。\n\n不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。\n\n7.2 对于 if 语句而言,当控制条件不等于 0 时,会执行第一个子句;当控制条件等于 0 时,如果有 else 分支,就会执行第二个语句,否则整个 if 语句的执行便已经完成。\n7.3 如果出现悬吊 else(dangling else),要求 else 优先和最接近的没有匹配 else 的 if 匹配。\n\n例如 if (0) if (0) ; else ; 等价于 if (0) { if (0) ; else; } 而非 if (0) { if (0) ; } else ;。\n\n"},"docs/step8/intro.html":{"url":"docs/step8/intro.html","title":"实验要求","keywords":"","body":"实验指导 step8:循环语句\nstep8 我们要增加对循环语句,以及 break/continue 的支持:\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\n\n\n循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 8 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step8/example.html":{"url":"docs/step8/example.html","title":"通过例子学习","keywords":"","body":"step8 实验指导\n本实验指导使用的例子为:\nfor (int i = 0; i \n词法语法分析\n针对循环语句和 break/continue 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nWhile\n循环条件 cond,循环体 body\nwhile 循环语句\n\n\nFor\n初始语句 init,循环条件 cond,更新语句 update,循环体 body\nfor 循环语句\n\n\nBreak\n无\nbreak 语句\n\n\nContinue\n无\ncontinue 语句\n\n\n\n其中,while 和 break 语句的实现已经在框架中给出,同学们可以参考并实现 for 和 continue 语句。\n语义分析\n本步骤语义分析阶段的处理方式和 Step7 中的 if 语句相类似,但是请额外注意以下两点:\n\nfor 循环要自带一个作用域。在示例里,for (int i = 0; i 语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for (int i = 0; i 这也是合法的 MiniDecaf 程序。因此,在符号表构建阶段,扫描到 for 结点时,不要忘记开启一个局部作用域。\n\nbreak 和 continue 语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到 break 和 continue 结点时,若当前不处于任何循环内,则报错。\n\n\n中间代码生成\n本步骤中没有需要新增的 TAC 指令。不过为了实现循环语句,需要仔细地考虑如何将 MiniDecaf 循环语句翻译成 TAC 的分支跳转指令。由于 while 循环可以看作 for 循环的特例,我们选择了 for 循环作为示例。\n让我们先来看看示例对应的 TAC 代码:\n _T1 = 0\n _T0 = _T1 # int i = 0;\n_L1: # begin label\n _T2 = 5\n _T3 = LT _T0, _T2\n BEQZ _T3, _L3 # i \n为了实现所有可能的跳转,对每个 for 循环我们都需要定义三个跳转标签:begin, loop 和 break。它们的作用如下:\n\nbegin 标签(示例中的 _L1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到 break 标签(示例中的 _L3)处。\n\nloop 标签(示例中的 _L2)是执行 continue 语句时应当跳转到的位置。\n\nbreak 标签是整个循环结束后的位置。如果循环条件不满足,或者执行了 break 语句,那么应当跳转到此处,执行循环之后的指令。\n\n\n请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。\n由于循环语句可以嵌套,所以 TAC 语句生成过程中需要动态维护 loop 标签和 break 标签,这样才能确定每一条 break 和 continue 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。\nutils/tacgen/tacgen.py 里的 TACFuncEmitter 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 break/continue 标签的维护。\n目标代码生成\n由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。\n思考题\n\n将循环语句翻译成 IR 有许多可行的翻译方法,例如 while 循环可以有以下两种翻译方式:\n 第一种(即实验指导中的翻译方式):\n\nlabel BEGINLOOP_LABEL:开始下一轮迭代\ncond 的 IR\nbeqz BREAK_LABEL:条件不满足就终止循环\nbody 的 IR\nlabel CONTINUE_LABEL:continue 跳到这\nbr BEGINLOOP_LABEL:本轮迭代完成\nlabel BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿\n第二种:\n\ncond 的 IR\n\nbeqz BREAK_LABEL:条件不满足就终止循环\nlabel BEGINLOOP_LABEL:开始下一轮迭代\nbody 的 IR\nlabel CONTINUE_LABEL:continue 跳到这\ncond 的 IR\nbnez BEGINLOOP_LABEL:本轮迭代完成,条件满足时进行下一次迭代\nlabel BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿\n从执行的指令的条数这个角度(label 不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?\n\n\n\n我们目前的 TAC IR 中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它 IR 中存在双目标分支(标签)的条件分支指令,其形式如下:\n br cond, false_target, true_target\n\n 其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。\n 你认为中间表示的哪种条件分支指令设计(单目标 vs 双目标)更合理?为什么?(言之有理即可)\n\n\n"},"docs/step8/spec.html":{"url":"docs/step8/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep8 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' compound_statement\n\ntype\n : 'int'\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep8 语义规范\n\n方便起见,我们称 for 循环括号中的三个表达式/声明自左向右依次为 init、ctrl 和 post。\n例如 for (i=0; i 中,i=0 是 init,i 是 ctrl,i=i+1 是 post。\n\n8.1 有两种循环语句:for 循环、while 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。\n8.2 while 循环的控制表达式的求值在循环体的每次执行之前。\n8.3 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。\n8.4 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。\n8.5 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 for 循环的 init 是一条声明,则其所声明的变量所属的作用域是整个 for 循环语句的作用域(包含 init、ctrl、post 和循环体)。\n\n例如,for (int i=0;;i=i+1) { int i=1; return i; } 是合法的代码片段。\n\n8.7 continue 语句和 break 语句要么出现在循环体里,要么其就是循环体。\n8.8 执行一条 continue 语句,意味着将程序的执行跳转至该条 continue 语句所在的最小的循环语句的循环体的末尾。\n\n例如,for (int i=0;i 等价于 for (int i=0;i。\n\n8.9 执行一条 break 语句,意味着终止该条 break 语句所在的最小的循环语句的执行。\n"},"docs/step9/intro.html":{"url":"docs/step9/intro.html","title":"实验要求","keywords":"","body":"实验指导 step9:函数\nstep9 开始,我们要支持多函数了。\n\n我们需要支持函数的声明和定义:\n \n program\n : function*\n\n function\n : type Identifier '(' parameter_list ')' (compound_statement | ';')\n \n parameter_list\n : (type Identifier (',' type Identifier)*)?\n \n \n\n我们还需要支持函数调用:\n \n expression_list\n : (expression (',' expression)*)?\n \n unary\n : postfix\n | ('-'|'~'|'!') unary\n\n postfix\n : primary\n | Identifier '(' expression_list ')'\n \n \n\n\n\n语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持 void 返回类型,这可以通过忽略函数的 int 返回值实现。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 5 的实验报告需要放在 stage-5 这个 branch 下的 ./reports/stage-5.pdf。注意报告的标题是 stage-5 而不是 step-9。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step9/example.html":{"url":"docs/step9/example.html","title":"通过例子学习","keywords":"","body":"step9 实验指导\n本实验指导使用的例子为:\nint func(int x, int y) { \n return x + y; \n}\n\nint main() { \n return func(1, 2); \n}\n\n词法语法分析\n针对函数特性,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nFunction\n返回类型 return_type,函数名 ident,参数列表 params,函数体 body\n函数\n\n\nParameter\n参数类型 var_type,变量名 ident\n函数参数\n\n\nCall\n调用函数名 ident,参数列表 argument_list\n函数调用\n\n\n\n语义分析\n本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历 AST 构建符号表的过程中,栈底符号表一直存在,不会被弹出。\n此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:\nint func(int x, int y) { int x = 1; return x + y; }\n\n那么语义检查时应当报错。\n函数符号的实现在 frontend/symbol/funcsymbol.py 中。\n中间代码生成\n为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nCALL\nLABEL(T0, T1, ...)\n调用函数 LABEL,传入的实参为T0、T1等\n\n\n\n下面是一段含有函数调用的代码片段:\nT0 = CALL foo(T1, T2)\n\nT1和T2作为被调用函数foo的实参,而调用后的返回值保存在T0中。\n实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。\n\n在早先的文档中,函数调用涉及CALL和PARAM两种指令。CALL指令只对应实际汇编代码的函数调用,而PARAM T0指令用于传递一个参数。\n假设我们有若干个参数,可以依次使用 PARAM 命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量 _T0, _T1 ... 中。比如我们有这样一段 TAC 程序:\n\nPARAM A\nPARAM B\nPARAM C\nXX = CALL XXX\n\n\n那么,在进入 XXX 函数时,相当于执行了:\n\n_T0 = A\n_T1 = B\n_T2 = C\n\n\n因此,示例可以对应如下的 TAC 程序:\n\nfunc:\n _T2 = ADD _T0, _T1\n return _T2 # 参数 x 和 y 分别对应 _T0, _T1\nmain:\n _T0 = 1\n PARAM _T0 # 将 _T0 的值作为参数 x\n _T1 = 2\n PARAM _T1 # 将 _T1 的值作为参数 y\n _T3 = CALL func # 调用函数\n return _T3\n\n同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。\n思考\n在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案):\n\n中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)?\n到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言?\n\n如果你感兴趣,可以了解一下LLVM IR。\n目标代码生成\n下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。\n .text\n .global main\n\nfunc:\n # start of prologue\n addi sp, sp, -56\n # end of prologue\n\n # start of body\n add t0, a0, a1\n mv a0, t0\n j func_exit\n # end of body\n\nfunc_exit:\n # start of epilogue\n addi sp, sp, 56\n # end of epilogue\n\n ret\n\nmain:\n # start of prologue\n addi sp, sp, -56\n sw ra, 52(sp)\n # end of prologue\n\n # start of body\n li t0, 1\n li t1, 2\n mv a0, t0\n mv a1, t1\n call func\n mv t0, a0\n mv a0, t0\n j main_exit\n # end of body\n\nmain_exit:\n # start of epilogue\n lw ra, 52(sp)\n addi sp, sp, 56\n # end of epilogue\n\n ret\n\n首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。\n完成这个步骤的过程中你可能需要回顾step 2中对于后端翻译的介绍和step 5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。\n函数调用\n程序代码里的一个函数调用,包含了下面一系列的操作:\n\n(汇编)保存 caller-saved 寄存器。\n准备参数,完成传参。\n执行汇编中的函数调用指令,开始执行子函数直至其返回。\n拿到函数调用的返回值,作为函数调用表达式的值。\n具体依赖于1的处理方式,可能需要恢复 caller-saved 寄存器。\n\n上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。\n调用约定\n我们给出RISC-V标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。\nRISC-V 的标准调用约定\n\ncaller-saved 和 callee-saved 寄存器\n\n上表给出 RISC-V 中 32 个整数寄存器的分类。所谓 caller-saved 寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓 callee-saved 寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些 callee-saved 寄存器的值。\n具体的保存方法并不限制,但一般都使用栈来保存。\n\n函数参数以及返回值的传递\n函数参数(32 位 int)从左到右存放在 a0 - a7 寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第 9 个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用 gcc 编译程序进行验证。\n返回值(32 位 int)放在 a0 寄存器中。\n\n\n实战教学\n我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。\n要做什么\n由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。\n只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复callee-saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。\n你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。\n对于调用者的处理\n这里我们需要关注源文件backend/reg/bruteregalloc.py中的BruteRegAlloc类。\n根据调用约定,调用其它函数后caller-saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前caller-saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如callee-saved寄存器或栈上。因此我们先将活跃且在caller-saved寄存器中的临时变量保存到栈上,这实际上让所有caller-saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。\n\n保存活跃的临时变量:首先保存所有位于caller-saved寄存器中且活跃的临时变量,然后解除所有caller-saved寄存器与临时变量的绑定关系。你可以用subEmitter.emitStoreToStack和unbind来达到上述效果。\n\n这是否意味着原本就在caller-saved寄存器中的参数也被丢到了栈上?似乎有些多余?\n 是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。\n\n\n\n将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是caller-saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(Temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv ai, xj;如果vi的值不在物理寄存器中,调用emitLoadFromStack。(思考: 如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题? 你有更高效的解决方案吗?)\n\n为什么有的临时变量可能在寄存器中?\n 因为我们在步骤1中只操作了caller-saved寄存器。如果某个临时变量存放在callee-saved寄存器中,那么它不会在上一步骤被放到栈上。\n\n\n\n用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitLoadFromStack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitStoreToStack,我们需要手动生成一条NativeStoreWord指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。\n\n进行真正的函数调用:可以使用emitNative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。\n\n妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。\n\n记录函数调用情况(可选):你也许需要在SubroutineEmitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。\n\n\n对于被调用者的处理\n这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的RiscvSubroutineEmitter类和backend/reg/bruteregalloc.py中的BruteRegAlloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。\n\n处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitFunc函数中。框架的现有部分已经帮助大家处理好了callee-saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是callee-saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。)\n\n处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。BruteRegAlloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind, unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。\n\n\n一些可能带来困惑的地方\n\nra是一个caller-saved寄存器,但它有着和callee-saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它caller-saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个callee-saved寄存器。\n\n你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。\n\n\n思考题\n\n你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用 vs 传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。\n 具体而言,某个“一整条函数调用”的中间表示大致如下:\n _T3 = CALL foo(_T2, _T1, _T0)\n 对应的“传参和调用分离”的中间表示类似于:\n PARAM _T2\n PARAM _T1\n PARAM _T0\n _T3 = CALL foo\n\n为何 RISC-V 标准调用约定中要引入 callee-saved 和 caller-saved 两类寄存器,而不是要求所有寄存器完全由 caller/callee 中的一方保存?为何保存返回地址的 ra 寄存器是 caller-saved 寄存器?\n\n\n总结\n到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。\n"},"docs/step9/spec.html":{"url":"docs/step9/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep9 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ';')\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier (',' type Identifier)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\n我们暂不要求支持不包含函数体的函数声明。\n\nstep9 语义规范\n9.1 在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。\n9.2 在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。\n\n在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。\n\n9.3 函数是可以递归调用的。\n9.4 (更新 5.10)执行一条 return 语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的 caller,语句中的表达式的值会返还给 caller 作为函数调用的表达式的值。一个函数可以有任意多条 return 语句。\n9.5 函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。\n\n例如,int f(int x) { int x; } 不合法,但 int f(int x) { { int x; } } 合法。\n\n9.6 如果一个不是 main 的函数执行到了它的 },且其返回值被 caller 所使用,则这是一个未定义行为。\n\n对于感兴趣的同学:C 语言中规定只有使用了返回值才是未定义行为,而 C++ 中规定不管返回值有没有被使用,都是未定义行为。\n我们没有支持 void 类型,但可以忽略返回值达到类似的效果。\n“执行到了 }” 意味着执行时没有通过 return 返回,例如 int f(){if(0) return 0;}。\n实现的时候,你可以直接让所有函数都默认返回 0,语义规范说 main 之外的函数没有 return 是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回 0 当然也是可以的,而且更清晰简单。\n\n"},"docs/step10/intro.html":{"url":"docs/step10/intro.html","title":"实验要求","keywords":"","body":"实验指导 step10:全局变量\nstep10 我们要支持的是全局变量,语法改动非常简单:\n\nprogram\n : (function | declaration)*\n\n\n全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的 .bss 段或 .data 段里。\n访问它也不能通过 fp 加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。\n\n汇编课上应该讲过,实际中(包括 gcc 和 qemu)使用的可执行文件的格式是 ELF(Executable and Linking Format)。\n.text 是其中存放代码的段(section),.bss 和 .data 都是其中存放数据的段,前者零初始化后者须指定初始值。\n对有兴趣的同学:\n全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。\n简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。\n当然,广义上的编译器就囊括了这所有阶段。\n\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 10 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step10/example.html":{"url":"docs/step10/example.html","title":"通过例子学习","keywords":"","body":"step10 实验指导\n本实验指导使用的例子为:\nint x = 2024;\nint main() { return x; }\n\n词法语法分析\n针对全局变量,我们需要新设计 AST 节点来表示它,只需修改根节点的孩子类型即可:原先表示整个 MiniDecaf 程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。\n语义分析\n本步骤引入全局变量,在引入全局变量之后,AST 根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历 AST 构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。\n中间代码生成\n经过 Step5 的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nLOAD\nT1, offset\n临时变量 T1 中存储地址,加载与该地址相差 offset 个偏移的内存地址中的数据\n\n\nLOAD_SYMBOL\nsymbol\nsymbol 为字符串,加载 symbol 符号所代表的地址\n\n\n\n有了上述两条指令,可以将测试用例翻译如下:\nmain:\n _T0 = LOAD_SYMBOL x\n _T1 = LOAD _T0, 0\n return T1\n\n需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。\n\n请注意,翻译所得的 TAC 代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。\n目标代码生成\nStep10 中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。\n\n翻译中间代码\n实际上,我们提供的中间代码设计和 RISC-V 汇编的思想是一致的,RISC-V 汇编中有对应 LOAD 和 LOAD_SYMBOL 的指令,我们直接给出翻译结果:\nmain:\n la t0, x # _T0 = LOAD_SYMBOL x\n lw t1, 0(t0) # _T1 = LOAD _T0, 0\n mv a0, t1\n ret\n\n\n将全局变量放到特定的数据段中\n到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的 x 变量符号究竟存在哪里,如果所生成的汇编程序不给出 x 的定义,程序是有bug的。实际上,RISC-V 提供了一系列的汇编指令,用以声明全局变量 x 所对应的数据段。\n下面给出 RISC-V 用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:\n.data\n.globl x\nx:\n .word 2024\n\n上例中,.data 表示输出到 data 数据段;.globl x 声明 x 为全局符号;.word 后是一个 4 字节整数,是 x 符号对应的初始值。\n按照汇编约定,data 段中存放已初始化的全局变量,未初始化的全局变量则存放在 bss 段中。举例而言,下面的示例将未初始化的全局变量 x 存放到 bss 段中。其中,.space 表示预留一块连续的内存,4 表示存储空间大小为 4 字节。\n.bss\n.globl x\nx:\n .space 4\n\n\n\n思考题\n\n写出 la v0, a 这一 RiscV 伪指令可能会被转换成哪些 RiscV 指令的组合(说出两种可能即可)。\n\n参考的 RiscV 指令链接:https://github.com/TheThirdOne/rars/wiki/Supported-Instructions\n"},"docs/step10/spec.html":{"url":"docs/step10/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep10 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : (function | declaration)*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ; )\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier (',' type Identifier)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep10 语义规范\n10.1 对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如 2123),对初始化表达式是非字面量的情况不做任何要求(例如 a 或 f() 或 2+3)。\n\nC 其实也支持非字面量的编译期常量,例如 int a=1+3;。编译器可以计算出 1+3==4 然后让它等价于 int a=4;。\n但为了实现简便,我们就不要求支持这点。\nC 不允许 int a=f(); 因为 f() 不是编译器常量;\n而 C++ 甚至可以支持 int a=f();,其大致实现为 int a=0; 然后在 main 之前执行的初始化函数中 a=f();。\n\n10.2 我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。\n\nint a; int a=2; int a; int main(){ return a;} 是合法的 C 代码,不过不是合法的 C++ 代码,也许 C++ 的处理方式更符合你的直觉。\n为了简单,我们不要求这点。比如对于形如 int a; int a=2; 或 int a; int a; 的代码片段,你可以以任意方式处理。\n\n10.3 如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值 0。\n"},"docs/step11/intro.html":{"url":"docs/step11/intro.html","title":"实验要求","keywords":"","body":"实验指导 step11:数组\nstep11 的目标是支持数组:\n语法上没有太大改动,\n\n数组的初始化:\n\ndeclaration\n : type Identifier ('[' Integer ']')* ('=' expression)? ';'\n\n\n数组的下标操作\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n | postfix '[' expression ']'\n\n\n\n\nstep11 难度不大,但有了数组让我们能够写很多有意思的程序了,step11 之前甚至 MiniDecaf 连快速排序都写不了。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 11 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step11/example.html":{"url":"docs/step11/example.html","title":"通过例子学习","keywords":"","body":"step11 实验指导\n本实验指导使用的例子为:\nint x[10];\nint main() { int y[10]; return 0; }\n\n词法语法分析\n针对数组,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nIndexExpr\n索引基底 base,索引下标 index\n索引运算\n\n\n\n语义分析\n由于 step 11 里引入了数组,现在我们的变量类型不只是 int 型了,还包括 int 型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。\n注意:引入数组后,左值不再一定是 identifier 了,还有可能是如 a[0][1] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。\nfrontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。\n有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。\n中间代码生成\n数组和普通变量类似,可以分为局部数组和全局数组。\n全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1. 需要申请更大的 bss 段内存)。\n针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令 ALLOC 用于分配内存空间:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nALLOC\nsize\n分配 size 字节的内存,并返回内存首地址\n\n\n\n采用 ALLOC 指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):\nmain:\n T0 = ALLOC 40 # 一个 int 类型为 4 个字节\n T1 = 0\n return T1\n\n通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。\n\n除了分配数组,我们还需要考虑如何访问数组元素。通过 ALLOC 指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用 Step10 中引入的 LOAD 指令来实现,我们还需要引入一条类似的 STORE 指令将值写入数组元素。\n那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int 型的大小为 4 个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组 a[d1][d2]...[dn],访问元素 a[i1][i2]...[in] 可以等价于访问 a[i1d2d3...dn + i2d3...*dn + ... + in]。在将数组索引翻译成 TAC 时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。\n目标代码生成\n同中间代码生成,全局数组自行思考实现。\n对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,Step5 栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针 sp 进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。\n思考题\n\nC 语言规范规定,允许局部变量是可变长度的数组(Variable Length Array,VLA),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似 int n = 5; int a[n]; 这种,但仍然不允许类似 int n = ...; int m = ...; int a[n][m]; 这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?\n\n\n提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。\n你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。\n\n"},"docs/step11/spec.html":{"url":"docs/step11/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep11 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : (function | declaration)*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ; )\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier (',' type Identifier)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('[' Integer ']')* ('=' expression)? ';'\n\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | unary '=' expression\n\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n | postfix '[' expression ']'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep11 语义规范\n11.1 一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。\n11.2 我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。\n\n所以,我们不要求支持变长数组 int a[n]; 或不定长数组 int a[];。\n\n11.3 对于下标运算 a[b],要求 a 是一个数组类型,b 是一个整数类型,a[b] 是 a 中的第 b 个元素(从 0 开始计数)。\n11.4 下标运算越界是未定义行为。\n\n即便是类似 int a[4][5]; a[1][7] 这种,同样也是未定义行为。\n\n"},"docs/step12/intro.html":{"url":"docs/step12/intro.html","title":"实验要求","keywords":"","body":"实验指导 step12:为数组添加更多支持\nstep12 的目标是支持数组的初始化和传参:\n语法上没有太大改动,\n数组的初始化:\n\ndeclaration\n : type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';'\n\n\n\n\n数组的传参:\n\nfunction\n : type Identifier '(' parameter_list ')' (compound_statement | ';')\nparameter_list\n : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)?\n\n\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 12 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step12/example.html":{"url":"docs/step12/example.html","title":"通过例子学习","keywords":"","body":"step12 实验指导\n本实验指导使用的例子为:\nint func(int param[]){\n param[0] = 1;\n return 0;\n}\n\nint main() {\n int arr[4] = {1,2};\n func(arr);\n return arr[0] + arr[1] + arr[2];\n}\n\n词法语法分析\n我们需要增加一个数组的初始化列表,可以直接修改上一节数组的AST结点增加一个数组用于记录初始化元素。\n函数的参数列表需要加上数组类型。\n语义分析\n由于 step 12 里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。\nint fun(int a[][12]){\n a[0][1] = 1;\n return 0;\n}\n\n中间代码生成\n在C语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。\n而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为 0。例如:\nint arr[3]={1,2};\n// 等价于\nint arr[3]={1,2,0};\n\n当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个 memset 这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。\n// fill_n 函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)\nint fill_n(int *dst, int res, int cnt);\n\n因此,上述初始化可以等价地转化为:\nint arr[3];\nfill_n(arr, 0, 3);\na[0] = 1;\na[1] = 2;\n\n目标代码生成\n数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。\n思考题\n\n作为函数参数的数组类型第一维可以为空。事实上,在 C/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?\n\n总结\n恭喜你实现了 MiniDecaf 语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。\n"},"docs/step12/spec.html":{"url":"docs/step12/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep12 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : (function | declaration)*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ; )\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n | type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';'\n\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | unary '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n\n | postfix '[' expression ']'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\nstep12 语义规范\n12.1 多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号\n\nint a[2][2] = {1, 2, 3, 4};\n会将数组变为\na[0][0] = 1;\na[0][1] = 2;\na[1][0] = 3;\na[1][1] = 4;\n\n12.2 数组传参是支持不定长度的\n\nint fun(int a[]) 是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题\n\n"},"docs/step13/readme.html":{"url":"docs/step13/readme.html","title":"选做二说明","keywords":"","body":"选做实验二说明\n选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个Step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。\n"},"docs/step13/intro.html":{"url":"docs/step13/intro.html","title":"实验要求","keywords":"","body":"实验指导 step13:寄存器分配算法改进\nstep13 的目标是实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法,并以此代替 step5 中提到的当前代码框架中的分配算法。\n语法上没有改动。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 7 的实验报告需要放在 stage-7 这个 branch 下的 ./reports/stage-7.pdf。整个 stage 7 只需要提交一份报告。\n你需要:\n\n改进你的编译器,支持上面提到的寄存器分配算法。\n除了替换位于 backend/reg/bruteregalloc.py 的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看 step 6 的数据流分析一节。\n你需要为代码添加合理的注释以便批阅。\n你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。\n\n\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n详细说明你的代码的运行逻辑\n举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的?\n对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step13/example.html":{"url":"docs/step13/example.html","title":"实验指导","keywords":"","body":"step13 实验指导\n本节实验要求实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。\n下面简要介绍一些你可能需要的预备知识。\n回顾:启发式寄存器分配算法\n在step 6 的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。\n而在step5 中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下:\n\n首先检查是否存在空闲的寄存器,有则直接分配给当前变量。\n否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。\n否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。\n\n基于图染色的寄存器分配算法\n我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。\n重用一下 step 6 中活跃变量的例子:\n\n\n\nTAC 代码\n活跃变量集合\n相干寄存器\n\n\n\n\n_T0 = 4\n{_T0}\n\n\n\n_T1 = 3\n{_T0, _T1}\n(_T0,_T1)\n\n\n_T2 = _T0 * _T1\n{_T0}\n\n\n\n_T3 = _T0 * _T0\n{_T0, _T3}\n(_T0,_T3)\n\n\n_T2 = _T3 * _T3\n{_T0, _T2, _T3}\n(_T0,_T2),(_T0, _T3),(_T2, _T3)\n\n\n_T2 = _T0 * _T2\n{_T2, _T3}\n(_T2,_T3)\n\n\n_T1 = _T2 * _T3\n{_T1}\n\n\n\nreturn _T1\n{}\n\n\n\n这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配?\n容易发现,至少需要3个寄存器。因为 _T0,_T2,_T3 相互冲突,需要各一个寄存器,而 _T1 可以跟 _T2 或者 _T3 共用寄存器。\n这个思路相比代码框架中的启发式寄存器分配算法有以下好处:\n\n尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的 callee save/caller save 寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。\n方便全局优化寄存器分配,减少基本块之间的 move 指令。\n\n事实上,我们可以用图染色问题去描述“相互冲突的变量”:\n\n图染色问题:有 n 个结点,m 条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。\n\n寄存器分配问题:有 n 个变量,m 组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。\n\n\n\n上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。\n如何找到所有冲突的变量\n这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。\n如何解决寄存器分配对应的图染色问题\n假定我们有 k 种颜色可用于染色(对应 k 个寄存器可用于存放变量),那么可以依照下面的顺序执行\n\n寻找图中是否有连接了少于 k 条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于 k 条边的结点。\n如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少 k 条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。\n按删除的逆序恢复所有结点。\n当恢复一个从步骤1删除的结点时,因为当前它连接了少于 k 条边,所以我们总能为它指定一个颜色,使之不和相邻的最多 k-1 个点的颜色冲突。\n当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有 k 种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。\n\n\n将每种颜色对应到寄存器上,生成后端代码。\n\n基于复制指令的寄存器合并\n在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copy instructions)(其实就是赋值)传值的寄存器。\n例如下面的代码\nint f() {\n int a = 1;\n int b = a;\n int c = a + 2;\n int d = b + 3;\n return a + b + c + d;\n}\n\n用上面提过的活跃变量分析可以算出,在 c = a + 2 执行时 a 和 b 都是活跃变量。但观察代码可以发现 a b 事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。\n这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。\n可以直接合并这两个点吗?\n可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的 Chaitin 的解决方案。\n可以在保证合并后边数 的情况下合并这两个点吗?\n可以,但这样合并的点数比较少,优化效果差。这实际上是更早的 Briggs 的解决方案。\n可以不合并但强制这两个点同色吗?\n不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把 b,f涂成相同颜色。这样就会导致 j 的颜色和 b 相同,从而意外地和 f 相同,导致溢出到内存。\n\n这篇实验要求实现的论文的解决方案\n把图中当前所有结点中,连接了至少 k 条边的结点标记为 significant-degree 的。看上述图染色算法流程,可以发现如果一个点不是 significant-degree 的,它会在步骤1被删除。\n对于仅因复制指令相互冲突的一对点 (a,b),可以如此检查它们是否可以合并:\n\n统计与 a 或者 b有边相连的所有结点中有多少个 significant-degree 点。如果有 个,说明最多有 k-1 个结点不会在在步骤1被删除,因此如果 a b 合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的 a 和 b 一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。\n如果不能合并,那么把 a 和 b 中间的虚线边改为实线,表示不再考虑二者合并的情况。\n\n上面的说明只是简要介绍了算法的原理,请阅读论文 TOPLAS'1996: Iterated Register Coalescing 获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。\n"},"docs/contest/intro.html":{"url":"docs/contest/intro.html","title":"大实验简介","keywords":"","body":"大实验参考文档\n注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。\n介绍\n大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。\n参加大实验的同学应该需要自己从头设计一个符合 minidecaf 规范 的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。\n有两个原因我们要求同学们从头设计一个编译器:\n\n为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:IR 的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。\n大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。\n\n大实验在 2024 年相对于 2023 年有一些变化,主要体现在:\n\n增加了实验文档\n语法要求从 Sysy 语法改为了 MiniDecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低\n不再要求完成基础实验以后再进行大实验\n\n大实验的语法规范与 step12 的规范是一致的。不过有一点需要注意:\n\n我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的 RiscV 调用约定。\n\n你可以选择 C++,Rust 实现你的编译器,你的编译器生成的目标代码可以是 RISC-V 或者 ARM 架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。\n大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。\n注意:大实验工作量较大,并不推荐所有同学都参加。\n编译器的构成\n一个编译器主要由以下几个部分构成:\n\n前端:负责词法分析、语法分析、语义分析,生成抽象语法树(AST)。\n词法分析器(Lexer):将输入的源代码转换为一个个的标记(Token)。\n语法分析器(Parser):将标记(Token)转换为抽象语法树(AST)。\n语义分析器(Semantic Analyzer):检查AST是否符合语法规则和语义规则。\n\n\n中端:负责中间代码生成、优化。\n中间代码生成器(Intermediate Representation Generator):将 AST 转换为中间代码。\n优化器(Optimizer):对中间代码进行优化。\n\n\n后端:负责目标代码生成。\n目标代码生成器(Target Code Generator):将优化后的中间代码转换为目标机器代码。\n寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。\n\n\n\n可以通过后续的文档了解每个部分的更多细节。\n参考实现进度及顺序\n\n编写前端、设计 IR、完成中间代码生成 (两周)\n\n前端:你可以使用现有的框架完成前端(如:Antlr、Flex & Bison)辅助你生成 AST,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现 LR(1)、LL(1) 等分析器。\n设计 IR 也是需要进行代码编写的,可以参考基础实验框架的IR在代码层面是如何实现的(utils/tac)。\n中间代码生成:将 AST 转换为 IR,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。\n此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。\n\n\n\n完成后端(两周)\n\n实现后端代码生成、栈帧管理\n实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。\n\n\n增加中端优化和后端优化(剩下的时间)\n\n中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等\n后端优化:图染色寄存器分配、线性扫描法、指令折叠等等\n分工建议:两位同学负责中端优化,两位同学负责后端优化。\n\n\n\n\n进度检查\n\n第一次进度检查:第六周周六(10.19)\n\n你的编译器应该能完成将简单的程序转换为 RISC-V 汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)Stage 3 截止之前完成 Stage 1-3 的实验,不会有额外扣分。\n\n\n第二次进度检查(中期检查):第八周周六(11.2)\n\n这时候你的编译器应该能通过基础实验的所有测试样例(Stage 1-5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)Stage 4 截止前完成 Stage 1-4 ,不额外扣分。也可以继续大实验不做基础实验,但是至少要在 Stage-5 让你的编译器能够通过 Stage 1-5 的测试样例。\n你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评 5%))\n\n\n第三次进度检查:第十二周周六(11.23)\n\n你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除 5 分(总评 5%))\n\n\n第四次进度检查(期末检查):第十六周周末(12.29)\n\n你的编译器应该能通过所有的测试样例(Stage 1-6),包括附加测试样例。\n你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩)\n\n\n\n评分方法\n因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案:\n\n选项一 完成竞赛第二阶段的优化编译器,替代期末考试\n 成绩占比 90%,剩余 10% 为书面作业和日常成绩。\n 其中这90%构成为:\n\n50% 正确性测试:你需要通过 Stage 1-6 的所有测试样例以及附加测试的测试样例,这样你可以获得 50% 的正确性得分。\n10% 报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。\n30% 性能测试,将根据你的编译器的性能进行评分。\n性能评分方案:\n附加测试中performance部分测试样例,以 gcc 打开-O2优化的性能的 60% 为满分,按照比例折算。如果一个程序 gcc 编译后运行时间为 12s ,如果你的程序执行时间为 20s 即为满分。\n你的单个测试点的得分为:\nmin{100, 100 * GCC编译程序运行时间 * 1.67 / 你的程序运行时间}\n所有测试点取算数平均值,最后结果 * 30% 作为你的最终性能测试成绩。\n评测将会在我们提供的服务器上进行,通过 QEMU 模拟 RISC-V 或者 ARM 架构的 CPU 运行你的程序。经过测试 QEMU与 真实硬件的性能相对差值是比较恒定的(如比较 gcc -O1与-O2)。\n实验评测仓库在这里。\n你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。\n\n\n\n选项二 仅完成竞赛第一阶段(达到课程基础实验的要求)\n 实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个 step 的。根据通过测试样例情况评分。\n\n完成 Stage 1 - 5 实验成绩 35% ,书面作业和日常成绩 10% ,期末成绩 55%。\n完成 Stage 1 - 6 实验成绩 42% ,书面作业和日常成绩 10% ,期末成绩 48%。\n完成 Stage 1 - 7 实验成绩 50% ,书面作业和日常成绩 10% ,期末成绩 40%。\n\n\n\n"},"docs/contest/frontend.html":{"url":"docs/contest/frontend.html","title":"前端设计","keywords":"","body":"前端梗概\n前端的主要任务是将源代码转换为抽象语法树(Abstract Syntax Tree, AST),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。\n词法分析与语法分析\n词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。\n下面我们以 Antlr 框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如 Flex & Bison, lex & yacc 等。\nAntlr简介\nAntlr (Another Tool for Language Recognition) 是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。Antlr 支持多种语言,包括 Java、Python 和 C++。通过定义语法文件(.g4 文件),Antlr 能够帮助我们生成解析源代码所需的词法分析和语法分析工具。\n在这个项目中,我们推荐使用 Antlr 来处理 MiniDecaf 的词法分析和语法分析部分。\n第一部分:依赖环境准备\nANTLR 工具需要 JVM 才能执行。\n直接使用包管理器安装:\nsudo apt install openjdk-19-jdk\n\n1. 获取 ANTLR\n你需要从 ANTLR Download 下载 antlr-4.13.2-complete.jar(截至文档写作时此为最新版)。\n使用以下命令(记得把/path/to/antlr-4.13.2-complete.jar替换成你的 antlr 路径)测试是否能正常使用:\njava -jar /path/to/antlr-4.13.2-complete.jar\n\n你应该能看到类似以下的输出:\nANTLR Parser Generator Version 4.13.2\n -o ___ specify output directory where all output is generated\n -lib ___ specify location of grammars, tokens files\n -atn generate rule augmented transition network diagrams\n -encoding ___ specify grammar file encoding; e.g., euc-jp\n... ...\n\n3. ANTLR 运行时的编译链接\n1. 安装 ANTLR 运行时库\nANTLR 运行时库是解析器生成的代码在运行时所依赖的代码。对于 C++,你可以从 ANTLR4 runtime Cpp的 GitHub 仓库下载预编译的库或者自己编译安装。但是官方的 CMAKE 脚本会从官方 git 仓库下载 ANTLR C++ 运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接 clone ANTLR 运行时库的 C++ 源代码到你的代码仓库里,并为你的整个项目编写一个 CMAKE 文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与CMAKE文件实例.\n\n项目结构\nexample-tree/\n├── 3rd_party/\n│ └── antlr4-runtime/ # 第三方库 ANTLR 运行时目录(在源码的 src 目录下)\n│ ├── CMakeLists.txt # antlr4-runtime 的 CMake 配置文件,需要你手动添加一个\n│ └── antlr4-runtime.h\n│ └── antlr4-common.h\n│ └── ...\n├── CMakeLists.txt # 根目录下的 CMake 配置文件\n└── src/ # 源代码目录\n ├── frontend/ # 前端代码目录\n │ ├── lexer/ # 词法分析相关代码\n │ │ └── *.cpp # 词法分析器源文件\n │ │ └── *.h # 词法分析器头文件\n │ ├── parser/ # 语法分析相关代码\n │ │ └── *.cpp # 语法分析器源文件\n │ │ └── *.h # 语法分析器头文件\n │ └── ast/ # 抽象语法树相关代码\n │ ├── *.cpp # AST 源文件\n │ ├── *.h # AST 头文件\n ├── backend/ # 后端代码目录\n ├── midend/ # 中间代码目录\n └── main.cpp # 程序入口文件\n\n对应的 CMakeLists.txt\n# 指定 CMake 的最小版本要求\ncmake_minimum_required(VERSION 3.10)\n\n# 设置项目名称和使用的语言(CXX 代表 C++)\nproject(my_compiler CXX)\n\n# 设置 C++ 标准为 C++17\nset(CMAKE_CXX_STANDARD 17)\n\n# 设置 C++ 编译器标志,这里没有额外添加,使用默认\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS}\")\n\n# 设置调试模式下的编译器标志,开启 DEBUG 宏\nset(CMAKE_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG\")\n\n# 使用 GLOB_RECURSE 模式递归查找 src 目录下所有的 .cpp 文件\nfile(GLOB_RECURSE SRC \"src/*.cpp\")\n\n# 添加项目的 src 目录到头文件搜索路径\ninclude_directories(src)\n\n# 添加第三方库目录 antlr4-runtime 到头文件搜索路径\ninclude_directories(3rd_party/antlr4-runtime)\n\n# 添加 antlr4-runtime 子目录作为子项目进行构建\nadd_subdirectory(3rd_party/antlr4-runtime)\n\n# 创建名为 my_compiler 的可执行文件,将所有源文件编译链接到这个可执行文件中\nadd_executable(my_compiler ${SRC})\n\n# 将 antlr4_runtime 库与 my_compiler 可执行文件链接\ntarget_link_libraries(my_compiler antlr4_runtime)\n\n\n为 antlr4-runtime 添加一个相应的 CMakeLists.txt\n\n\n# 3rd_party/antlr4-runtime/CMakeLists.txt\nfile(GLOB_RECURSE ANTLR4_SRC \"*.cpp\")\n\nadd_library(antlr4_runtime STATIC ${ANTLR4_SRC})\n\n第二部分:文法文件的编写与 parse tree 的生成\n终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的 C 语言子集 simpleC 的文法文件 simpleC.g4,并利用它生成一个 parse tree。最终把一个简单的 C 语言程序 test.c 转换为一个 parse tree。\n\ntest.c\nint main(){\n int a = 1 ;\n int b = a + 2 ;\n int c = a + b + 1 ;\n return c ;\n}\n\n\nparse tree\nparse tree:\n(program\n (funcDeclaration int main ( ) {\n (statements\n (statement int a =\n (expression 1) ;)\n (statement int b =\n (expression\n (expression a) +\n (expression 2)) ;)\n (statement int c =\n (expression\n (expression\n (expression a) +\n (expression b)) +\n (expression 1)) ;)\n (statement return\n (expression c) ;)) }))\n\n\n1. 编写simpleC.g4\n.g4 文件是 ANTLR 使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的 .g4 文件包含以下几个部分:\n\n语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为 ANTLR 是对大小写敏感的)\n规则:定义语言中各种结构的模式。\n词法规则:定义词法单元(如关键字、标识符、符号等)。\n忽略规则:通常用来忽略空格、换行等空白字符。\n操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。\n\n示例 .g4 文件结构\n// 文件名: SimpleC.g4\n\ngrammar SimpleC; // 语法定义\n\n// 程序的起始规则\nprogram: funcDeclaration ;\n\n// 函数声明规则\nfuncDeclaration: Type ID LP RP LC statements RC ;\n\n// 语句的规则\nstatements: statement* ;\n\n// 声明和表达式\nstatement: Type ID ASSIGN expression SEMI // varDeclaration\n | expression SEMI\n | 'return' expression SEMI\n ;\n\n// 表达式的规则\nexpression: expression PLUS expression // AddExpr\n | expression MINUS expression // SubExpr\n | expression MUL expression // MulExpr\n | expression DIV expression // DivExpr\n | '(' expression ')' // ParenExpr\n | INT // IntExpr\n | ID // ID\n ;\n\n// 类型的规则(这里只支持 int 类型)\nType: 'int' ;\n\n// 整数的规则\nINT: [0-9]+ ;\n\n// 标识符的规则\nID: [a-zA-Z_] [a-zA-Z0-9_]* ;\n\n// 忽略空格和换行\nWS: [ \\t\\r\\n]+ -> skip ;\n\n// 定义括号和符号\nLP: '(' ;\nRP: ')' ;\nLC: '{' ;\nRC: '}' ;\nSEMI: ';' ;\nASSIGN: '=' ;\nPLUS: '+' ;\nMINUS: '-' ;\nMUL: '*' ;\nDIV: '/' ;\n\n通过编写 .g4 文件,我们能够为 ANTLR 提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。\n2. 使用文法文件生成 lexer & parser\n在确认环境配置无误后,我们可以使用 ANTLR 和文法文件生成所需的 lexer & parser,只需要执行\njava -jar /path/to/antlr-4.13.2-complete.jar -Dlanguage=Cpp -no-listener -visitor -o src/frontend/lexer_parser simpleC.g4\n\n-no-listener 和 -visitor 选项分别用于禁止生成 listener(默认是激活的)和激活 visitor 模式。如果你还不知道 visitor 是什么,不用担心,我们稍后会看到。\n-o 选项用于设置输出目录。我们将在 src/frontend/lexer_parser 目录中输出生成的代码。\n3. 使用 lexer & parser\n现在我们可以看到如何在 C++ 程序中使用我们生成的解析器。\n// src/main.cpp\n#include \"antlr4-runtime.h\"\n#include \"frontend/lexer/SimpleCBaseVisitor.h\"\n#include \"frontend/lexer/SimpleCLexer.h\"\n#include \"frontend/lexer/SimpleCParser.h\"\n#include \n#include \n\nusing namespace antlr4;\nusing namespace tree;\nusing namespace std;\n\nint\nmain(int argc, const char* argv[])\n{\n ifstream f_stream;\n f_stream.open(argv[1]);\n ANTLRInputStream input(f_stream);\n SimpleCLexer lexer(&input);\n CommonTokenStream tokens(&lexer);\n SimpleCParser parser(&tokens);\n ParseTree* tree = parser.program();\n cout toStringTree(&parser, true) \n这是我们程序的主文件,展示了如何在 C++ 中设置使用 ANTLR。前几行(3-5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。\n16-21 行展示了使用 ANTLR 解析器的标准方式:\n\n我们将输入转换为 ANTLR 格式\n我们创建一个在该输入上工作的词法分析器\n我们使用词法分析器产生一个 token 流\n我们创建一个在令牌流上工作的解析器\n然后,21 行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。\n\n现在,使用 cmake 构建并运行我们自己实现的编译器,你将会看到 test.c 对应的 parse tree 被输出到终端中。\n./my_compiler test.c\n\n总的来说,我们现在利用 ANTLR 实现了词法分析器分析输入(即字符)并产生 token,然后解析器分析 token 以产生 parser tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用 visitor 模式遍历这个树并对这个树的每个节点进行一些操作。\n第三部分:AST 的生成\n在生成 AST 时,我们通常是在解析树(parse tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(AST)。AST 的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。\n1. 定义 AST 结点\n首先,我们需要为 AST 定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的 If 语句结点的定义:\nclass IfNode : public ASTNode {\npublic:\n std::unique_ptr cond; // 条件表达式\n std::unique_ptr then; // then 语句块\n std::unique_ptr other; // optional 的 else 语句块\n bool has_otherwise;\n IfNode(std::unique_ptr cond, std::unique_ptr then,\n std::unique_ptr other = nullptr)\n : cond(std::move(cond)), then(std::move(then)), other(std::move(other)),\n has_otherwise(other != nullptr) {}\n};\n\n这个 IfNode 结点包含条件表达式cond、then 语句块和可选的 else 语句块。\n2. 使用 Visitor 模式生成 AST\n在生成 AST 时,我们需要遍历解析树(parse tree)并根据其结构生成对应的 AST 结点。这里我们可以使用 Visitor 模式,针对解析树的不同节点调用对应的处理函数,来生成合适的 AST 结点。\n假设我们有一个解析树 IfContext,对应的语法规则如下:\nifStatement\n : 'if' '(' expr ')' statement ('else' statement)?\n ;\n\n我们可以继承 ANTLR 自动生成的 BaseVisitor 函数,为 IfContext 实现 Visitor 函数,以生成 IfNode:\nclass ASTBuilderVisitor : public SimpleCBaseVisitor> {\npublic:\n // 访问 ifStatement 节点\n std::unique_ptr visitIfStatement(SimpleCParser::IfStatementContext *ctx) override {\n // 访问并生成条件表达式的 AST 结点\n auto cond = visit(ctx->expr());\n\n // 访问并生成 then 语句的 AST 结点\n auto thenBranch = visit(ctx->statement(0));\n\n // 检查是否有 else 分支,并生成对应的 AST 结点\n std::unique_ptr elseBranch = nullptr;\n if (ctx->statement(1)) {\n elseBranch = visit(ctx->statement(1));\n }\n\n // 构建 IfNode,并返回\n return std::make_unique(std::move(cond), std::move(thenBranch), std::move(elseBranch));\n }\n};\n\n这个 ASTBuilderVisitor 类的 visitIfStatement 方法遍历解析树中的 ifStatement 结点,生成 IfNode 并填充其条件表达式、then 和 else 分支。通过 Visitor 模式,代码变得结构清晰且便于扩展。\n生成 AST 的完整流程\n\n编写 Antlr 语法文件,定义源语言的解析规则。\n使用 Antlr 生成词法分析器和语法分析器,解析源代码生成解析树。\n实现 Visitor 模式的遍历代码,逐个解析树结点处理并生成 AST 结点。\n利用 AST 结点构建抽象语法树,最终生成中间表示或目标代码。\n\n通过这种方式,我们能够将解析树转换为精简的抽象语法树(AST),为后续的中端和后端处理提供基础。\n第四部分:语义分析\n语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出 MiniDecaf 的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。\n符号解析(namer)\n符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(AST),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。\n符号表\n符号解析的核心工具是符号表(symbol table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。\nclass SymbolTable {\npublic:\n std::unordered_map> table;\n std::shared_ptr parent; // 指向父作用域的符号表\n\n SymbolTable(std::shared_ptr parent = nullptr)\n : parent(parent) {}\n\n // 在当前作用域查找符号\n std::shared_ptr lookup(const std::string &name){\n //···\n }\n\n // 向符号表中插入新的符号\n void insert(const std::string &name, std::shared_ptr symbol) {\n //···\n }\n};\n\n在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。\n作用域管理\n符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。\nclass SemanticAnalyzer {\npublic:\n std::shared_ptr currentScope;\n\n void enterScope() {\n currentScope = std::make_shared(currentScope);\n }\n\n void exitScope() {\n currentScope = currentScope->parent;\n }\n\n void declareVariable(const std::string &name, const std::shared_ptr &symbol) {\n currentScope->insert(name, symbol);\n }\n\n std::shared_ptr resolveVariable(const std::string &name) {\n return currentScope->lookup(name);\n }\n};\n\n通过 enterScope() 和 exitScope() 来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。\n类型检查(typer)\n类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。\n类型系统\n编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。\n以下是一个简单的类型检查器示例:\nclass TypeCheckerVisitor : public ASTVisitor {\npublic:\n std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override {\n auto leftType = visit(node->left); // 检查左操作数的类型\n auto rightType = visit(node->right); // 检查右操作数的类型\n\n // 检查操作数的类型是否匹配\n if (!leftType->equals(rightType)) {\n throw std::runtime_error(\"Type mismatch in binary expression.\");\n }\n\n // 返回表达式的类型\n return leftType;\n }\n\n std::shared_ptr visitVariableDecl(VariableDeclNode *node) override {\n // 检查变量声明的类型是否正确\n auto varType = node->type;\n if (!isValidType(varType)) {\n throw std::runtime_error(\"Invalid type for variable.\");\n }\n\n return varType;\n }\n\n // 其他类型检查逻辑...\n};\n\n在该类型检查器中,我们遍历 AST 中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。\n类型转换\n\n由于 MiniDecaf 只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。\n\n类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。\nclass TypeCheckerVisitor : public ASTVisitor {\npublic:\n std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override {\n auto leftType = visit(node->left);\n auto rightType = visit(node->right);\n\n // 进行隐式类型转换\n if (leftType->isInteger() && rightType->isFloat()) {\n leftType = floatType(); // 将整数提升为浮点数\n } else if (leftType->isFloat() && rightType->isInteger()) {\n rightType = floatType();\n }\n\n if (!leftType->equals(rightType)) {\n throw std::runtime_error(\"Type mismatch in binary expression.\");\n }\n\n return leftType;\n }\n};\n\n通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。\n预期目标\n完成符号解析和类型检查后,编译器应该能够:\n\n通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用;\n检查所有的操作数和运算符的类型是否匹配;\n报告语义错误,如未定义的符号、类型不匹配等。\n\n通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。\n前端参考资料\n\nAntlr 官方文档\nMiniDecaf 教程\n编译原理经典书籍 Dragon Book\n\n前端预期目标\n完成这部分内容后,你的编译器应该能够通过 Antlr 生成词法分析器和语法分析器,能够将 MiniDecaf 程序解析为抽象语法树(AST),并完成对 MiniDecaf 程序的语义分析。\n"},"docs/contest/midend/midend.html":{"url":"docs/contest/midend/midend.html","title":"中端设计","keywords":"","body":"中端介绍\n中端的设计包括:中间表示的设计、中端代码生成和中端优化。\n中间表示\n前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(Intermediate Representation, IR)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的AST转换为中端代码。\n什么是中间表示?\n中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。\n由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下:\n\n缩小调试范围,通过把 AST 到汇编的步骤一分为二。如果目标代码有误,通过检查 IR 是否正确就可以知道:是AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。\n适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。\n\n便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。\n\n\n例如以下是一个IR代码的例子:\n_main:\n _T1 = 0\n _T2 = 100\n _T3 = 0\n_L0:\n _T4 = _T1 \n从这个IR例子中,我们可以看到,相对于c语言,IR中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在IR中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,IR中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。\n我们将在中间表示设计中介绍IR设计时候需要考虑的地方和并列举一些实例。\n中间代码生成\n前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。\n如以下是一个简单的例子:\nint main(){\n int a = 2;\n int b = 0;\n if(a)\n b = 1;\n else\n b = -1;\n return b;\n}\n\n生成的AST可能如下:\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(2)\n |- (children[1]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"b\")\n |- (init) IntLiteral(0)\n |- (children[2]) If\n |- (cond) Identifier(\"a\")\n |- (children[0]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) IntLiteral(1)\n |- (children[1]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) UnaryOp(NEG)\n |- (expr) IntLiteral(1)\n |- (children[3]) Return\n |- (expr) Identifier(\"b\")\n你需要通过遍历AST的节点来将其转换为IR。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。\n例如上述代码转化为IR后可能如下:\n_main:\n _T0 = 2 # 代表a = 2\n _T1 = 0 # 代表b = 0\n bnez _T0, _L0, _L1 # 如果a != 0,跳转到_L0,否则跳转到_L1\n_L0:\n _T2 = 1 # 代表b = 1\n jump _L2 # 跳转到_L2,跳过else块\n_L1:\n _T2 = -1 # 代表b = -1\n jump _L2 # 跳转到_L2\n_L2:\n ret _T2\n\n我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。\n中端优化\n中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。\n一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的 IR 代码:\n_T1 = 5\n_T2 = _T1 + 6\n_T3 = _T2 + 7\n_T4 = _T3 + 8\n_T5 = _T4 + 9\nret _T5\n\n经过常量传播优化后,可以得到:\n_T1 = 5\n_T2 = 11\n_T3 = 18\n_T4 = 26\n_T5 = 35\nret _T5\n\n进一步如果我们进行死代码消除,可以得到:\n\n死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。\n\n_T5 = 35\nret _T5\n\n中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。\n我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如Use-Def链、Def-Use链、可达定义分析等。\n我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。\n中端参考资料\n本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。\n\nGCM & GVM \n\nEngineering A Compiler\n\nLLVM IR\n\nSSA book\n\n\n预期目标\n完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。\n"},"docs/contest/midend/ir.html":{"url":"docs/contest/midend/ir.html","title":"中间表示设计","keywords":"","body":"中间表示设计\n这里我们以一种经典 IR —— 三地址码为例,介绍中间表示的设计。\n三地址码\n三地址码(Three Address Code, TAC)是一种经典的 IR 设计,TAC 看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是 “虚拟寄存器” (也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。\nmain: # main 函数入口标签\n _T0 = 1 # 加载立即数\n _T1 = _T0 # 临时变量赋值操作\n _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1\n _T3 = NEG _T0 # 取负操作 _T3 = -_T0\n return _T2 # 函数返回\n\n以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。下面是另一个IR输出格式的例子:\ni32 main() {\n_B0:\n i32 _T0 = 1\n i32 _T1 = _T0\n i32 _T2 = _T0 + _T1\n i32 _T3 = -_T0\n return i32 _T2\n}\n\n你会发现,这种IR输出格式包含了一些类型信息,也更加易读。\nTAC 指令与汇编指令比较类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。\n我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句?\n\n算术语句:这是计算机最基础的语义。\n二元运算(如加、减、乘、除)\n形式:dst = op src1, src2\n示例:_T2 = ADD _T0, _T1\n\n\n一元运算(如取负、取位反)\n形式:dst = op src\n示例:_T3 = NEG _T0\n\n\n\n\n跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。\n条件跳转语句\n形式:branch cond, label1, label2\n示例:branch _T0, _L1, _L2\n\n\n无条件跳转语句\n形式:jump label\n示例:jump _L0\n\n\n\n\n函数调用语句\n形式:dst = call (func_name, arg1, arg2, ...)\n示例:_T2 = call (foo, _T0, _T1)\n\n\n赋值语句\n形式:dst = src\n示例:_T2 = _T0\n\n\n访存语句\n加载操作:dst = load addr, offset\n示例:_T2 = load _T0, 0\n存储操作:store src, addr, offset\n示例:store _T0, _T1, 0\n\n\n内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的 malloc 不同,主要用于在栈上分配内存)\n形式:dst = alloc size\n示例:_T2 = alloc 40\n\n\n返回语句\n形式:return src\n示例:return _T0\n\n\n\n有了这些语句以后,我们的IR就可以描述源程序的语义了。\n内存数据结构\n中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。\n我们可以为所有指令定义一个基类 Instruction,然后根据不同的指令类型定义不同的子类。\nstruct Instruction {\n Type type;\n};\n\n下面以二元运算指令为例,展示如何定义一个具体的指令类。\n二元运算需要两个操作数,并且会产生一个计算结果。\n而操作数可能是一个立即数,也可能是一个变量。例如以下的情况:\n_T2 = ADD _T0, _T1\n_T3 = ADD _T0, 2\n因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体:\nstruct Operand {\n union{\n int value;\n int reg_id;\n };\n bool is_reg;\n ... ...\n};\n\n我们使用一个 union 来存储操作数的值或者寄存器编号,使用一个 bool 来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要 is_reg 这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。\n有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中Opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器:\nenum Opcode {\n ADD, SUB, MUL, DIV\n};\n\nstruct Binary : public Instruction {\n Opcode opcode; // 操作码\n Operand src1; // 操作数一\n Operand src2; // 操作数二\n Operand dst; // 目标寄存器\n};\n\n一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。\n跳转语句应该怎么定义?这里我们需要引入基本块的概念。\n在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体:\nstruct BasicBlock {\n std::vector instructions;\n std::string label;\n};\n\n基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可:\nstruct Jump : public Instruction {\n BasicBlock *target; // 跳转目标\n};\n\n我们是以函数为单位来组织基本块的,函数定义为如下的结构体:\nstruct Function {\n std::string name;\n std::vector blocks;\n};\n\n整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体:\nstruct Program {\n std::vector functions;\n std::vector globals;\n};\n\n你会发现,我们的程序组织成了一个树状结构,即 Program 包含多个 Function,每个 Function 包含多个 BasicBlock,每个 BasicBlock 包含多条 Instruction。\n一些tips:\n\n你可以在Instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将 Binary 和 Unary 都继承自 Arithmetic,将 Jump 继承自 ControlFlow, Arithmetic 和 ControlFlow 都继承自 Instruction。\n你可以在Instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。\n你完全可以不按照我们给出的这些结构来设计你的 IR,这里有一些参考:\n北大编译实验Koopa IR\nLLVM IR\n\n\n\n静态单赋值(SSA)\n进一步地,你可以实现符合静态单赋值要求的 IR ,静态单赋值的 IR 在编译器中有着广泛的应用,比如 LLVM 的 IR 就是一种静态单赋值的 IR。在静态单赋值的 IR 中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。\n"},"docs/contest/midend/irgen.html":{"url":"docs/contest/midend/irgen.html","title":"中间代码生成","keywords":"","body":"中间代码生成\n介绍\n前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用 Alloca、Load、Store 指令来简单地实现 SSA 形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是SSA)。\n部分处理思路\n整体思路是通过遍历AST的节点,根据节点类型进行相应的处理。推荐先根据AST的遍历顺序写一个框架,再填充具体的处理逻辑。\n由于每个组的AST和IR设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。\n注意:\n\n本部分仅供参考,你需要根据自己设计的AST和IR进行调整。\n在遍历AST的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到IR的Data对象的映射表等。\n\nprogram\n对于program节点,先新建一个IR的Program对象,然后我们只需要再遍历子节点。\n\n如果子节点是function,就新建一个IR的Function对象,再访问该function节点,从而将该函数的前端信息存入Function对象中,最后将其加入到当前Program对象中的functions列表。\n如果子节点是declaration,说明这是一个全局变量,就新建一个Data对象,再访问该declaration节点,从而将该全局变量的前端信息存入Data对象中,最后将其加入到当前Program对象中的global_data列表。\n\nparameter_list\n对于parameter_list节点,可以把前几个寄存器编号分配给参数。\n\n如果是标量参数,要另外在栈上开空间。(这是为了满足 SSA 形式)\n如果是数组参数,则可以直接保存在寄存器中。\n\ndeclaration\n对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足 SSA 形式,哪怕是局部标量,也要用Alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。\n如果有初始化,\n\n对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增Store指令,表示将得到的寄存器的值存入该标量对应的地址。\n对于数组则需要遍历Integer节点,并分别使用Store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。\n\nlvalue\nlvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释)\n\n先通过前端变量到IR的Data对象的映射表,找到该节点所表示的前端变量对应的Data对象。\n如果这是个全局变量,则新增LoadAddr指令,表示加载全局变量的地址,获取对应地址的寄存器\n如果这是个局部变量,则直接通过Data对象获取对应地址的寄存器\n\n\n如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的GetElementPtr指令,表示通过数组基地址和下标获取元素的地址。\n目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。\n如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增Load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。\n什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。\n\n\n\n中场休息\n看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list, declaration, lvalue节点的例子,希望能帮到你。\nint a = 1;\nint foo(int x, int y[]) {\n return x + y[1];\n}\nint main() {\n int b[2][3] = {1, 2, 3, 4, 5, 6};\n return foo(a, b[1]);\n}\n\n生成的AST可能如下:\nProgram\n |- (children[0]) Declaration\n |- (spec) Specifier(TINT)\n |- VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(1)\n |- (children[1]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"foo\")\n |- (params) ParameterList\n |- (children[0]) Parameter\n |- (spec) Specifier(TINT)\n |- (decl) Declarator(Identifier(\"x\"))\n |- (children[1]) Parameter\n |- (spec) Specifier(TINT)\n |- (decl) Declarator(Identifier(\"y\"), ArrayType())\n |- (body) Block\n |- (children[0]) Return\n |- (expr) BinOp(ADD)\n |- (lhs) Identifier(\"x\")\n |- (rhs) ArrayRef\n |- (array) Identifier(\"y\")\n |- (index) IntLiteral(1)\n |- (children[2]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (params) ParameterList # Empty\n |- (body) Block\n |- (children[0]) Declaration\n |- (spec) Specifier(TINT)\n |- (decl) Declarator(Identifier(\"b\"), ArrayType(2, ArrayType(3, TINT)))\n |- (init) InitList\n |- (children[0]) InitList\n |- (children[0]) IntLiteral(1)\n |- (children[1]) IntLiteral(2)\n |- (children[2]) IntLiteral(3)\n |- (children[1]) InitList\n |- (children[0]) IntLiteral(4)\n |- (children[1]) IntLiteral(5)\n |- (children[2]) IntLiteral(6)\n |- (children[1]) Return\n |- (expr) Call\n |- (func) Identifier(\"foo\")\n |- (args) ArgumentList\n |- (children[0]) Identifier(\"a\")\n |- (children[1]) ArrayRef\n |- (array) Identifier(\"b\")\n |- (index) IntLiteral(1)\n上述代码转化为IR后可能如下:\ni32 foo(i32 _T0, i32* _T1) {\n_B0:\n alloca i32* _T2 = 4\n store *(i32* _T2 + 0) = i32 _T0\n load i32 _T3 = *(i32* _T2 + 0)\n i32 _T4 = 1\n i32* _T5 = elementptr: i32* _T1[i32 _T4]\n load i32 _T6 = *(i32* _T5 + 0)\n i32 _T7 = i32 _T3 + i32 _T6\n return i32 _T7\n}\ni32 main() {\n_B0:\n alloca i32[3]* _T0 = 24\n i32 _T1 = 1\n store *(i32[3]* _T0 + 0) = i32 _T1\n i32 _T2 = 2\n store *(i32[3]* _T0 + 4) = i32 _T2\n i32 _T3 = 3\n store *(i32[3]* _T0 + 8) = i32 _T3\n i32 _T4 = 4\n store *(i32[3]* _T0 + 12) = i32 _T4\n i32 _T5 = 5\n store *(i32[3]* _T0 + 16) = i32 _T5\n i32 _T6 = 6\n store *(i32[3]* _T0 + 20) = i32 _T6\n i32* _T7 = LoadAddr $a\n load i32 _T8 = *(i32* _T7 + 0)\n i32 _T9 = 1\n i32* _T10 = elementptr: i32[3]* _T0[i32 _T9]\n i32 _T11 = call foo(i32 _T8, i32* _T10)\n return i32 _T11\n}\n\n在本例中,\n\nfoo函数的参数表示为_T0, _T1。为了满足 SSA 形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_T2来进行。对于y[1],利用下标和getElementptr指令可以得到其地址,然后通过load指令可以得到其值。(getElementptr指令是为了写起来方便快捷;这里你也可以通过基地址_T1和下标1,构造出_T1 + 1 * 4的式子来计算出y[1]的地址)\nmain函数中对于数组b,先使用Alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在LoadAddr指令获取a的地址之后,还要用Load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。\n\nexpression\n访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理:\n\nunary '=' expression,表示赋值表达式。\n对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。\n对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。\n最后新增Store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。\n\n\nconditional,表示条件表达式。\n如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then 和 else 是两个表达式节点,对于if语句,这两个变量是两个语句节点。\n如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。\n\n\n具体示例可以参考短路求值。\n\nif\n\n先给当前函数新增一个基本块true_bb表示if语句的true分支入口。\n如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。\n给当前函数新增一个基本块next_bb表示if之后的基本块。\n分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。\n由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。\n\n\n将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从true_bb跳转到next_bb。\n如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个Jump指令,表示从false_bb跳转到next_bb。\n最后将当前基本块改为next_bb。\n例:\n int main(){\n int a = 2;\n int b = 0;\n if(a)\n b = 1;\n else\n b = -1;\n return b;\n }\n\n 生成的AST可能如下:\n Program\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(2)\n |- (children[1]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"b\")\n |- (init) IntLiteral(0)\n |- (children[2]) If\n |- (cond) Identifier(\"a\")\n |- (children[0]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) IntLiteral(1)\n |- (children[1]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) UnaryOp(NEG)\n |- (expr) IntLiteral(1)\n |- (children[3]) Return\n |- (expr) Identifier(\"b\")\n 上述代码转化为IR后可能如下:\n i32 main() {\n _B0:\n alloca i32* _T0 = 4\n i32 _T1 = 2\n store *(i32* _T0 + 0) = i32 _T1\n alloca i32* _T2 = 4\n i32 _T3 = 0\n store *(i32* _T2 + 0) = i32 _T3\n load i32 _T4 = *(i32* _T0 + 0)\n if i32 _T4 == 0 jump _B2 else jump _B1\n _B1:\n i32 _T5 = 1\n store *(i32* _T2 + 0) = i32 _T5\n jump _B3\n _B2:\n i32 _T6 = 1\n i32 _T7 = -i32 _T6\n store *(i32* _T2 + 0) = i32 _T7\n jump _B3\n _B3:\n load i32 _T8 = *(i32* _T2 + 0)\n return i32 _T8\n }\n\n 在本例中,生成了_B1, _B2, _B3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_B0的结尾是一个Branch指令,_B1, _B2结尾都是Jump指令,表示从true_bb、false_bb跳转到next_bb。\n\n\nwhile\n这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。\n\n给当前函数新增一个基本块body_bb表示while语句的循环体入口。\n给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。\n给当前函数新增一个基本块next_bb表示while之后的基本块。\n开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。\n由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。\n\n\n将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从body_bb跳转到body_cond_bb。\n将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。\n由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。\n\n\n最后将当前基本块改为next_bb。\n例: int main(){\n int a = 0;\n while(a \n 生成的AST可能如下: Program\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(0)\n |- (children[1]) While\n |- (cond) BinaryOp(LT)\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(10)\n |- (body) Block\n |- (children[0]) If\n |- (cond) BinaryOp(EQ)\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(5)\n |- (children[0]) Assign\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(10)\n |- (children[1]) Break\n |- (children[1]) Assign\n |- (lhs) Identifier(\"a\")\n |- (rhs) BinaryOp(ADD)\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(1)\n |- (children[2]) Return\n |- (expr) Identifier(\"a\")\n 上述代码转化为IR后可能如下: i32 main() {\n _B0:\n alloca i32* _T0 = 4\n i32 _T1 = 0\n store *(i32* _T0 + 0) = i32 _T1\n load i32 _T2 = *(i32* _T0 + 0)\n i32 _T3 = 10\n i32 _T4 = i32 _T2 \n 在本例中,_B0的最后是第一个while语句的条件部分,while语句还生成了_B1, _B2, _B3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_B4, _B5两个基本块。多出来的_B6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_B6?提示:如果break;语句后面加上a = 1;语句,IR会如何改变?)\n\n预期目标\n完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成满足 SSA 形式的 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。\n"},"docs/contest/midend/ssa.html":{"url":"docs/contest/midend/ssa.html","title":"静态单赋值","keywords":"","body":"静态单赋值\n\n静态单赋值这一小节参考并改编自北航的编译课程实验文档:\nhttps://buaa-se-compiling.github.io/miniSysY-tutorial/challenge/mem2reg/help.html\n在此表示感谢!\n\n静态单赋值(Static Single Assignment, SSA)是编译器中间表示(IR)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。\n例如,考虑使用 IR 编写程序计算 1 + 2 + 3 的值,一种可能的写法为:\n_T0 = 1\n_T1 = 2\n_T2 = 3\n_T3 = _T0 + _T1\n_T3 = _T3 + _T2\nret _T3\n\n很遗憾,上述程序并不符合 SSA 的要求,因为其中变量 _T3 被赋值了两次。正确的写法应该为:\n_T0 = 1\n_T1 = 2\n_T2 = 3\n_T3 = _T0 + _T1\n_T4 = _T3 + _T2\nret _T4\n\n我们为什么要这样做呢?\n因为 SSA 可以简化每个变量的属性,进而简化编译器的优化过程。\n例如,考虑下面这段伪代码:\ny = 1\ny = 2\nx = y\n\n很显然,其中变量 y 的第一次赋值是不必须的,因为变量 y 被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(Reaching Definition Analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。\n但如果将上述代码变为 SSA 形式:\ny1 = 1\ny2 = 2\nx1 = y2\n\n上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到 x1 的值来自于 y2 这一信息。\n正因如此,许多编译器优化算法都建立在 SSA 的基础之上,例如:死代码消除(dead code elimination)、常量传播(constant propagation)、值域传播(value range propagation)等。\n我们如何实现 SSA 呢?\n例如,考虑使用 IR 编写程序使用循环计算 5 的阶乘。\n按照 C 语言的思路,我们可能给出如下写法:\n_L0:\n _T0 = 0\n _T1 = 1\n _T2 = 2\n _T3 = _T0 + _T1 # int temp = 1\n _T4 = _T0 + _T2 # int i = 2\n _T5 = 5\n_L1:\n _T6 = _T4 \n我们注意到,变量 _T3 和 _T4 由于循环体的存在可能被赋值多次,因此上述写法并不符合 SSA 的要求。\n一种可能的方案是使用 Phi 指令。Phi 指令的语法是 = PHI [, ], [, ] ... 。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。\n由此,我们的程序可以改写为:\n_L0:\n _T0 = 2\n _T1 = 1\n_L1:\n _T2 = PHI [_T0, _L0], [_T6, _L2] # int i = 2\n _T3 = PHI [_T1, _L0], [_T7, _L2] # int temp = 1\n _T4 = 5\n _T5 = _T2 \n由此,上述程序中每一个变量只被赋值了一次,满足了 SSA 的要求。(注意,SSA 仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次)\n另一种可能的方案是使用 Alloca、Load 和 Store 的组合。SSA 要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用 Alloca 指令分配到内存中,之后每次访问变量都通过 Load 或 Store 指令显式地读写内存。使用上述方案编写的程序满足 SSA 的要求,且避免了繁琐地构造 Phi 指令,但频繁地访问内存将导致严重的性能问题。\n有没有更好的解决方案呢?\n有,我们可以将两种方案结合起来。\n在前端生成中间代码时,首先使用第二种方案利用 Alloca、Load、Store 指令快速地构建满足 SSA 要求的代码。\n随后,在上述代码的基础上, 将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入 Phi 指令。\n这一解决方案也被称为 mem2reg 技术。\nmem2reg 使得我们可以在生成中间代码时,使用 Alloc、Load 和 Store 的组合针对局部变量生成符合 SSA 要求的代码。\n举个例子,一种可能的中间代码表示为:\nmain:\n _T0 = alloc 4\n _T1 = alloc 4\n store _T0, 1\n load _T2, _T0\n _T4 = _T2 > 0\n beqz _T4, _L2\n store _T2, 1\n_L1:\n load _T5, _T2\n ret _T5\n_L2:\n _T6 = 0 - 1\n store _T2, _T6\n jump _L1\n\n在此基础上,进行 mem2reg 转化:\nmain:\n _T0 = 1 > 0\n beqz _T0, _L2\n_L1:\n _T2 = phi [1, main], [_T3, _L2]\n ret _T2\n_L2:\n _T3 = 0 - 1\n jump _L1\n\n需要注意的是,所有的 Phi 指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的 Phi 指令的顺序对结果没有影响)。\n在实现 mem2reg 时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。\n\n相关的解释和详细说明可以参考:\n如何构建 SSA 形式的 CFG:https://szp15.com/post/how-to-construct-ssa/\n\n随后,我们需要实现 SSA 构造算法。一种常用的算法是将整个过程分为:插入 phi 函数和变量重命名,两个阶段。\n在第一阶段,记录每个局部变量相关的 Alloc 和 Store 指令,并由此在基本块的开头插入 Phi 指令。\n在第二阶段,遍历所有基本块,对其中局部变量相关的 Alloc,Load 和 Store 指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的 Phi 指令。\n\n相关的解释和详细说明可以参考:\nStatic Single Assignment Book 的 Chapter3:https://pfalcon.github.io/ssabook/latest/\n\n"},"docs/contest/midend/cp.html":{"url":"docs/contest/midend/cp.html","title":"常量传播","keywords":"","body":"常量传播/常量折叠\n常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。\n常量传播通常依赖Use-Def和Def-Use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。\n例如,对于如下代码:\n_main:\n _T0 = 2 \n _T1 = 0 \n _T2 = _T0 + 3 \n _T3 = _T1 + 5 \n _T4 = _T2 * 2 \n _T5 = _T3 - _T1 \n _T6 = _T4 + _T5 \n ret _T6\n经过常量传播/常量折叠优化后,代码变为:\n_main:\n _T0 = 2 \n _T1 = 0 \n _T2 = 5 \n _T3 = 5 \n _T4 = 10 \n _T5 = 5 \n _T6 = 15\n ret _T6\n常量传播/常量折叠的实现\n常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下:\n\n遍历所有语句,找出常量定义,将其全部加入常量表。例如:\n_T0 = 2 \n_T1 = 0 \n_T2 = _T0 + 3\n_T0和_T1的值是常量,将_T0和_T1的值分别存入常量表。\n\n依据Def-Use关系,找出所有用到常量_T0和_T1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_T2的值为5,也是一个常量,将_T2的值加入常量表。\n\n重复上述过程,直到常量表不再增加为止。\n\n\n"},"docs/contest/midend/dce.html":{"url":"docs/contest/midend/dce.html","title":"死代码消除","keywords":"","body":"死代码消除\n死代码消除(Dead code elimination, DCE)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。\n死代码消除通常依赖于Use-Def和Def-Use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。\n这里介绍一种 DCE 的方法(来源于《高级编译器设计与实现》(鲸书)):\n\n首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。\n然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。\n当以上迭代函数稳定不变时,所有未标记的指令都可以认为是Dead Code,可以删除。\n\n具体实现上,可以借助du/ud链来实现:\n\n维护一个set,存储所有必要值的定义指令。\n找出函数所有的必要值,标记这些值的定义指令。\n对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。\n对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。\n重复上一步,直到set不再变化。\n函数中的指令,如果不在set中,就可以认为是Dead Code。\n\n此处举个例子:\n_main:\n _T0 = 1\n _T1 = 2\n _T2 = _T1 + 5\n _T3 = _T0 + 2\n _T4 = _T3 * 5 \n return _T4 # _T4 是必要值\n\n顺着ud链,可以找到 _T4 = _T3 * 5,因此 _T3 也是必要值。继续找到 _T3 = _T0 + 2,因此 _T0 也是必要值。最终 _T0、_T3、_T4 都是必要值,而 _T1、_T2 的定义指令都可以认为是Dead Code。\n因此可以优化为:\n_main:\n _T0 = 1\n _T3 = _T0 + 2\n _T4 = _T3 * 5 \n return _T4\n\n"},"docs/contest/backend.html":{"url":"docs/contest/backend.html","title":"后端设计","keywords":"","body":"后端设计\n编译器后端的主要功能是将中间表示(IR)转换为目标架构的汇编代码,在我们的课程实验中即将TAC翻译为RISC-V汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。\n代码生成\n目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将IR翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。\n指令选择\n对于一条IR指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些IR指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。\n这里举几个例子:\n\n逻辑与和逻辑或。可详见step4。\n函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。\nSSA IR中的Phi指令。通常Phi指令会被翻译为mv指令,但留意多条Phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。\n\n寄存器分配\nIR里通常会假设数量无限的虚拟寄存器(或称作变量),但目标ISA(Instruction Set Architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。\n课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度)\n常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。\n寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spill weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。\n栈帧确定和最终代码生成\n在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。\n在这里我们介绍一种可能的实现方式。我们暂不考虑VLA(variable-length array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为StackObject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如\n\nLoadFromStack t0, obj, offset: 将栈上对象obj偏移offset(立即数)处的内容加载到 t0\nStoreToStack t0, obj, offset:将t0中的内容写入到栈上对象obj偏移offset处\nLoadStackAddr t0, obj, offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0\n\n代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。\n最终我们将以上的这些“指令”展开。例如LoadFromStack可以保守地展开为以下RISC-V指令序列:\nli t0, (some immediate offset)\nadd t0, sp, t0\nld t0, 0(t0)\n\n但大多数时候ld t0, offset(sp)就足够了。需要注意的是StoreToStack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为LoadStackAddr和一条store指令。\n确定栈帧后生成函数的prologue和epilogue,其中主要包括callee-saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g. 必须是8的整数倍)。\n附:函数调用相关\n处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在Iterated Register Coalescing的论文中并没有提及函数调用约定的处理方式,在这里以RISC-V为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个C语言片段:\nint f(int x) {\n // lots of stuff...\n return x;\n}\n\n在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。\nint swap(int x, int y) {\n // ...\n swap(y, x);\n // ...\n}\n\n对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。\n可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。\n具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参)\n\n调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量T1到Tn,然后按照mv Ti, xi的方式将全部xi移入Ti中,接下来再生成mv aj, Ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。\n处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv xi, ai即可。\n\n以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下:\nswap:\n mv x, a0 # 1\n mv y, a1 # 2\n\n # first move phase\n mv _T0, x # 3\n mv _T1, y # 4\n\n # second move phase\n mv a0, _T1 # 5\n mv a1, _T0 # 6\n call swap\n\n在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码:\nswap:\n mv t0, a0\n mv a0, a1\n mv a1, t0\n call swap\n\n这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_T0与a1相干涉(指令4的Use集合、指令3的LiveOut集合包含a1,_T0在指令3的Def集合中),因此_T0不能被分配到a1;同时_T0也与a0相干涉(指令6的Use集合,指令5的LiveOut集合包含_T0,a0在指令5的Def集合中),最终_T0被分配到一个新的寄存器t0。而_T1可以安全地被分配到a1,故指令4被视作无用指令消除。\n在生成函数调用的代码时,除传参外,还需要考虑caller-saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在caller-saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有caller-saved寄存器加入到call指令的Def集合中,剩下的事情交给寄存器分配算法处理。考虑以下C语言片段:\nint getint();\nvoid putint(int);\n\nint main() {\n int x = getint();\n putint(x);\n return x;\n}\n\n在寄存器分配前可能对应如下代码:\nmain:\n # prologue\n\n call getint\n mv x, a0\n\n mv a0, x # ... omitted\n call putint\n\n mv a0, x\n # epilogue\n ret\n\n采用上述方式,x处于call putint的LiveOut集合中,会与全部的caller-saved寄存器相干涉,这样x就会自动被分配到callee-saved寄存器上。经过后续优化可能的最终汇编代码如下:\nmain:\n # prologue\n call getint\n mv s0, a0\n call putint\n mv a0, s0\n # epilogue\n ret\n\n目标架构相关优化\n这里简单地举几个例子。\n\n指令选择相关的窥孔优化\n 此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。\n 例如以下的RISC-V指令序列\n li t0, 0\n bne a0, t0, label1\n\n 可以被替换为bne a0, zero, label1,后续再通过无用指令消除去掉li t0, 0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(RISC-V的I型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。\n 再举一个ARM的例子。ARM的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列\n mov r1, r1, LSL #2\n add r0, r0, r1\n ldr r0, [r0]\n\n 可以被合并为一条指令:\n ldr r0, [r0, r1, LSL #2]\n\n 这种汇编代码模式在数组访问中较为常见。\n\n指令调度\n 指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造DAG,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。\n\n\n"},"REFERENCE.html":{"url":"REFERENCE.html","title":"参考资料","keywords":"","body":"参考资料\n\nWriting a C Compiler: by Nora Sandler\n\nAn Incremental Approach to Compiler Construction : by Abdulaziz Ghuloum\n\nMonkey: The programming language that lives in books\n\nC17 标准草案 N2176(N2176 是 C17 标准正式发布前的最后一版草案,根据 C17 标准的编者之一 Jens Gustedt 的博文,其与 C17 标准相比只有表述上的差异)\n\nRISC-V 手册\n\nRISC-V(非官方)汇编指令用法\n\n\n"}}} \ No newline at end of file +{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["(i","+","./reports/.pdf","./reports/stag",".gitlab","0","0;","1","1.","1.pdf。","10%。","10%,对思考题的回答占","13","1;","2","20%","2023","2024","5","7%","8%","80%","=",">","a[(l+r)/2];","a[],","a[i]","a[i];","a[j]","a[j];","b","branch","branch,当切换到一个新的","break;","c","checkout","ci","ci.yml","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","commit","compiler:","decaf","decaf,我们在新的且更简单的语言规范下复用了","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github),托管至私有仓库的请不要给其他同学任何访问权限。","http://scheme2006.cs.uchicago.edu/11","https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf","int","j","j)","j);","l)","l,","l;","minidecaf","nora","nqcc","p","p)","pdf","prepare.sh","qemu/spik","qsort(a,","qsort(int","r)","r;","return","risc","sandler","stage","stage1","stage5","stage6","stage7","stage7,否则无法获得对应分数。","stage,每个","step","step12)。在这个","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step4)。在这个","step8)。在这个","step。每个","u","u;","v","write","{","}","↩","上实现时,你可以用","下的","个基础关卡,你需要通过它们以拿到一定的分数(35%)。","个步骤(其中","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你将实现常量操作(加减乘除模等)。","中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。","中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。","中你将第一次支持变量声明与赋值。","中你的编译器将支持作用域,以便支持后续的条件和循环。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中描述了如何运行","中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。","中,你将支持全局变量和数组,数组中包括全局数组和局部数组。","为","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评","为实验框架熟悉,不需要修改框架代码)。后续的","为环境配置和框架学习,无需进行编程,不计入成绩。","为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评","了。","从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。","代码编译到","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","会对应于一个","作用域和块语句(step6)。在这个","你做了哪些工作(即你的实验内容)","你的学号","你的学号姓名","全局变量和数组(step10","关于名字由来,由于往年的实验叫","其中,stage0","具有代表性的例子介绍它的整个编译流程。在之前","函数(step9)。在这个","包含多个","参考资料","及触发此次","变量和赋值(step5)。在这个","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","后才能尝试","和","在","备注","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你认为成绩有问题,请及时与助教联系。","学术规范","实现","实验思路指导与问答墙","实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","实验报告中需要包括:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验概述","实验简介","实验起点和基本要求","寄存器分配算法(step13)。在这个","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于每个阶段(stage):","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","常量表达式(step2","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","我们以","我们只接受","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将由易到难完成","我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。","指导书上的思考题","时间安排及补交政策请看实验进度安排。","是一个","是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。","最后一次触发的","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本次实验一共设置","条件和循环(step7","来创建一个新的分支。","格式的实验报告。你需要将报告放在仓库的","每个","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","测试中看到。","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","的","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的实验报告需要放在","的帐号名后,助教会给每个人建立一个私有的仓库,url","的成绩并替代期末考试对应权重)。","的成绩并替代期末考试对应权重)。注意,你需要在完成","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的文档都将以如下形式组织:首先我们会介绍当前","的编译器框架,所以今年的实验就叫","相关资源","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","程序代码编译成","第一个编译器(step0","简要叙述,为了完成这个","组织如下:","组织实验,各个","组织文档,每个","编译实验","编译实验分为多个","评分会以每个","评分标准","诚信守则","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的完整编译器,能够把","语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。","语言相同。","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。","课程问答墙","路径,比如","这个","里的实验报告为准,详见补交政策。","重新设计”的过程,一步步实现从简单到复杂的","需要用到的知识点,其次我们会以一个当前",",将作业提交到那个仓库即可。"],"docs/misc/schedule.html":["(k","+","0","0的思考题请与stage","1","10","1一起提交。","2","24:00","3","4","5","6","7","branch","ci","ci,这不会对你的提交/补交产生影响。","k","pipelin","push","retri","stage","不需要你编写任何代码,stage","中你的代码会得到不一致的结果,请联系助教。","作用域(占比:7%)","假设","全局变量和数组(占比:7%)","函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。","函数(占比:7%)","到远端仓库的时间。并且,你也可以随意地","反复运行","变量(占比:7%)","天内这个","如果在多次","实验进度安排","寄存器分配与代码优化(占比:8%)","常量表达式(占比:7%)","必做部分:","截止","所有截止时间均为所标日期的23:59:59(utc+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。","控制语句(占比:7%)","提交/补交时间是该","日","是某个","更具体来讲是创建","更新的时间,这几乎等于你","最后一次触发","熟悉框架和基础知识","的","的截止时间;","的时间,而不是","的时间;","第三周周日(9.29):stage","第八周周日(11.3):stage","第六周周日(10.20):stage","第十五周周日(12.22):stage","第十六周周日(12.29):stage","第十周周日(11.17):stage","第十四周周日(12.15):stage","第四周周日(10.6):stage","补交政策","选做实验不接受补交。","选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。","选做部分:","(占比:0%)"],"docs/step0/errate.html":["./requirements.txt","1","1.pdf。","3.9","_t1","a:","a:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块","a:可以通过本地测试或者通过","a:如果你安装了多版本的","basic","block","branch","bruteregalloc","cfg,可以参见","ci","encount","error:","git.tsinghua","instal","m","multi_nesting.c","non","pass。","pdf","pip","print","python3.9","python,使用","q:","q:使用","q:如何提交课程报告?","q:我怎样才能知道我的提交通过了所有测试用例?","r","reports/.pdf,比如","reports/stag","return","stage","stage1","step7","utils.error.illegalargumentexception:","上,如","下的","中,由","代码框架","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","分支)。","前就被释放了,后端会尝试到栈中寻找","勘误表","命令无法正确安装依赖?","命令未必会对应","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","如果关于报告提交有任何问题,请及时联系助教。","安装依赖。","对应","并且不会找到,出现报错:","所对应的寄存器在","最新的","格式提交到","法调试,发现是","版本的包管理器。请尝试使用","生成的以下中间代码无法成功生成目标代码。","的实验报告需要放在","的注释里给出的提示。","经过使用","结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","自己的仓库中,放在仓库根目录下的","请将实验报告以","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","这个"],"docs/ref/riscv.html":["!x;","%","(godbolt.org)来快速获得一个riscv指令的实现","(ratified)中的volum","//","1,","24","25","8会被编译器优化为5","a0,a0","assembl","bits)中的任何一个,在编译选项中写上","chapter","elf","explor","foo(int","foo.c","foo.s(记得加","foo:","gcc","handbook","instruct","int","list","mabi=ilp32","march=rv32im","mod(int","o","o2","o2(减少不必要的指令生成),翻译一条指令看看效果。","o3","programmer’","ret","return","risc","riscv64","rv32/64g","s","seqz","set","specif","specification。","unknown","unprivileg","v","v(32","v官方资料","v指令","v相关内容补充","x","x)","x,","y)","y;","{","}","不出意外你会获得如下结果:","不建议阅读,太过冗长,这对于编译知识提升非常有限。","你可以使用compil","你可以通过","参考资料","在左边输入以下例子","在线编译器","如何快速查询risc","如果你时间充足,你可以阅读:","官方","或者","把右边的编译器选为risc","本地编译器","比如5","汇编","注意:此处不要直接写一个可以计算得到结果的式子","编译如下程序来了解如何翻译逻辑非运算符到","请下载isa","选项):"],"docs/step0/intro.html":["#","192.168.1.1,端口为","2024000001@192.168.1.1","2024000001,服务器","2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。","223","223,则命令为:","23.04","3.11.4","ip","p","port","python","ssh","ubuntu","username@ip","v","vscode","为了安全起见,服务器仅可通过校内网络访问。","也是可以使用ssh远程写代码的,参考这里。","假如你的账号为","免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。","地址为","如何使用","如果你使用我们提供的服务器,你可以直接来看risc","实验环境简介","建议配置","提示:","服务器环境如下:","服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。","注意:","登陆服务器?","的工具链使用和运行实验框架。","禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。"],"docs/step0/riscv_env.html":["#","#includ","$","$。例如,让你运行","$,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。","&&","./a.out","./a.out:","./configur","/usr/","/usr/local/bin/pk,要么每次都用完整路径。","1.","10.1.0","2.","20.04","2020.08.2","32","64",">","a.out","a.out。但","a.out,具体操作如下","appl","apt","bash","bbl","binari","brew","c","cd","clone","compilation)。","compiler:","cp","darwin.tar.gz,不过还需要通过","darwin.tar.gz,只用里面的","devic","dtc","dtc):","echo","elf","error\"","exec","execut","file:","format","gcc","gcc,用来生成","gcc,这种","git","github","hello","homebrew","https://blog.csdn.net/daybreak222/article/details/87968078","https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git","instal","int","isa","isa=rv32g","linux","linux/mac","linux用户","linux,spik","list=riscv32","loader","ls","lts;","mabi=ilp32","mac","maco","mac),window","mac),可以尝试自行根据","main()","make","march=rv32im","minidecaf","o3","os用户,假设你已经将spike加入环境变量,将pk加入系统目录","path=$path:/path/to/riscv","pk","pk。","pk,不过那是","prebuilt","prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to","prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc","prefix=/usr/loc","printf(\"hello","qemu","qemu/spik","qemu。","qemu,即","r","risc","riscv","riscv/riscv","riscv32","riscv64","shell","shell,那加到","sifiv","sim","spike","spike(会自动安装","store,搜索ubuntu,选择ubuntu20.04.","tap","target","test.c","tree","ubuntu","ubuntu,","ubuntu14/*","ubuntu14/改名为","ubuntu,你需要自己编译出可用的用户态","unknown","user","user。","v","version","virtualbox","vmware","win10","window","world!","world!\"输出。","world!\\n\");","wsl","wsl,或者运行一个虚拟机。","wsl,通过","x86","x86_64","x(然后回车)。如果开头没有","x,那你最终敲到终端里的是","zsh","{","}","~/.bashrc使修改生效。","~/.zshrc","↩","一样,见上一节。如果不设置每次使用","下运行(qemu","下面描述了","下面是环境配置指南,请阅读自己的系统的那一小节。","不一样。","不支持","之类的","也提供了","从这里下载我们预编译的二进制程序包","从这里下载预编译好的","仓库链接。","代码”的操作被称为交叉编译(cross","位的支持存在问题。","位的,而我们需要","位的,请使用我们预编译的","你的编译器","你还可以开一个","使用","创建","却编译出","参考","及更高的版本,你可以直接使用","可以参考这个教程进行升级,升级时注意备份。","可执行文件","可执行文件。","可执行文件,所以我们的","可执行文件,最后用","可执行文件;","可执行程序。","后面risc","命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。","和","和常说的","因此我们不能直接使用有些系统自带的","在第","在编译实验中可能需要的用法。","备注","如果使用的是低版本的","如果出于某些原因必须使用低版本的","如果在机器上直接安装了较低版本的","如果没有安装qemu模拟器,则会出现如下错误:\"bash:","安装","安装依赖","安装工具链","对应","工具链。","工具链并解压。","工具链并解压到你喜欢的目录。","工具链,由","常说的","应用商店可以很容易地安装","应该输出一个可执行文件","建议使用","建议各位同学使用我们提供的","开头的","往往也可以调用qemu环境正确执行,并得到\"hello","必做:risc","必做:测试你是否正确配置好了环境","我们提供了预编译的","我们的编译器只生成","我们需要下载安装","或","或自行编译。","打开microsoft","执行","把","把export","按照下面的","提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:","文件,","文件,gcc","文件,其中写入如下内容","时都要输入完整路径。不过对于","是","是否成功安装,详见risc","机器上、把","机器上,却要编译到","来安装用户态的","检查是否安装成功","模拟器和一个简易内核","模拟器,不过只能在","步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:","汇编","汇编变成","汇编,然后再使用","注意这里的","注意:安装了qemu之后,直接运行","测试你","源文件","然后从这里上下载我们预编译的二进制程序包","版本,如果你是其他平台(如m1","环境配置","生成的可执行程序只能在你本机(x86)上运行。","用户环境配置指南","用户环境配置指南安装","由于","的","的一种参考方法。","的同学可以使用","的工具链使用。","的工具链使用总结了","的源码进行编译,附","的用户态模式,我们使用","等","等模拟器来运行","等,然后参考下面","编译","编译到","而是用","而这里的","虚拟机,使用","虽然也运行在我们的","表示接下来是一条命令,记得运行的时候去掉","计算机无法运行。","设置","设置环境变量不管用,要么把它放到系统目录","请注意我们提供的预编译","跑在","输出","运行在我们的","这种“gcc","通过","配置。","配置文件里)","需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令sourc","预编译的较新版本的工具链对","首先把文件夹riscv64","(可选)设置环境变量,方法与","(如果你不用系统自带的",",设置“开发者模式”以及“启用子系统功能”。"],"docs/step0/riscv.html":["\"gcc:","\"input.c\"","\"rv32i2p0_m2p0\"","\"unprivileg","#","$","$?","(sifiv","(sysv),",".",".align",".attribut",".file",".globl",".ident",".option",".section",".size",".text",".text.startup,\"ax\",@progbit",".type","/usr/local/bin/pk","0","1","1.","16","1。","2","2020.04.0)","233","233;}","32","64","8.3.0","8.3.0\"","@function","a.out","a.out:","a.out,获取返回码","a0,233","arch,","bbl","bit","cat","echo","elf","executable,","file","gcc","input.","input.c","input.s,最高优化等级(否则输出的汇编会很冗长)","int","isa=rv32g","li","linked,","loader","lsb","m","mabi=ilp32","main","main(){return","main,","main:","march=rv32im","minidecaf","mip","nopic","o3","pk","qemu","ret","return","risc","riscv32","riscv64","riscv64,","rv32i","rv32im","s","spec\"。","spike","stack_align,","static","strip","ucb","unaligned_access,","unknown","v","v,","version","↩","【linux","【maco","下面汇总一下。","不过事实上,很多时候看","以后就能编译到","但我们加上参数","位汇编","位汇编。","位的","使用时记得加这个参数,否则默认编译到","到可执行文件","到汇编","另外这里也有(非官方的)指令用法说明。","可执行文件","基本指令集,并包含","工具使用","工具,在环境配置中已经叙述了安装和使用方法。","我们假设你已经正确设置好了环境变量,否则运行","我们提供预先编译好的","或","所","扩展(乘除法)。本实验中我们不需要其他扩展。","指令集文档在这里,我们只需要其中的","指令集架构,编译实验要求你的编译器把","时请用完整路径。","是","是一个很像","替换为你自己的","模拟器运行","汇编。","注意,我们虽然是用的工具前缀是","用户】qemu","用户】spike","的","的内容","的内容,就是上面汇编输出的简化版本","的工具链使用","的编译结果","的返回码,也就是我们","的那个值","相关信息","程序编译到","编译","编译到","表示使用","路径","输出的汇编比看什么文档都有用。","输出结果,能看到是","运行","这里的"],"docs/step0/env.html":["$","./requirements.txt","3","3.9",">",">=","add","altern","apt","argpars","argparse:","hints,如果你习惯在","instal","linux","m","miniconda","os)中进行开发。助教不推荐直接在","pip","pli","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考","ppa:deadsnakes/ppa","pylanc","python","python3","python,可以通过","r","repositori","requirements.txt,你可以通过","sudo","type","ubuntu,debain","unix","updat","version","vscode","window","wsl","下的","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","中搭建开发环境。你需要安装或保证如下软件满足我们的要求:","中进行开发的话同时推荐使用","以处理命令行参数。官方文档中提供了它的教程。","依赖包","关于操作系统,助教推荐使用","助教在项目中使用","助教强烈建议使用类似","包列表文件","可以尝试如下命令:","命令修改","命令安装下文提到的","和","如果你没有使用虚拟环境,可以参考下面的指导。linux","实验框架环境配置","或","或venv的系统管理不同的python环境。你可以方便地使用miniconda安装最新的python版本,安装好之后使用pip安装依赖即可。","框架使用了","框架本身在","框架里已经提供了需要的","此外,如果安装了多个版本的","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的","版本高于此版本。","版本:","环境下安装","环境(如","由于","的文档。","的新特性,请保证你所使用的","的跨平台性,理论上也可以在","等),当然你也可以在类","系统环境(mac","这一插件。"],"docs/step0/testing.html":["$","......","./check.sh","clone","found","gcc","git","git.tsinghua","git.tsinghua.edu.cn","git。","merg","minidecaf","ok","parallel","qemu","readm","recurs","remot","ssh","step1","step1,实验框架给出的初始代码可以通过","step_until=1","submodul","testcases/step1/multi_digit.c","testcases/step1/newlines.c","updat","。","公钥添加到你的","其他测试点,太长省略","创建了一个仓库,其中","助教已经为每位同学在","大致如下。","按照本文档的前几节(riscv","按照测例的","接下来我们会用到","来手动更新。","注意:由于子模块使用","测试运行的","环境配置和实验框架环境配置)配置好实验环境。","由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用","的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里","的所有测例。","的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块","账号上,才能将其克隆下来。","输出结果","运行实验框架","运行测试","配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。","链接,你需要将你的"],"docs/step1/arch.html":["\"(\"","\")\"","\";\"","\"=\"","\"_tk\"","\"if\"","\"unprivileg","#","(body)","(condition)","(i)","(lh)","(rh)","(tac)","*","+","/","1","1;","4","=","_t0","_t0,","_t1","_t1。","_t2","_t3","add","addi","address","arm...)和源语言(minidecaf,","assign_stmt","ast","ast),接下来通过扫描","ast省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。","ast)。比如,对于下面这一段简单的minidecaf","ast,对每个语句和表达式逐一进行类型检查,并在","backend/asm.pi","backend/dataflow/","backend/reg/","backend/riscv/","c,","calle","caller","code,","frontend/ast/。","frontend/lexer/;语法分析程序位于","frontend/parser/;语法树位于","frontend/scope/。","frontend/tacgen/tacgen.py。","frontend/typecheck/namer.py;类型检查位于","frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于","identifier(\"i\")","if_stmt","int","int(1)","ir","ir)是介于语法树和汇编代码之间的一种程序表示。","ir,只需要写","java...)。由于不同源语言的","lex","m","main","main:","minidecaf","mip","mips,","mips)规定的物理寄存器,其数目有限;而","n","neg","ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了","represent","return","risc","rules)。","save","saved。","spec\",另外这里也有(非官方的)指令用法说明。下图给出了","step","step1","step10","step11","step5","step7","subroutineinfo.pi","syntax","tac","tac)看起来很像汇编,与汇编最大的区别在于","tree,","typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typ","utils/tac/;中间代码生成位于","v","v,","v,risc","x86,","yacc","|","——","一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。","三地址码","三地址码定义位于","三地址码(three","三地址码;在编译器后端中,将三地址码转换为","上进行类型标注。对于静态类型(static","不同,直接从","个","个模块。","个汇编生成器,只有","个源语言和","个目标代码生成模块。如果有了","个目标指令集,需要写","中","中。","中只需要考虑常量的计算,直到","中的临时变量均用","中的变/常量可以直接对应。","中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。","中间代码指令。需要特别提出的是,risc","中间代码生成","中;寄存器分配在","临时变量赋值操作","事实上,由于","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出","代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑","代码的格式,只要方便自己调试即可。例如,你也可以将","代码:","以上给出了一份","以及","作详细介绍。","使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的","做详细介绍。","关于数据流分析的细节,我们将在","其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:","具体来说,在这一阶段中,我们需要对","函数入口标签","函数入口),以及作为分支语句的跳转目标(tac","函数返回","分析等理论知识在实践中的应用。","到","到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查","到汇编翻译有误。","加法操作","加载立即数","取负操作","只支持","可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。","可以适配不同指令集(risc","和","在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2)","在对","在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。","如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","它对应的完整语法分析树可能长这样:","完成符号表构建后,我们就可以自顶向下地遍历","寄存器分配","将","并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。","我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的","所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在","所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。","才需要考虑符号表构建。","才需要考虑,届时再介绍其处理方法)。如上例所示,tac","指令不支持","指令与汇编指令类似,每条","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。","指令集架构,编译实验要求所实现的编译器把","指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。","接下来,将对我们所使用的中间代码","控制流、数据流分析和寄存器分配","控制流和数据流分析","操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于","数据流图定义及优化在","数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。","数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在","数组类型,其值和地址都可以用一个32位整数存储,故","是一个与","是否正确就可以知道:是","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","此部分对应框架源码位置:","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编指令来翻译","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","生成中间代码","生成器和","生成汇编的话,为了支持","由于源语言(minidecaf)和目标语言(risc","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的形式表示(k表示变量的编号)。","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","目标平台汇编代码生成","目标平台汇编代码生成在","示例程序。请注意","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序由标签和指令构成:","程序编译到","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","类似的","类型和","类型检查","类型检查:各语句和表达式是否类型正确。","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器结构","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析程序位于","详细讨论。","语义分析","语法分析树的建立可以说明所输入的","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","课程实验的目标平台为","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输出成","还是","进行两遍扫描,分别完成以下的检查:","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","通过把","针对"],"docs/step1/provided.html":["6","step1","step2","step3","step5","step6","step7","step8","下面我们列出了所有框架中已经完成的特性:","中我们提供了","中我们提供了加法和逻辑或操作运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——单层作用域的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","已提供的语法特性","已经提供的语法特性","循环实现,同学们可以参考着完成","循环的实现。","此外,我们提供了","语句的实现。","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。"],"docs/step1/intro.html":["./reports/.pdf,比如","./reports/stag","0)完成通过例子学习一节末尾的思考题。","1","1.pdf。整个","branch","main","pdf","return","stage","step","step1:一个仅有","下的","准备报告。","函数","只需要提交一份报告,你不需要单独为","实验指导","实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在","实验要求","我们只接受","格式的实验报告,你需要将报告放在仓库的","的","的实验报告需要放在","的报告中(注意不是","这个"],"docs/step1/example.html":["\"\"\"","\";\"代表分号被解析以后会转化为","#","&","(body)","(children[0])","(expr)","(ident)","(ret_t)","...",".global",".text","10;","2024","2024;","2024,就是将立即数","32","8","9]+\"","9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码:",":","=",">","_t0","`t_interger.__doc__`","a0","a0,","a1","access","ast","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","backend","backend/asm.pi","backend/riscv","block","def","ebnf","emitfunc","example.c","frontend.parser.parser(位于","frontend/ast/tree.pi","frontend/ast/tree.py:unary、utils/tac/tacop.py:tacunaryop、utils/riscv.py:rvunaryop","frontend/ast/visitor.pi","frontend/lexer/lex.py。ast","frontend/lexer/ply_lexer.pi","frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于","frontend/parser/ply_parser.py,而词法的定义位于","frontend/tacgen/tacgen.pi","frontend/typecheck/namer.pi","function","function(p[1],","function,同时代码中的p[0]","gcc","identifi","identifier(\"main\")","input","int","int(t.value)","integer(2024)","intliteral(2024)","lalr","lalr(1)","lbrace","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","li","lparen","main","main()","main(){","main.pi","main.py,它通过调用","main:","minidecaf","mv","namer.transform","namer.transform,","p[0]","p[2],","p[6])","p_function_def(p):","p_program(p):","pars","parser","parser.pars","parser.parse(...)","pass","pass。下面,我们将指出,step1","ply),其使用方法与","program","program(function(...)),这里program、function类的定义在frontend/ast/tree.py文件中,你可以看到function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。","program(p[1])","program(p[1])代表了构建ast的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0]","program(p[1])最后就会变为p[0]","python","r\"[0","rbrace","readcod","ret","return","risc","riscvasmemitter.pi","riscvsubroutineemitt","rparen","selectinstr","semi","step1","step_pars","t","t.valu","t0","t0,","t_integer(t):","tac","tacfuncemitt","tacinstr.pi","tint","token","token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0","type","typer","typer.pi","typer.transform","utils/riscv.pi","utils/tac","v","visitor","yacc","yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。","yacc(简称","{","|","}","。","三种不同的一元运算符类型?","下实现了各种","下面我们将通过一个简单的","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么?","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中会先调用","中你只需要关注","中只有","中我们是如何实现符号表构建","中的","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中通过一遍","中间代码生成","中,a0","为什么框架定义了","为立即数","主函数入口符号","之后,这些","也就是","代码段","以及","会被","位","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位立即数到指定寄存器中,其中","你应该就能看到类似的输出。(记得自己写一个example.c)","函数代码。如果你增加了","函数入口标签","函数是否存在。(frontend/typecheck/namer.py:37)","函数)分别使用一个","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","分配一个临时变量","到","加载到寄存器","加载立即数","即可。具体来说","向","和","和类型检查","在","在frontend/lexer/lex.py文件中你可以看到每个","在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有pars","在实际操作中,我们遍历","在实验框架中,我们使用的是","在我们的实验要求中,返回值均是单个","在我们的框架中,从","在词法分析","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","声明全局符号","处理,并被转化为如下形式的一个","如何将一个立即数装载到指定寄存器中?","如何设置返回值?","字节流","实现,称为","实验框架中关于目标代码生成的文件主要集中","寄存器中","寄存器中,然后在后面加上一条","将返回值放到","尝试运行","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","库来实现这一点。yacc","当中,我们只需要提取","当程序读入程序的字符流之后,它首先会被","形式的语法规范生成相应","得到的","快速入门","思考题","我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program","我们的框架现在对于","所用的方法就是的","所需的底层类。其中","扫描完成","指令。","指令即可完成函数返回的工作。","指令来支持加载一个","指令选择相应的","指令,则可能需要在","指令,同学们可以在必要时修改或增加","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过","提供了","文件夹下,step1","文件夹中的","方法对每个函数内的","方法生成每个函数的","是","是一个根据","是如何定义的,每个token都会以t_开头。如t_semi","有一些差异。","本步骤主要涉及的语法为主函数和","来生成对应的","根据优化等级不同会有数百个不等的","模式。这个文件里除了类型tacgen之外还有一个辅助类tacfuncemitter,它用于处理产生tac代码过程中一些相对底层的细节。在本框架中,tac","模式遍历","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","汇编。","汇编代码,并通过","汇编代码:","流:","测试用例,一起走过它的编译全流程:","源文件","生成。和语义分析一样,这部分也使用了","生成的","的","的一个纯","的主函数编译为","的主函数编译全流程:","的使用,结合我们的文档,来快速上手","的入门,但这不是必须的。","的实现,大家可以直接运行通过","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的转换经过了","的输出。","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","目录下实现了生成","目标代码生成","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","程序的入口点在","程序的生成以函数为单位,对每个函数(step1","类中增加生成相应指令的代码。","类来通过","综上所述,我们上述中间代码翻译成如下","编译实验框架,我们给大家的代码框架中已经包含所有","节点的定义位于","表示寄存器名,","表示立即数值,如:li","词法分析","语义分析","语义分析步骤中,我们要遍历","语句没有返回值的情况是在哪一步处理的?报的是什么错?","语句返回的常量,为之分配一个临时变量,再生成相应的","语句,完成本步骤之后,你的编译器将支持将一个仅有","语法分析","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","读内容","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","转化为如下形式的","返回","返回指令即可。不难看出,本例对应的三地址码为:","这一函数里","这个token。而对于一些复杂的","这部分的工作流程如下:","通过例子学习","通过例子学习,一个仅有","都是继承"],"docs/step1/visitor.html":["\"declaration\"]]):","#","'''","'('","')'","';'","'int'","'return'","'{'","'}'","...","2;",":",">","accept","accept(self,","ast","block,","child","child.accept(self,","child,直接调用","class","ctx)","ctx:","def","df","dfs(func)","dfs(node:","elif","express","frontend/ast/node.pi","frontend/ast/tree.pi","frontend/ast/visitor.pi","func","func:","function","function(node):","function):","function,","identifi","identifier(main)","identifier,","int","int(2)","integ","isinst","isinstance(child,","isinstance(node,","main()","minidecaf","namer(visitor[scopestack,","node","node):","node,","node.functions:","node:","none","none:","none]):","notimplementederror","oop","optional[u]:","param_list","param_list,","program","program(listnode[union[\"function\",","program):","program,","program:","rais","return","return(statement):","return):","return,","scan","scopestack)","self.visitother(that,","someth","statement","statement(node):","step1","t)","t):","that:","tint(typeliteral):","type","type(int)","type,","typeliteral(node):","u]):","u],","v.visitfunction(self,","v.visitprogram(self,","v:","visit","visitfunction(self,","visitor","visitor(protocol[t,","visitor[t,","visitor。此外,为了便于实现,我们不使用","visitother(self,","visitprogram(self,","visitxxx","{","}","上的结点类型。","之后,如果我们想要编写一种遍历","代码为示例:","代码转化为了","以这个文法对应的一段","假设在经过了词法分析和语法分析后,我们已经成功将","函数","函数抽象到一个接口里,各种具体的","函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,df","函数根据被遍历的结点类型不同,执行不同的遍历逻辑。","函数,并把不同的","即可。","在框架中,我们有以下的","基础的设计模式都在","如果想要访问某个子结点","它会对应如下的","成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:","我们用缩进表示树结构,其中","我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。visitor","所有","整型","来判断结点类型,而是调用结点自身的一个","来实现这个接口。","模式就是常见的一种。","模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个","模式速成","模式,并以框架中的代码为示例进行介绍。","的文法:","的方法,可以直接继承","的根结点类型","程序,ast","等均为","类型基类","类,并在对应结点的","结构。现在,我们想要编写代码对","结构:","结点的基类","结点类实现(进行了适当的简略):","编译器的构造中会使用到很多设计模式,visitor","让我们考虑","语句","语句基类","课程中覆盖,这里重提一下","进行扫描。很容易写出递归的","遍历。","遍历:","那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的"],"docs/step1/spec.html":["'('","')'","';'","'int'","'int')","'return'","'{'","'}'","(extend",")","1.1","1.2","1.3","1]","1],补码表示。","2^31","2^31,","32",":","::=","[","[0,","antlr","barku","ebnf","express","form)","function","identifi","identifier),可以用字符串字面量表示终结符(如","int","integ","main","minidecaf","naur","program","program),大写字母打头的是终结符(如","statement","step1","type","x","x+","y","y。","y,并且","|","一或多次,?","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号","也有很多写法,另一种是用尖括号表示非终结符","位有符号整数类型,范围","函数,编译器应当报错。","后面会用到:(","后,可以用负号配合正整数常量来间接表示负整数常量。","和","如果输入程序没有","小写字母打头的是非终结符(如","就可以被替换成新的非终结符","很容易通过增加新的非终结符,去掉这些符号。例如","我们采用","每个步骤结尾的","的","的记号:","等。","类型具体指","编译器应当只接受","范围内的整数常量,","表示分组,|","表示选择,*","规范","记号书写语法规范,采用类似","语义规范","语法规范","零或一次。","零或多次,+"],"docs/step2/intro.html":["!。","'|'!'|'~')","('","./reports/.pdf,比如","./reports/stag","0","1","1.pdf。整个","1。","1,!!2","2",":","==","branch","c","ci","ci/cd","commit","express","git.tsinghua","id","int","integ","int;关于逻辑非,只有","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","pdf","stage","step","step2","step2:一元运算符","unari","|","~","~0","×","√","、按位取反","一栏的","三个操作的语义和","上打开你的项目,在界面的右侧,clone","下的","中,我们要给整数常量增加一元运算:取负","以及常识相同,例如","以及逻辑非","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。stage","变成:","只需要提交一份报告,你不需要单独为","在","如何检查我是否通过自动测试(ci)","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","或者","指导书上的思考题","按钮的下方,commit","改进你的编译器,支持本节引入的新特性,通过相关测试。","是否通过","格式的实验报告,你需要将报告放在仓库的","测试。","的图标,代表当前","的图标,或者在网页左侧选择","的定义,从","的实验报告需要放在","的左侧,可以看到一个画圈的","的思考题。","的报告还需要额外包含","稍微一提,关于按位取反,我们使用补码存储","简要叙述,为了完成这个","表示逻辑假,其他的","语法上,我们需要修改","这个","都是逻辑真。"],"docs/step2/example.html":["!,","\"","\"\"\"","#","&","(body)","(children[0])","(expr)","(ident)","(op)","(ret_t)",",","...","0","0))","0,","1","10,我们将这类一元运算操作都称为","1;这样的语句,但是不会见到return","1。在生成过程中,首先使用","1),主要讲讲和_t1","1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","2147483647",":","=",">","[]","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","__init__(self,","_t0","_t0,","_t1","_t1翻译过程发生了什么。","`p_`","accept","add","analyz","analyzer.accept(cfg)","asm.transform","ast","astfunc","astfunc.body.accept(self,","binari","block","bruteregalloc(emitter)","builder","builder.buildfrom(pair[0])","cfg","cfg:","cfgbuilder()","class","count","def","docstr","else:","emitt","emitter)","emitter.emitend()","emitter.selectinstr(func)","example.c","expr","express","expression):","flow","frontend/ast/tree.pi","frontend/ast/visitor.pi","frontend/lexer/lex.pi","frontend/parser/ply_parser.pi","func","funcname,","function","function:","grammar","graph(cfg)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectinstr),指令选择将中端tac代码转换为riscv汇编代码,selectinstr函数中,我们也采用了visitor模式遍历指令序列,","here.","identifier(\"main\")","if;这样的语句,因为","input","instr.dst,","instr.operand))","instr.valu","instr.value))","instr:","intliteral(1)","labelmanag","labelmanager()","labelmanager)","lex","lexer","li","livenessanalyzer()","load","main","main.pi","minidecaf","minu","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitload(expr.value)","need","neg","node","none:","op","op:","oper","operand:","operand,运算类型","operator,","p[0]","p[1]","p[1]则是minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的","p[2])","p_expression_precedence(p):","p_unary_expression(p):","pair","pair[1])","paramet","pars","parser","pli","primari","prog.funcs:","prog:","program","program)","program.functions().items():","program:","python","real","reg_alloc","reg_alloc.accept(cfg,","return","return)","risc","riscv","riscv.callersaved)","riscvasmemitter(riscv.allocatableregs,","rule:","rvunaryop.neg,","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","self.seq.append(riscv.unary(op,","step1","step2","step9,","stmt.expr.accept(self,","str])","t0","t0,","t0,这里的逻辑或需要将t1、t0进行或操作后,再判断其值是否为1。为什么这一步不在产生","t1","t1,","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","tac","tacfunc","tacfuncemitt","tacfuncemitter(funclabel(funcname),","tacfuncs.append(emitter.visitend())","tacgen.transform","tacprog(tacfuncs)","tacprog):","tacprog:","tacunaryop.neg:","temp","temp:","tint","token","transform(self,","tree.unary(unaryop.neg,","unari","unary(expression):","unary)","unary,其中p[0]代表的就是第一个unary,","unary,那么","union[int,","us","v","value))","value:","visitblock","visitload(self,","visitor","visitreturn(self,","visitunary(self,","x","x同样也是表达式,其会生成一个值。而带返回值的","y","{","|","||","}[instr.op]","~","~!这三个单目运算符和从","~a,","。","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","一元运算","下面的描述中一定要记得区分accept和直接对于mv.visitxxx的调用,前者是在遍历ast时调用的,后者是在","与","中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。","中加入相应的分派函数。","中实现的整型常量越界检查。","中的","中间代码生成","中间表达指令为例,risc","中,定义的新","中,我们只需为","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","什么是","代码没有特别需要修改的地方。","以","会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入","你可以试试,将rvunaryop.neg中名字改为rvunaryop.xxx看看输出的汇编代码会发生什么变化吧。","你可能会觉得,这一步不就是将","先看visitunary函数:","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。","再看visitreturn函数,我们这里的return是一个带返回值函数的return","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数会对不同类型的","函数对于在block中的所有子节点调用了child.accept(self,","函数的","函数,visitblock","到","到一个虚拟寄存器","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到此为止我们得到的tac代码如下:","参数","又对于","变为","含义","和","因此我们希望生成的","因此,测例可以翻译成如下的中间代码:","在","在语法树上对应父","如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里","子两个结点,父结点为取负操作,子结点为常量","它将在后续的","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义,以便lexer可以解析","实现细节","实验指导","实验指导。本实验指导使用的例子为:","对参数取负","并不是一个会产生值的表达式)。","并在","应当变为如下形式:","开头以被","开始,语法树上出现了各种运算操作结点。在生成","怎么从","怎么从tac到汇编代码","思考题","总结","成员","我们先忽略livenessanalyzer和control","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:","我们按照上一节划分的编译器阶段,分阶段给出","我们能发现","指令","指令。","指令与其对应,因此上述中间代码可以翻译为如下的","指令来完成翻译工作。以","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","按照上文说的,","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","提示:发生越界的一步计算是","操作数","时","时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。","时,遇到的子节点是","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","树,transform","模式有所了解,或者假设你已经知道在遍历","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","汇编中有","汇编:","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","现在尝试运行","现在我们开始正式遍历","由于现在","的","的处理。","的形式提供。","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","的?","目标代码生成","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","相比于step","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","程序。","程序,我们将tacgen.transform代码贴了一些在这里:","等符号都可以作为一元运算符出现,比如!x,","类中调用的。并且希望大家一定要对着代码看。","继续看上述例子,我们先关注只有","节点","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","范围内的非负整数,使得运算过程中发生越界。","表达式,只使用","识别。","词法分析","词法语法分析","语义分析","语义计算中被用到。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语句需要一个值,我们可以理解为带返回值的","语法分析","语法分析器直接产生的实际上是一棵语法分析树,而构建","请注意,tac","调用不同的visit","调用了","输入,输出汇编代码。","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步是","这个数字是一个表达式,","这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样的奇怪的","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里将中端的tacunaryop.neg翻译为了后端的rvunaryop.neg,在后端输出汇编时,我们直接将rvunaryop.neg转换为小写字符串取了11位以后的字符,直接输出为neg(参考unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在rvunaryop中增加对应的同名的enum字段。","这里进入了tacfuncemitter.visitload:","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","里加入新的","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","需要以","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的","首先,我们应该把",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将",":"],"docs/step2/spec.html":["!","'('","')'","';'","'int'","'return'","'{'","'|'!'|'~')","'}'","(","('","0","0)。","0;当操作数等于","1","1)","1。","1(待我们加上四则运算后)。","2.1","2.2","2.3","2.4","2.5","2147483647","2147483648,但可以写成",":","behavior),即对程序的行为无任何限制。","c/c++","express","function","identifi","integ","minidecaf","program","statement","step","step2","token。它被看成是一个取负符号、后面是它的绝对值。","type","unari","|","~","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","中,负数字面量不被整体作为一个","例如","对于含有未定义行为的","引入的运算符也都适用。","当且仅当其对应的二进制位是","当操作数不等于","所以我们无法用字面量表示","整数运算越界是未定义行为(undefin","时,其结果为","时,逻辑非运算符","是未定义行为。这一条规则对于后续","每个步骤结尾的","灰色部分表示相对上一节的修改。","的结果为","的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是","的结果是其操作数的相反数。","程序,在启用优化选项编译时,编译器可能产生意料之外的结果。","规范","语义规范","语法规范","运算符"],"docs/step3/intro.html":["%","'('","')","')'","'|'~'|'!')","(","('","('*'|'/'|'%')","('+'|'",")。","*、整除","+、减","./reports/.pdf,比如","./reports/stag","/、模","1","1+2*(4/2+1)","1.pdf。整个","3","7。",":","==","addit","branch","c","c17","ci","ci/cd","commit","express","expression,变成","git.tsinghua","id","integ","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","multipl","pdf","primari","stage","step","step3","step3:加减乘除模","unari","|","×","√","、乘","一栏的","上打开你的项目,在界面的右侧,clone","下的","以及常识相同,例如","以及括号","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。stage","只需要提交一份报告,你不需要单独为","和","在","如何检查我是否通过自动测试(ci)","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要增加的是:加","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","或者","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","指导书上的思考题","按钮的下方,commit","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","是否通过","标准草案保持一致","格式的实验报告,你需要将报告放在仓库的","测试。","的图标,代表当前","的图标,或者在网页左侧选择","的实验报告需要放在","的左侧,可以看到一个画圈的","的思考题。","的报告还需要额外包含","简要叙述,为了完成这个","语法上我们继续修改","这个"],"docs/step3/example.html":["#includ","/","0;","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","1","1+3","2","3","32","64","=","_t0","_t0,","_t1","_t2","add","arm)中和","b","b);","binari","identifi","int","kind","lexer","lexer(或","lhs,右操作数","li","main()","name","op","parser)一些信息,最经典的例子是","printf(\"%d\\n\",","problem”。","qemu","return","rhs,运算类型","risc","riscv","step2","step2。","step3","t0,","t0,t1","t1","t1,","t2,","token","v","x86","{","}","“typedef","不知道这点(parser","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","中间代码生成","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","二元运算","但有时,可能需要后续阶段告诉","作用","参数","右操作数;","同","含义","和","因此,测例可以翻译成如下的中间代码:","在","实验指导","对有兴趣的同学:虽然","将两个参数相加","左操作数","左操作数;","思考题","总结","意义不同,但","成员","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","或","才知道),所以它们都会用同样的","指令","指令来完成翻译工作。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","本实验指导使用的例子为:","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","的","目标代码生成","目标代码生成步骤的关键点与","相同,针对中间代码指令,选择合适的","节点","表示。","词法语法分析","语义分析","请注意,tac","通过例子学习","里面的"],"docs/step3/precedence.html":["'('","')","')'","'|'~'|'!')","('","('*'|'/'|'%')","('+'|'","(1","(2","(add","(sub","*","+","2","2)","3)","3))","3))(前序表示),不能解析成mul","3),不能解析成sub","3应该解析成sub","3应该解析成语法树add",":","express","integ","mul","sub","|","之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:","优先级和结合性","优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1","但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习c或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:","当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。","我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。","把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。","指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了c语言操作符的优先级和结合性,因为我们的minidecaf语言是c语言的一个子集,所以这张表格也足够我们的语言使用了。","操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:","是左结合的,所以表达式1","结合性是一个操作符的性质,例如"],"docs/step3/spec.html":["%","'('","')","')'","';'","'int'","'return'","'{'","'|'~'|'!')","'}'","('","('*'|'/'|'%')","('+'|'","(a/b)*b","(a=1)+(a=a+1);","*","+","/","0","0,则其行为都是未定义的。当","3.1","3.2","3.3","3.4","3.5",":","a%b","a=0;","addit","a。","b","behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。","express","function","identifi","int","integ","multipl","primari","program","statement","step3","type","unari","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不为","之后","二元操作符","例如:执行","应该等于","时,表达式","每个步骤结尾的","灰色部分表示相对上一节的修改。","的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。","的结果是操作数的乘积。","的结果是操作数的和。","的结果是第一个操作数减去第二个操作数所得的差。","的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为","的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符","规范","语义规范","语法规范","除非特别声明,子表达式求值顺序是未规定行为(unspecifi"],"docs/step4/intro.html":["!=","&&","&&、逻辑或","'&&'","'||'","('=='|'!=')","('|'>'|'|'>=')","./reports/.pdf,比如","./reports/stag","1","1.pdf。整个","1=2","1)。","4",":","==,",">,","addit","branch","c","ci","ci/cd","commit","equal","express","git.tsinghua","id","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","logical_and","logical_or","pdf","relat","stage","step","step4","step4:比较和逻辑表达式","|","||","×","√","一栏的","上打开你的项目,在界面的右侧,clone","下的","中逻辑运算符","为","以及常识相同,例如","但特别注意,c","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。stage","只需要提交一份报告,你不需要单独为","和","在","如何检查我是否通过自动测试(ci)","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要增加的是:","或者","指导书上的思考题","按钮的下方,commit","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","是否通过","是逻辑真(int","有短路现象,我们不要求。","格式的实验报告,你需要将报告放在仓库的","比较大小和相等的二元操作:、、>=,","测试。","的图标,代表当前","的图标,或者在网页左侧选择","的实验报告需要放在","的左侧,可以看到一个画圈的","的思考题。","的报告还需要额外包含","简要叙述,为了完成这个","这个","逻辑与"],"docs/step4/example.html":["&&","1","2",";","=","_t0","_t0,","_t1","_t2","c","d,","d;","gcc","ir","land","li","lor","lt","minidecaf","risc","s1;","s2;","slt","snez","stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️","step","step2。","step3","step4","sub","t0,","t0,t1","t0结果,成立为1,失败为0","t1","t1,","t2,","t3,t1,t2","t3,t3","v","zero,","||","中引入的二元运算节点中进行修改即可。","中引入的运算均为二元运算,在","中间代码生成","中,我们对于短路求值未做要求,但在包括","参数","可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出","同","含义","和","因此,测例可以翻译成如下的中间代码:","在","实验指导","对应的不使用跳转的汇编。","思考题","总结","恭喜你!到目前为止,你已经成功实现了一个基于","指令","指令来完成翻译工作。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令都是位运算指令,不是逻辑运算指令。","有短路现象,我们的实现中不要求大家考虑它们的短路性质。","本","本实验指导使用的例子为:","本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。","汇编","汇编中的","注意","目标代码生成","目标代码生成步骤的关键点与","相同,针对中间代码指令,选择合适的","给出","词法语法分析","语义分析","语言中,逻辑运算符","语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?","语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个","请注意,tac","通过例子学习","逻辑表达式会麻烦一点,因为","针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","需要特别注意的是,在"],"docs/step4/spec.html":["!=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","&&","'&&'","'('","')","')'","';'","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('=='|'!=')","('|'>'|'|'>=')","(0","0","0。","0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为","1","1。","1,当不满足时结果为","1,那么判断是否有","1;否则其结果为","2”。","2,否则判断是否有","3.5,即其操作数的求值顺序是未指定行为。","4.1","4.2","4.3","4.4","4.5",":","==(等于)和","addit","equal","express","function","identifi","integ","logical_and","logical_or","multipl","primari","program","relat","statement","step4","type","unari","|","||","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","依然遵循语义规范","关系操作符","关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如","其优先级的设定会导致其含义在某些时候可能会反直观,例如,0","判等操作符","和","小于","当操作数有一个非","当操作数都非","换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。","时,逻辑与操作符","时,逻辑或操作符","每个步骤结尾的","灰色部分表示相对上一节的修改。","的含义与","的结果为","的运算结果为","相同,即“如果","规范","语义规范","语法规范","逻辑操作符","(小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为"],"docs/step5/intro.html":["'('","')'","';'","'='","'return'","'{'","'}'","('='","./reports/.pdf,比如","./reports/stag","2","2.pdf。注意报告的标题是","2下,你可以通过git","2创建一个新的分支并继承当前分支的修改。","5。",":","assign","b","branch","checkout","declar","express","expression)?","expression?","function","identifi","integ","logical_or","main","pdf","primari","stage","statement","statement*","step","step5:局部变量和赋值","type","|","下的","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","函数内部可以包含多条语句和声明了。","变量的使用(读取/赋值)","变量的声明","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","栈帧","格式的实验报告,你需要将报告放在仓库的","此外,我们的","的实验报告需要放在","的改动如下:","的概念,并介绍它的布局。","简要叙述,为了完成这个","而不是","语法上,step5","请将你的作业放置在分支stage","这一步我们终于要增加变量了,包括:","这个"],"docs/step5/example.html":["\"a\"","#","#includ","+",".global",".text","0;","0;定义的,g(a)中的a是上一行的let","16","1;","2024","2024;","2;","2下,你可以通过git","2作业放置在分支stage","2创建一个新的分支并继承当前分支的修改。","3","32","3;","4","4;","4,即可得到","5","5;","=","_t0","_t0。例如,测例中直接用返回","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t0,此时","_t1","_t1,","_t2","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","a0,","accept:根据每个函数的","add","addi","allocforloc:每一条指令进行寄存器分配。","allocregfor:根据活跃变量信息决定为当前","assign","ast","b","backend/reg/bruteregalloc.pi","basicblock(基本块)内的指令进行寄存器分配。","binari","bind:将一个","c","calcul","calculate()","calculate();","checkout","d","declar","dfg(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。","e","e;","epilogue。epilogu","epilogue,将","e)。假设我们的处理器只有","f(a);","f(a);。","fn","fp","fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。","fp,此时","frontend/scop","frontend/symbol","frontend/symbol/varsymbol.pi","g(a);","identifi","ident,初始表达式","init_expr","int","li","localalloc:根据活跃变量信息对一个","main","main()","main:","minidecaf","mv","printf(\"%d\\n\",","prologue。prologu","prologue,将","reg0","reg0,","reg1","reg1,","result","result);","result;","ret","return","risc","rust","sat","scope","scope.pi","sp","sp,并恢复","stage","step11","step5","step6","step9","symbol.pi","t0","t0,","t0,t1","t1","t1,","tac","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","tint","unbind:将一个","v","valu","var_t,标识符","x","x;","y","y;","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","{","}","一个例子","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个通用寄存器,在这种情况下,我们无法将","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中间代码生成","中,主要有以下几个函数:","中,变量符号的定义里有该变量对应的","中,我们会将左值的范围进一步包括数组元素。","中,然后再把","临时变量对应起来。","临时变量成员。","临时变量的赋值","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为符号类的基类,varsymbol.pi","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","介绍,在当前的步骤不需要考虑)。","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","代替了返回变量","代码(你不需要精确了解它的含义,大致理解即可):","位整数,因此,我们可以把","保存在寄存器中,e","保存在栈帧中,因此需要分配","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","其中f(a)中的a是上一行的let","函数中定义名为","函数中所有出现过的变量符号即可。","函数作用域对应的单张符号表即可。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数执行","函数的栈帧,并且集中于临时变量的存储和加载。","函数调用","函数,将返回地址压入栈中。","函数,直到","到","加载到临时变量","参数","变量声明","可以在符号表中找到(我们在扫描","同","名称","含义","和","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在实验框架中已经给出寄存器分配算法的代码,集中在","在扫描到","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在这个示例中,我们在","型,而","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","如果","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节的栈帧空间。sp","完备问题(可以从","实验指导","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","寄存器中,请写出一段","对应到框架代码上:","对应的临时变量。每当在","对应的符号。符号","对应的结点时报错。","对象,用以维护","局部变量和","已经成为了变量","思考题","总结","成员","我们使用","我们假定当前栈帧的栈顶地址存储在","我们首先来看本节指导用例所对应的中间代码:","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","指令","指令来翻译中间表示里的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令(例如","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","整型","无","无法找到,因此编译器需要在扫描到","时能快速找到","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","本实验指导使用的例子为:","本节指导用例对应如下","标识符(用于表示变量名)","栈帧","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","汇编中","汇编代码,将栈帧空间扩大","汇编代码:","的“替身”。每次需要用到变量","的值。因此,为了在后续使用变量","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,然后将返回地址弹出栈中,跳转到返回地址。","的全局变量,同时在","的地址。","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","目录下为符号的实现。其中","目录下为符号表的实现。其中","目标代码生成","符号表总是和作用域相关的。例如,在","简单的启发式寄存器分配算法","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类型","类来处理它。","结点时,会依次检查该操作的两个操作数","节点","节点来表示它,给出的参考定义如下(框架中已经提供):","节点里,也可以单独设置一类节点继承","表示将","计算完成后,calcul","词法语法分析","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","语义分析","语言中的基本类型只有","语言中,我们可以在全局作用域中定义名为","请将你的整个stage","请注意","请注意,tac","请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到","貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp","赋值运算","这个临时变量,在符号表中存储","这个符号时,应当为该符号设置一个成员,存储","这条语句后已经为其定义),而","这条语句时,中间代码先把立即数","通过例子学习","那么在扫描到加法操作的","里的临时变量也是","针对局部变量定义和赋值操作,我们需要设计","针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。","需要注意的是,由于我们目前只支持一个"],"docs/step5/spec.html":["'&&'","'('","')","')'","';'","'='","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('|'>'|'|'>=')","+","0。","1;","1;,这样一条声明在语义上等价于","5.1","5.10","5.11","5.2","5.3","5.4","5.5","5.6","5.7","5.8","5.9",":","=","a;","addit","assign","declar","equal","express","expression)?","expression?","function","identifi","int","integ","logical_and","logical_or","lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在","main","main。","multipl","primari","program","relat","return","statement","statement*","step5","type","unari","|","}","一个函数中可以有任意多条","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","中,a","例如,int","函数执行至","即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。","变量的初始化表达式指定了变量的初始值。","同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。","在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。","在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。","对未声明的变量的使用是错误。","就","局部变量的名字可以为","当","时,应终止执行并返回","来说,这一点其实几乎已经被语法保证,因为其","每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。","每个步骤结尾的","没有被初始化的(局部)变量的值是不确定的。","灰色部分表示相对上一节的修改。","的左操作数必须是一个可修改的左值(modifi","的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。","规范","语义规范","语句。","语法规范","赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。","赋值运算"],"docs/step6/intro.html":["'('","')'","';'","'return'","'{'","'}'","./reports/.pdf,比如","./reports/stag","3","3.pdf。注意报告的标题是","6。",":","ast","block_item","block_item*","branch","compound_stat","declar","express","function","identifi","pdf","stage","statement","step","step6","step6:作用域和块语句","type","|","下的","中出现的每个变量名分别对应那个变量。","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","出现在代码不同地方可能标识完全不同的变量。","因此,变量名不能唯一标识变量了,同一个变量名","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","当然,如果变量在使用前还是必须先被声明。","我们只接受","我们要增加块语句的支持。","我们需要在符号表构建的过程中,确定","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","简要叙述,为了完成这个","而不是","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语法上改动不大","这个","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","随之而来一个问题是:不同变量可以重名了。"],"docs/step6/example.html":["#","(a","/","1","1;","2","2;","3","3;","4","4;","6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义","=","_t0","_t1","_t2","_t3","_t4","_t5","ast","backend/dataflow/cfg.pi","backend/reg/bruteregalloc.pi","block","break/continu","cfg","children","class","ctx)是单一的作用域。到了","frontend/scope/","int","main","main()","main(){","main:","main(可忽略)","minidecaf","namer","namer(visitor[scope,","namer(visitor[yourtype,","namer/typ","none])","none]),其中","return","scope.lookup","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","stage","step","step5","step6","tac","transform","typer","visitblock","visitfunct","x","x;","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","yourtyp","{","}","下。class","不需要新增新的中间代码指令。","中添加基本块是否可达的判断。在寄存器分配算法","中的","中的对应结点来实现。另外,别忘了循环本身也是一个作用域!","中的每一个","中间代码生成","中,namer/typ","中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。","中,我们只维护了","为","为止。由于在栈顶作用域对应的符号表中不存在变量符号","之前","也需要如上改动。","从","代码框架需要同学们对寄存器分配相关的","代码的控制流图。int","代码:","作用域中定义的","作用域定义的","作用域栈","作用域里的","入栈。然后在新的","全局作用域(栈底)","函数","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数作用域里定义的变量","函数对应的作用域中,可以找到变量符号","函数时,开启一个局部作用域,在扫描","函数里定义了变量","则对应着内层代码块定义的变量","变量","变量。","只在内部大括号括起的作用域内生效。","后续","后续如果你选做“全局变量”部分,可以在","含义","和","在","子语句列表","实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑","实现提示","实验指导","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应着","就是指","局部作用域","局部作用域(栈顶)","应改为","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用","思考题","成员","我们定义了另一个变量","指令。","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","方法中先将全局作用域加入栈底,再往上才是","时定义变量符号","时,从栈顶作用域符号表查找","时,你需要一个机制来检查","时,定义了另一个变量","时,我们需要分析","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_t0","是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在","显然,两个代码块里的变量","最后,扫描语句","本实验指导使用的例子为:","本步骤中无须新增新的","的","的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(scope","的全局唯一的作用域可以被当作“函数作用域使用”,在","的内容进行细微修改。具体来说,需要在","的函数作用域。","的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。","目标代码生成","空","符号表","节点","节点来表示它,给出的参考定义如下:","让我们来看看示例所对应的","词法语法分析","语义分析","语句块","语句是否在一个循环内。这可以通过修改","请务必注意上表中的两个变量","请画出下面","这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:","通过例子学习","遍历时的上下文信息(参数","针对块语句,我们需要设计",",看她们是否需要换成新函数。"],"docs/step6/dataflow.html":["*","1,也就是说","2","3","4","=","_t0","_t1","_t1}","_t2","_t2,","_t3","_t3}","analysis),或者称为“活跃变量分析”。","b","block)和控制流图(control","branch","branch、beqz(条件为假时跳转)、bnez(条件为真时跳转)或者","branch、condbranch","b,则图中包含从","call","condbranch","def","flow","graph)是用于进行上述分析的数据结构。","label","livein","livein(succ(b))。","livein、liveout","livein、liveout。","liveout","liveout(b)","liveus","return","spill","tac","{_t0,","{_t0}","{_t1}","{_t2,","“控制流图”","一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。","一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。","一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念,","上面例子对应的控制流图如下:","下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:","下面的例子中,代码中不同的基本块被标以不同的颜色:","中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。","为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:","也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。","从编译器中端出来的中间代码中,我们对","代码","以下讲述数据流分析的内容中,所有的","其中","划分基本块。","到栈上)。","和","因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。","在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本","在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:","在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。","在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。","块之前就要具有的了)。","基于上面三个特点,已经求出基本块的","基本块","基本块是指一段这样的代码序列:","基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:","基本块(basic","如果当前基本块以","对应结点到","对应结点的有向边。对于以","建立基本块之间的连接关系。","当遇到","当遇到一个","我们需要先引入下面四种针对基本块的集合:","或者","执行完之后,有可能跳转到另一个基本块","指令为条件跳转指令,branch","指令为跳转指令。","控制流图","控制流图是一个有向图:它以基本块作为结点,如果一个基本块","数据流分析","整个操作序列扫描完毕后,我们就成功建立了所有基本块。","是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。","有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:","有以下三种特点:","条边)。","标记而且存在跳转语句跳转到这个行号时。","标记,即不能跳转到基本块中间。","根据这个方程,我们可以通过迭代更新的办法求出每个基本块的","根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要","每个节点的出度都是","活跃变量和活跃变量方程","活跃变量集合","由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(live","由于每个结点只含有一个语句,因此其","由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其","空集","等跳转语句时。","等跳转语句(但可以包含","结尾,则不需要加入新的边。","结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。","结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共","编译优化的基础是数据流分析。","获得了每个基本块的","该方程说的是一个基本块的","语句不给任何变量定值,load","语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的","语句则会给对应变量定值)。","语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以","语句的","语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。","语句)。","这个方程的直观意义是:","除入口语句外基本块中不含任何的","除出口语句外基本块中不含任何的","集合。如果我们把基本块内所有","集合中去掉","集合以后的部分。","集合以后,我们需要进一步地计算基本块内每个","集合就是源操作数对应的所有变量。","集合是","集合是其所有后继基本块的","集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。","集合是在这个基本块内被定值的所有变量。所谓的定值","集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出","集合的变量加上","集合的并集,而且","集合,以下是求解的伪代码:","集合:一个基本块的","集合:在离开基本块出口的时候是活跃的那些变量。","集合:在进入基本块入口之前必须是活跃的那些变量。","集要么是空集,要么只含有一个元素。","(definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:stor"],"docs/step6/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('|'>'|'|'>=')","+","1","1;","5.3)对于同一个标识符,在同一个作用域中至多有一个声明。","5.4)使用不在当前开作用域中的变量名是不合法的。","5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。","6.1","6.2","6.3","6.4",":","=","addit","assign","block_item","block_item*","compound_stat","condit","declar","equal","express","expression)?","function","identifi","int","integ","logical_and","logical_or","multipl","primari","program","relat","statement","step6","type","unari","{","|","}","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a","根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。","每个步骤结尾的","灰色部分表示相对上一节的修改。","的值是不确定的。","规范","语义规范","语法规范","(更新"],"docs/step7/intro.html":["'('","')'","':'","';'","'='","'?'","'if'","'return'","('else'","./reports/.pdf,比如","./reports/stag","4","4.pdf。整个","7",":","assign","branch","c","condit","express","expression?","expression)。","identifi","logical_or","pdf","stage","statement","statement)?","step","step7","step7:","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","我们要支持条件语句,包括","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","条件表达式","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","简要叙述,为了完成这个","表达式","语句和条件表达式(又称三元/三目表达式,ternari","语句的语义和","语法上的改动是:","语言相同,注意条件表达式优先级只比赋值高。","这个"],"docs/step7/example.html":["#","(a","(x)","0","0;","0,跳转到","1","1;","2","2);","2;","2;,则对应的","2;,否则执行","2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。","3","3;","3;。因此,我们设置了两个跳转标签","4",":","=","?","_l1","_l1:","_l2","_l2:","_l2,分别表示","_lk","_t0","_t0,","_t0。如果","_t1","_t2","_t3","a;","ast","b","beq","beqz","bison","c=0;","c=0;}","cond,真分支","conflict","d=0;","d=0;}","d=0;,到底是","d=0;?","else(dangl","else)","if(a)","if(b)","if。","if;","int","j","jmp","jump","label","main","main()","main:","minidecaf","otherwis","parser","reduc","return","risc","shift","step1","step6","step7","step7:","step8","t0","t0,","t1","t1,","tac","then,假分支","v","x","x;","{","{if(b)","}","中目标代码生成主要是指令的选择以及","中第一个","中间代码生成","中,tac","为","为了实现","为了让","为假,那么应当跳转到","为真,那么按顺序执行","了。","从本步骤开始,由于","代码中的标签只有标志","代码中,x","代码可简化为:","代码:","仿照","会返回","作用","例如","函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用","分支","分支。在","分支开始位置和整个","分支条件","分支的代码,并在该分支结束时,用一条","分支语句","分支,所以在递归到子结点时,请先判断子结点是否存在。","分支,那么只需要一个跳转标签即可。例如我们将例子中的","到底和哪一个","参数","同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。","含义","和","和最近的","在实验要求的语义规范中,条件表达式存在短路现象。即:","在这段","处,我们使用一条","如果","如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。","子句也可以不带,但这会导致语法二义性:els","实验指导","对应的临时变量为","当然,如果一条","循环语句还会使用。","思考题","总结","悬吊","成员","我们人为规定:els","我们的实验框架里是如何处理悬吊","指令","指令来执行。如果","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令跳转到","按照这个规定,parser","提供了与中间代码中","无条件跳转到","时,选择没有","本实验指导使用的例子为:","本步骤中语义分析没有特别需要增加的内容,只需要在扫描到","本节主要就是引入了跳转,后面","来表示跳转用标签,以此和函数入口标签区分开来。","标签处","汇编标签","现在让我们来看看示例所对应的","生成过程中,每当扫描到","的","的值为0,则跳转到","的值为真(不等于0),那么应当执行","的声明,risc","的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。","的时候选择shift,从而对悬挂else进行就近匹配。","目标代码生成","看到","程序出现了分支结构,我们需要开始考虑跳转语句了。在","类似的指令:","结合,也就是说上面两种理解中只有前者合法。","结合?","而不是","而看到第二个时只能选择有","能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有","节点","节点来表示它,给出的参考定义如下(框架中已经提供):","节点,还需要类似地实现条件表达式节点。","若","被绑定到","词法语法分析","语义分析","语句不总是有","语句修改为","语句和条件表达式时递归地访问其子结点即可。请注意","语句既可以带","语句时,都需要调用","语句没有","语句的结束位置。如果","语句的结束位置,从而跳过","语句,我们需要设计","语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:","请注意,tac","跳转到","还是","这一节引入的","这个问题被称为","通过例子学习","针对","问题","问题。","问题的?请简要描述。","需要说明的是","默认在",",也就使得"],"docs/step7/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'if'","'int'","'return'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(0)","(1)","0","0,我们会对第三个操作数求值。当第一个操作数的值为","0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于","7.1","7.2","7.3",":",";",";。","a;","addit","assign","block_item","block_item*","compound_stat","condit","declar","else;","else(dangl","else),要求","equal","express","expression)?","expression?","function","identifi","int","integ","logical_and","logical_or","minidecaf","multipl","primari","program","relat","statement","statement)?","step7","type","unari","{","|","}","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不是合法的","不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。","优先和最接近的没有匹配","例如","分支和","分支需要是一个语句(statement)而非声明(declaration)。","分支,就会执行第二个语句,否则整个","匹配。","如果出现悬吊","对于","时,会执行第一个子句;当控制条件等于","时,如果有","时,条件表达式的求值结果为第三个操作数所求得的值。","时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非","条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于","每个步骤结尾的","注意:if","灰色部分表示相对上一节的修改。","的","程序。","等价于","而非","规范","语义规范","语句的执行便已经完成。","语句而言,当控制条件不等于","语法规范"],"docs/step8/intro.html":["'('","')'","';'","'break'","'continue'","'for'","'if'","'return'","'while'","('else'","./reports/.pdf,比如","./reports/stag","4","4.pdf。整个","8",":","branch","break/continu","c","compound_stat","declar","express","expression?","pdf","stage","statement","statement)?","step","step8","step8:循环语句","|","下的","不能出现在循环外。","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","循环语句的语义和","我们只接受","我们要增加对循环语句,以及","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","的支持:","简要叙述,为了完成这个","语言相同,注意检查","这个"],"docs/step8/example.html":["#","(int","0","0;","5","=","_l1:","_l1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到","_l2)是执行","_l3","_l3)处。","_t0","_t0,","_t1","_t2","_t3","_t3,","ast","begin","beginloop_label:开始下一轮迭代","beginloop_label:本轮迭代完成","beginloop_label:本轮迭代完成,条件满足时进行下一次迭代","beqz","bnez","bodi","br","break","break/continu","break_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","cond","cond,","cond,循环体","cond,更新语句","continu","continue_label:continu","false_target,","init,循环条件","int","ir","label","loop","lt","minidecaf","step7","step8","tac","tacfuncemitt","true_target","update,循环体","utils/tacgen/tacgen.pi","vs","不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","中存在双目标分支(标签)的条件分支指令,其形式如下:","中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它","中的","中间代码生成","为了实现所有可能的跳转,对每个","从执行的指令的条数这个角度(label","代码:","你认为中间表示的哪种条件分支指令设计(单目标","其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。","其中,while","初始语句","双目标)更合理?为什么?(言之有理即可)","含义","和","实验指导","将循环语句翻译成","循环作为示例。","循环可以有以下两种翻译方式:","循环可以看作","循环我们都需要定义三个跳转标签:begin,","循环条件","循环的特例,我们选择了","循环要自带一个作用域。在示例里,for","循环语句","循环语句翻译成","思考题","成员","我们目前的","指令。不过为了实现循环语句,需要仔细地考虑如何将","无","有许多可行的翻译方法,例如","本实验指导使用的例子为:","本步骤中没有需要新增的","本步骤语义分析阶段的处理方式和","标签。","标签和","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签的维护。","标签(示例中的","标签,这样才能确定每一条","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于循环语句可以嵌套,所以","的","的分支跳转指令。由于","目标代码生成","程序。因此,在符号表构建阶段,扫描到","第一种(即实验指导中的翻译方式):","第二种:","类里实现了维护","结点时,不要忘记开启一个局部作用域。","结点时,若当前不处于任何循环内,则报错。","节点","节点来表示它,给出的参考定义如下:","让我们先来看看示例对应的","词法语法分析","语义分析","语句","语句。","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句时应当跳转到的位置。","语句生成过程中需要动态维护","语句的实现已经在框架中给出,同学们可以参考并实现","语句相类似,但是请额外注意以下两点:","语句跳转到何处。因此,在","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句,我们需要设计","语句,那么应当跳转到此处,执行循环之后的指令。","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","跳到这","这也是合法的","通过例子学习","里的","针对循环语句和"],"docs/step8/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(i=0;","(int","0。","1。","8.1","8.2","8.3","8.4","8.5","8.7","8.8","8.9",":","addit","assign","block_item","block_item*","break","compound_stat","condit","continu","ctrl","ctrl,i=i+1","declar","equal","express","expression)?","expression?","function","i;","i=0;;i=i+1)","i=0;i","i=0;i。","i=1;","identifi","init","init、ctrl","init、ctrl、post","init,i","int","integ","logical_and","logical_or","multipl","post","post。","primari","program","relat","return","statement","statement)?","step8","type","unari","{","|","}","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","中,i=0","例如","例如,for","即是控制表达式,其求值在循环体的每次执行之前。post","和","和循环体)。","对于","循环、while","循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于","循环括号中的三个表达式/声明自左向右依次为","循环的","循环的控制表达式的求值在循环体的每次执行之前。","循环而言:如果","循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果","循环语句的作用域(包含","执行一条","方便起见,我们称","是","是一个声明,其声明发生在控制表达式的第一次求值之前;如果","是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl","是一条声明,则其所声明的变量所属的作用域是整个","是合法的代码片段。","有两种循环语句:for","每个步骤结尾的","灰色部分表示相对上一节的修改。","的求值在循环体的每次执行之后。","等价于","等价于将其替换为一个非零常数,比如","规范","语义规范","语句和","语句所在的最小的循环语句的循环体的末尾。","语句所在的最小的循环语句的执行。","语句要么出现在循环体里,要么其就是循环体。","语句,意味着将程序的执行跳转至该条","语句,意味着终止该条","语法规范","都可以被省略。省略"],"docs/step9/intro.html":["'('","')'","';')","'|'~'|'!')","('","(','","(compound_stat","(express","(type","./reports/.pdf,比如","./reports/stag","5","5.pdf。注意报告的标题是","9。",":","branch","expression)*)?","expression_list","function","function*","identifi","identifier)*)?","int","parameter_list","pdf","postfix","primari","program","stage","step","step9","step9:函数","type","unari","void","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","开始,我们要支持多函数了。","我们只接受","我们还需要支持函数调用:","我们需要支持函数的声明和定义:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","简要叙述,为了完成这个","而不是","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","返回值实现。","返回类型,这可以通过忽略函数的","这个"],"docs/step9/example.html":["#","+","...","...)",".global",".text","1","1;","2","2);","2中对于后端翻译的介绍和step","32","5","52(sp)","56","5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。","9","=","_t0","_t0)","_t0,","_t1","_t1,","_t2","_t3","a0","a0,","a1","a1,","a7","add","addi","ai,","argument_list","ast","b","bodi","c","call","calle","caller","caller/calle","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。","end","epilogu","foo","foo(_t2,","foo(t1,","frontend/symbol/funcsymbol.pi","func","func(1,","func(int","func:","func_exit","func_exit:","function","gcc","ident","ident,参数列表","int","int)从左到右存放在","int)放在","ir。","j","label(t0,","label,传入的实参为t0、t1等","li","lw","main","main()","main:","main_exit","main_exit:","mv","param","paramet","params,函数体","prologu","ra","ra,","ra是一个cal","ret","return","return_type,函数名","risc","save","saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前cal","saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。","saved寄存器。","saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。)","saved寄存器。如果某个临时变量存放在calle","saved寄存器与临时变量的绑定关系。你可以用subemitter.emitstoretostack和unbind来达到上述效果。","saved寄存器中且活跃的临时变量,然后解除所有cal","saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如calle","saved寄存器中的临时变量保存到栈上,这实际上让所有cal","saved寄存器中的参数也被丢到了栈上?似乎有些多余?","saved寄存器中,那么它不会在上一步骤被放到栈上。","saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。","saved寄存器或栈上。因此我们先将活跃且在cal","saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是calle","saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它cal","saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个calle","saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv","saved寄存器,但它有着和calle","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","sp,","start","step9","sw","t0","t0,","t0指令用于传递一个参数。","t1","t1,","t1和t2作为被调用函数foo的实参,而调用后的返回值保存在t0中。","t2)","tac","unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。","v","var_type,变量名","vs","v标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。","x","x,","xj;如果vi的值不在物理寄存器中,调用emitloadfromstack。(思考:","xx","xxx","y","y)","y;","{","}","一些可能带来困惑的地方","上表给出","上述步骤","下面是一段含有函数调用的代码片段:","下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。","两类寄存器,而不是要求所有寄存器完全由","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个整数寄存器的分类。所谓","中","中。","中。比如我们有这样一段","中的一方保存?为何保存返回地址的","中间代码生成","中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)?","为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下:","为什么有的临时变量可能在寄存器中?","为何","传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。","位","你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。","你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。","你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用","你有更高效的解决方案吗?)","保存活跃的临时变量:首先保存所有位于caller","假设我们有若干个参数,可以依次使用","具体依赖于1的处理方式,可能需要恢复","具体的保存方法并不限制,但一般都使用栈来保存。","具体而言,某个“一整条函数调用”的中间表示大致如下:","准备参数,完成传参。","函数","函数参数","函数参数以及返回值的传递","函数参数(32","函数时,相当于执行了:","函数符号的实现在","函数调用","分别对应","到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言?","到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。","参数","参数类型","只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复calle","同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。","含义","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","和","因为我们在步骤1中只操作了caller","因此,示例可以对应如下的","在早先的文档中,函数调用涉及call和param两种指令。call指令只对应实际汇编代码的函数调用,而param","在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案):","处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。bruteregalloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind,","处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitfunc函数中。框架的现有部分已经帮助大家处理好了calle","如果你感兴趣,可以了解一下llvm","如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题?","妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。","完成这个步骤的过程中你可能需要回顾step","实战教学","实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。","实验指导","寄存器","寄存器。","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器?","对于被调用者的处理","对于调用者的处理","对应的“传参和调用分离”的中间表示类似于:","将","将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是cal","思考","思考题","总结","成员","我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。","我们给出risc","执行汇编中的函数调用指令,开始执行子函数直至其返回。","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。","本实验指导使用的例子为:","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","标准调用约定中要引入","根据调用约定,调用其它函数后caller","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitloadfromstack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitstoretostack,我们需要手动生成一条nativestoreword指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。","由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。","的值作为参数","的标准调用约定","目标代码生成","称为调用序列(call","程序代码里的一个函数调用,包含了下面一系列的操作:","程序:","编译程序进行验证。","节点","节点来表示它,给出的参考定义如下:","要做什么","记录函数调用情况(可选):你也许需要在subroutineemitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。","词法语法分析","语义分析","请注意,tac","调用函数","调用函数名","调用约定","返回值(32","返回类型","这是否意味着原本就在caller","这里我们需要关注源文件backend/reg/bruteregalloc.py中的bruteregalloc类。","这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的riscvsubroutineemitter类和backend/reg/bruteregalloc.py中的bruteregalloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。","进行真正的函数调用:可以使用emitnative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。","通过例子学习","那么语义检查时应当报错。","那么,在进入","针对函数特性,我们需要设计","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","(汇编)保存"],"docs/step9/spec.html":["'&&'","'('","')","')'","':'","';'","';')","'='","'?'","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(express","(type","0","0;}。","0,语义规范说","5.10)执行一条","9.1","9.2","9.3","9.4","9.5","9.6",":","addit","assign","block_item","block_item*","c++","caller","caller,语句中的表达式的值会返还给","compound_stat","condit","declar","equal","express","expression)*)?","expression)?","expression?","expression_list","f(){if(0)","f(int","function","function*","identifi","identifier)*)?","int","integ","logical_and","logical_or","main","multipl","parameter_list","postfix","primari","program","relat","return","statement","statement)?","step9","type","unari","void","x)","x;","{","|","}","}”","},且其返回值被","“执行到了","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不合法,但","中规定不管返回值有没有被使用,都是未定义行为。","之外的函数没有","作为函数调用的表达式的值。一个函数可以有任意多条","例如,int","函数是可以递归调用的。","函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。","合法。","在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。","在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。","在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。","如果一个不是","实现的时候,你可以直接让所有函数都默认返回","对于感兴趣的同学:c","当然也是可以的,而且更清晰简单。","意味着执行时没有通过","我们暂不要求支持不包含函数体的函数声明。","我们没有支持","所使用,则这是一个未定义行为。","是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回","每个步骤结尾的","灰色部分表示相对上一节的修改。","的函数执行到了它的","类型,但可以忽略返回值达到类似的效果。","规范","语义规范","语句。","语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的","语法规范","语言中规定只有使用了返回值才是未定义行为,而","返回,例如","(更新"],"docs/step10/intro.html":["(function","./reports/.pdf,比如","./reports/stag",".bss",".data",".text","10","6","6.pdf。整个",":","branch","declaration)*","elf(execut","format)。","fp","gcc","link","pdf","program","qemu)使用的可执行文件的格式是","stage","step","step10","step10:全局变量","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","准备报告。","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","只需要提交一份报告,你不需要单独为","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","对有兴趣的同学:","当然,广义上的编译器就囊括了这所有阶段。","我们只接受","我们要支持的是全局变量,语法改动非常简单:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","是其中存放代码的段(section),.bss","格式的实验报告,你需要将报告放在仓库的","段或","段里。","汇编课上应该讲过,实际中(包括","的实验报告需要放在","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","访问它也不能通过","这个","都是其中存放数据的段,前者零初始化后者须指定初始值。"],"docs/step10/example.html":["#",".bss",".data",".globl",".space",".word","0","0(t0)","2024","2024;","4","=","_t0","_t0,","_t1","a0,","ast","bss","data","instruct","int","la","load","load_symbol","lw","main()","main:","main:","minidecaf","mv","offset","ret","return","risc","riscv","step10","step5","symbol","t0,","t1","t1,","tac","v","v0,","x","x:","x;","{","}","上例中,.data","下面给出","个偏移的内存地址中的数据","中存储地址,加载与该地址相差","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中间代码生成","临时变量","为全局符号;.word","为字符串,加载","代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码,这样可以使中端与后端完全解耦。","伪指令可能会被转换成哪些","写出","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","参数","参考的","变量符号究竟存在哪里,如果所生成的汇编程序不给出","后是一个","含义","和","声明","字节。","字节整数,是","存放到","实际上,我们提供的中间代码设计和","实验指导","将全局变量放到特定的数据段中","思考题","所对应的数据段。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令链接:https://github.com/thethirdone/rars/wiki/support","按照汇编约定,data","提供了一系列的汇编指令,用以声明全局变量","数据段;.globl","有了上述两条指令,可以将测试用例翻译如下:","本实验指导使用的例子为:","本步骤引入全局变量,在引入全局变量之后,ast","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","汇编中有对应","汇编的思想是一致的,risc","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的定义,程序是有bug的。实际上,risc","的指令,我们直接给出翻译结果:","目标代码生成","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","符号对应的初始值。","符号所代表的地址","经过","翻译中间代码","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","表示存储空间大小为","表示输出到","表示预留一块连续的内存,4","词法语法分析","语义分析","请注意,tac","请注意,翻译所得的","这一","通过例子学习","针对全局变量,我们需要新设计","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。"],"docs/step10/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(express","(function","(type",")","0。","1+3==4","10.1","10.2","10.3","2+3)。","2123),对初始化表达式是非字面量的情况不做任何要求(例如",":",";","a;","a;}","a=0;","a=1+3;。编译器可以计算出","a=2;","a=4;。","a=f();","a=f();。","a=f();,其大致实现为","addit","assign","block_item","block_item*","c","c++","compound_stat","condit","declar","declaration)*","equal","express","expression)*)?","expression)?","expression?","expression_list","f()","function","identifi","identifier)*)?","int","integ","logical_and","logical_or","main","main(){","multipl","parameter_list","postfix","primari","program","relat","return","statement","statement)?","step10","type","unari","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","不允许","不是编译器常量;","为了简单,我们不要求这点。比如对于形如","之前执行的初始化函数中","代码,不过不是合法的","代码,也许","但为了实现简便,我们就不要求支持这点。","其实也支持非字面量的编译期常量,例如","因为","如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值","对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如","我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。","或","是合法的","每个步骤结尾的","灰色部分表示相对上一节的修改。","然后在","然后让它等价于","甚至可以支持","的代码片段,你可以以任意方式处理。","的处理方式更符合你的直觉。","而","规范","语义规范","语法规范"],"docs/step11/intro.html":["'('","')'","';'","'['","']'","']')*","('='","('['","./reports/.pdf,比如","./reports/stag","11","6","6.pdf。整个",":","branch","declar","express","expression)?","expression_list","identifi","integ","minidecaf","pdf","postfix","primari","stage","step","step11","step11:数组","type","|","下的","之前甚至","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","数组的下标操作","数组的初始化:","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","的目标是支持数组:","简要叙述,为了完成这个","语法上没有太大改动,","这个","连快速排序都写不了。","难度不大,但有了数组让我们能够写很多有意思的程序了,step11"],"docs/step11/example.html":["#","+","...","...;","0","0;","11","4","40","5","5;","=","a[0][1]","a[d1][d2]...[dn],访问元素","a[i1][i2]...[in]","a[i1d2d3...dn","a[n];","a[n][m];","alloc","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","ast","base,索引下标","bss","c","frontend/type/array.pi","i2d3...*dn","identifi","in]。在将数组索引翻译成","index","indexexpr","int","length","load","m","main()","main:","n","namer","return","size","sp","stage","step","step10","step11","store","t0","t1","tac","typer","x[10];","y[10];","{","}","一个","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","中引入的","中类型检查的部分,以及","中间代码生成","中,使实现更加模块化。","了,还有可能是如","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","分配","参数","可以等价于访问","同中间代码生成,全局数组自行思考实现。","含义","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","字节的内存,并返回内存首地址","实验指导","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","思考题","成员","指令","指令将值写入数组元素。","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令来实现,我们还需要引入一条类似的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","数组和普通变量类似,可以分为局部数组和全局数组。","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","有能力的同学可以考虑将原先","本实验指导使用的例子为:","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","段内存)。","注意:引入数组后,左值不再一定是","用于分配内存空间:","由于","目标代码生成","类型为","索引基底","索引运算","节点","节点来表示它,给出的参考定义如下:","词法语法分析","语义分析","语言规范规定,允许局部变量是可变长度的数组(variabl","请注意,tac","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种,但仍然不允许类似","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","通过例子学习","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","采用","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对数组,我们需要设计","除了分配数组,我们还需要考虑如何访问数组元素。通过","需要增加的类型检查重构进","需要申请更大的"],"docs/step11/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')*","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","(express","(function","(type",")","0","11.1","11.2","11.3","11.4",":",";","a[1][7]","a[4][5];","a[];。","a[b],要求","a[n];","addit","assign","b","block_item","block_item*","compound_stat","condit","declar","declaration)*","equal","express","expression)*)?","expression)?","expression?","expression_list","function","identifi","identifier)*)?","int","integ","logical_and","logical_or","multipl","parameter_list","postfix","primari","program","relat","statement","statement)?","step11","type","unari","|","一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","下标运算越界是未定义行为。","个元素(从","中的第","即便是类似","对于下标运算","开始计数)。","我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。","或不定长数组","所以,我们不要求支持变长数组","是","是一个数组类型,b","是一个整数类型,a[b]","每个步骤结尾的","灰色部分表示相对上一节的修改。","规范","语义规范","语法规范","这种,同样也是未定义行为。"],"docs/step12/intro.html":["'('","')'","';'","';')","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'{'","'}')?","(','","('='","('['","(compound_stat","(integ","(type","./reports/.pdf,比如","./reports/stag","12","6","6.pdf。整个",":","branch","declar","function","identifi","integ","integer)*)?","parameter_list","pdf","stage","step","step12","step12:为数组添加更多支持","type","|","下的","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","准备报告。","只需要提交一份报告,你不需要单独为","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","我们只接受","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","数组的传参:","数组的初始化:","格式的实验报告,你需要将报告放在仓库的","的实验报告需要放在","的目标是支持数组的初始化和传参:","简要叙述,为了完成这个","语法上没有太大改动,","这个"],"docs/step12/example.html":["*dst,","+","//","0,","0;","0。例如:","12","1;","2;","3);","=","a[0]","a[0][1]","a[1]","a[][12]){","arr[0]","arr[1]","arr[2];","arr[3];","arr[3]={1,2,0};","arr[3]={1,2};","arr[4]","c/c++","cnt);","fill_n","fill_n(arr,","fill_n(int","fun(int","func(arr);","func(int","int","main()","memset","minidecaf","param[0]","param[]){","res,","return","step","step12","{","{1,2};","}","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中间代码生成","作为函数参数的数组类型第一维可以为空。事实上,在","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数的参数列表需要加上数组类型。","因此,上述初始化可以等价地转化为:","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","实验指导","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","思考题","总结","恭喜你实现了","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","本实验指导使用的例子为:","由于","目标代码生成","等价于","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","词法语法分析","语义分析","语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。","这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。","通过例子学习","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。"],"docs/step12/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","'}')?","(","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","(express","(function","(integ","(type",")","12.1","12.2","1;","2,","2;","3,","3;","4;","4};",":",";","=","a[0][0]","a[0][1]","a[1][0]","a[1][1]","a[2][2]","a[])","addit","assign","block_item","block_item*","compound_stat","condit","declar","declaration)*","equal","express","expression)*)?","expression)?","expression?","expression_list","fun(int","function","identifi","int","integ","integer)*)?","logical_and","logical_or","multipl","parameter_list","postfix","primari","program","relat","statement","statement)?","step12","type","unari","{1,","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","会将数组变为","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","数组传参是支持不定长度的","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","每个步骤结尾的","灰色部分表示相对上一节的修改。","规范","语义规范","语法规范"],"docs/step13/readme.html":["选做二说明","选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。","选做实验二说明"],"docs/step13/intro.html":["./reports/.pdf,比如","./reports/stag","6","7","7.pdf。整个","backend/reg/bruteregalloc.pi","branch","coalesc","iter","pdf","regist","stage","step","step13","step13:寄存器分配算法改进","step5","toplas'1996:","下的","中提到的当前代码框架中的分配算法。","举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的?","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要为代码添加合理的注释以便批阅。","你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。","你需要:","只需要提交一份报告。","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","实验要求","对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。","我们只接受","提出的寄存器分配算法,并以此代替","改进你的编译器,支持上面提到的寄存器分配算法。","格式的实验报告,你需要将报告放在仓库的","的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看","的实验报告需要放在","的数据流分析一节。","的目标是实现论文","简要叙述,为了完成这个","详细说明你的代码的运行逻辑","语法上没有改动。","这个","除了替换位于"],"docs/step13/example.html":["(_t0,_t1)","(_t0,_t2),(_t0,","(_t0,_t3)","(_t2,_t3)","(a,b),可以如此检查它们是否可以合并:","*","+","1","1;","2","2;","3","3;","4","6","=","_t0","_t0,_t2,_t3","_t1","_t1}","_t2","_t2,","_t3","_t3)","_t3),(_t2,","_t3}","a;","b","b,f涂成相同颜色。这样就会导致","brigg","b有边相连的所有结点中有多少个","c","calle","chaitin","coalesc","d","d;","degre","f","f()","instructions)(其实就是赋值)传值的寄存器。","int","iter","j","k","move","n","regist","return","save","save/cal","signific","step","step13","tac","toplas'1996:","{","{_t0,","{_t0}","{_t1}","{_t2,","{}","}","一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。","上面的说明只是简要介绍了算法的原理,请阅读论文","上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。","下面简要介绍一些你可能需要的预备知识。","不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把","个变量,m","个寄存器可用于存放变量),那么可以依照下面的顺序执行","个点的颜色冲突。","个结点不会在在步骤1被删除,因此如果","个结点,m","个,说明最多有","中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下:","中活跃变量的例子:","中间的虚线边改为实线,表示不再考虑二者合并的情况。","事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。","事实上,我们可以用图染色问题去描述“相互冲突的变量”:","代码","例如下面的代码","假定我们有","共用寄存器。","可以不合并但强制这两个点同色吗?","可以在保证合并后边数","可以直接合并这两个点吗?","可以跟","可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的","可以,但这样合并的点数比较少,优化效果差。这实际上是更早的","合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的","否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。","否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。","和","回顾:启发式寄存器分配算法","图染色问题:有","在step","在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copi","基于图染色的寄存器分配算法","基于复制指令的寄存器合并","如何找到所有冲突的变量","如何解决寄存器分配对应的图染色问题","如果不能合并,那么把","如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少","实验指导","容易发现,至少需要3个寄存器。因为","寄存器分配问题:有","寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。","对于仅因复制指令相互冲突的一对点","寻找图中是否有连接了少于","将每种颜色对应到寄存器上,生成后端代码。","尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的","当恢复一个从步骤1删除的结点时,因为当前它连接了少于","当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有","我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。","或者","执行时","把图中当前所有结点中,连接了至少","指令。","按删除的逆序恢复所有结点。","提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。","方便全局优化寄存器分配,减少基本块之间的","本节实验要求实现论文","条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。","条边的结点。","条边的结点标记为","条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于","条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。","条边,所以我们总能为它指定一个颜色,使之不和相邻的最多","活跃变量集合","点。如果有","用上面提过的活跃变量分析可以算出,在","的。看上述图染色算法流程,可以发现如果一个点不是","的情况下合并这两个点吗?","的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。","的解决方案。","的颜色和","的,它会在步骤1被删除。","相互冲突,需要各一个寄存器,而","相同,从而意外地和","相同,导致溢出到内存。","相干寄存器","种颜色可用于染色(对应","种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。","组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。","统计与","而在step5","获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。","这个思路相比代码框架中的启发式寄存器分配算法有以下好处:","这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配?","这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。","这篇实验要求实现的论文的解决方案","这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。","都是活跃变量。但观察代码可以发现","重用一下","首先检查是否存在空闲的寄存器,有则直接分配给当前变量。"],"docs/contest/intro.html":["&","(两周)","*","/","1","1.67","10%","100","12","20","2023","2024","3","30%","35%","4","40%。","42%","48%。","5","5%))","50%","55%。","5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)stage","6","60%","6),包括附加测试样例。","7","90%,剩余","analyzer):检查ast是否符合语法规则和语义规则。","arm","ast","ast,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现","bison)辅助你生成","c++,rust","code","cpu","gcc","gcc编译程序运行时间","generator):将","generator):将优化后的中间代码转换为目标机器代码。","ir","ir、完成中间代码生成","ir,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。","lr(1)、ll(1)","minidecaf","minidecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低","min{100,","o1与","o2优化的性能的","o2)。","qemu","qemu与","represent","risc","riscv","stage","step","step12","sysi","v","一个编译器主要由以下几个部分构成:","不再要求完成基础实验以后再进行大实验","中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等","中端:负责中间代码生成、优化。","中间代码生成器(intermedi","中间代码生成:将","为书面作业和日常成绩。","为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:ir","为满分,按照比例折算。如果一个程序","也是需要进行代码编写的,可以参考基础实验框架的ir在代码层面是如何实现的(utils/tac)。","仅完成竞赛第一阶段(达到课程基础实验的要求)","介绍","优化器(optimizer):对中间代码进行优化。","作为你的最终性能测试成绩。","你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。","你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除","你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评","你可以选择","你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩)","你的单个测试点的得分为:","你的程序运行时间}","你的编译器应该能完成将简单的程序转换为","你的编译器应该能通过所有的测试样例(stage","其中这90%构成为:","分工建议:两位同学负责中端优化,两位同学负责后端优化。","分(总评","前端:你可以使用现有的框架完成前端(如:antlr、flex","前端:负责词法分析、语法分析、语义分析,生成抽象语法树(ast)。","即为满分。","参加大实验的同学应该需要自己从头设计一个符合","参考实现进度及顺序","可以通过后续的文档了解每个部分的更多细节。","后端优化:图染色寄存器分配、线性扫描法、指令折叠等等","后端:负责目标代码生成。","因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案:","增加中端优化和后端优化(剩下的时间)","增加了实验文档","大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。","大实验参考文档","大实验在","大实验的语法规范与","大实验简介","大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。","大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。","完成","完成后端(两周)","完成竞赛第二阶段的优化编译器,替代期末考试","实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。","实现你的编译器,你的编译器生成的目标代码可以是","实现后端代码生成、栈帧管理","实验成绩","实验评测仓库在这里。","实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个","寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。","年有一些变化,主要体现在:","年相对于","性能测试,将根据你的编译器的性能进行评分。","性能评分方案:","成绩占比","我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的","或者","截止之前完成","截止前完成","所有测试点取算数平均值,最后结果","打开","报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。","有两个原因我们要求同学们从头设计一个编译器:","架构的","架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。","模拟","正确性测试:你需要通过","此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。","汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)stage","注意:大实验工作量较大,并不推荐所有同学都参加。","注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。","的。根据通过测试样例情况评分。","的实验,不会有额外扣分。","的所有测试样例以及附加测试的测试样例,这样你可以获得","的正确性得分。","的测试样例。","的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。","的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。","的规范是一致的。不过有一点需要注意:","目标代码生成器(target","真实硬件的性能相对差值是比较恒定的(如比较","第一次进度检查:第六周周六(10.19)","第三次进度检查:第十二周周六(11.23)","第二次进度检查(中期检查):第八周周六(11.2)","第四次进度检查(期末检查):第十六周周末(12.29)","等分析器。","编写前端、设计","编译后运行时间为","编译器的构成","规范","让你的编译器能够通过","设计","评分方法","评测将会在我们提供的服务器上进行,通过","词法分析器(lexer):将输入的源代码转换为一个个的标记(token)。","语义分析器(semant","语法分析器(parser):将标记(token)转换为抽象语法树(ast)。","语法改为了","语法要求从","调用约定。","转换为","转换为中间代码。","运行你的程序。经过测试","这时候你的编译器应该能通过基础实验的所有测试样例(stage","进度检查","选项一","选项二","附加测试中performance部分测试样例,以",",不额外扣分。也可以继续大实验不做基础实验,但是至少要在",",书面作业和日常成绩",",如果你的程序执行时间为",",期末成绩"],"docs/contest/frontend.html":["!=","\"${cmake_cxx_flags_debug}","\"${cmake_cxx_flags}\")","\"*.cpp\")","\"antlr4","\"frontend/lexer/simplecbasevisitor.h\"","\"frontend/lexer/simpleclexer.h\"","\"frontend/lexer/simplecparser.h\"","\"src/*.cpp\")","#","#includ","${antlr4_src})","${src})","&","&&","&name)","&name){","&name,","&symbol)","'","'('","')'","'*'","'+'","'/'","';'","'='","'if'","'int'","'return'","'{'","'}'","(","(!isvalidtype(vartype))","(!lefttyp","('else'","(anoth","(ctx","(express","(funcdeclar","(lefttyp","(program","(statement",")","*.cpp","*.h","*ctx)","*node)","+","...","./my_compil",".cpp",".g4","//","//···","/path/to/antlr","1","1)","1))","1.","16","17)","19","2","2))","2.","21","3.","3.10)","3rd_party/","3rd_party/antlr4","4.13.2","5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。","9]+","9_]*",":",";",";)",";))","=",">",">equals(righttype))",">expr());",">insert(name,",">isfloat()",">isfloat())",">isinteger()",">isinteger())",">left);",">lookup(name);",">parent;",">right);",">statement(0));",">statement(1))",">statement(1));",">type;","[","[0","[a","\\t\\r\\n]+","___","a)","add_executable(my_compil","add_library(antlr4_runtim","add_subdirectory(3rd_party/antlr4","addexpr","antlr","antlr4","antlr4;","antlr4_runtim","antlr4_runtime)","antlr4_src","antlrinputstream","antlr。前几行(3","antlr简介","apt","argc,","argv[])","assign","assign:","ast","ast/","astbuildervisitor","astnod","astvisitor","ast),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。","atn","augment","auto","b","b))","backend/","basevisitor","binari","bison,","book","bool","c","c)","c++","c++17","c++。通过定义语法文件(.g4","c++)","c++,你可以从","char*","class","clone","cmake","cmake_minimum_required(vers","cmakelists.txt","common.h","commontokenstream","complete.jar","complete.jar(截至文档写作时此为最新版)。","complete.jar替换成你的","cond","cond(std::move(cond)),","cond,","cond;","const","cout","cpp的","currentscop","currentscope;","cxx)","ddebug\")","debug","declarevariable(const","diagram","directori","div","div:","divexpr","dlanguage=cpp","download","dragon","e.g.,","elsebranch","encod","encoding;","enterscope()","euc","exampl","exitscope()","expr","express","expression.\");","expression:","f_stream.open(argv[1]);","f_stream;","file","file(glob_recurs","flex","floattype();","frontend/","funcdeclar","funcdeclaration:","gener","git","github","glob_recurs","grammar","grammars,","has_otherwise(oth","has_otherwise;","id","id:","ifcontext","ifcontext,对应的语法规则如下:","ifnod","ifnode(std::unique_ptr","ifnode,并返回","ifnode:","ifstat","ifstream","include_directories(3rd_party/antlr4","include_directories(src)","input(f_stream);","insert(const","instal","int","int:","intexpr","jar","java","java、python","jdk","jp","jvm","languag","lc","lc:","lefttyp","lefttype;","lex","lexer","lexer(&input);","lexer/","lib","listen","listener(默认是激活的)和激活","locat","lookup(const","lp","lp:","main","main(){","main(int","main.cpp","midend/","minidecaf","minu","minus:","mismatch","mul","mul:","mulexpr","my_compil","namespac","network","node","nullptr)","nullptr;","o","openjdk","option","other(std::move(other)),","other;","output","overrid","parenexpr","parent","parent(parent)","parent;","pars","parser","parser(&tokens);","parser.program();","parser/","parser,只需要执行","parsetree*","plu","plus:","program:","project(my_compil","public","public:","rc","rc:","recognition)","resolvevariable(const","return","righttyp","rp","rp:","rule","runtim","runtime)","runtime.h","runtime.h\"","runtime/","runtime/cmakelists.txt","semanticanalyz","semi","semi:","set(cmake_cxx_flag","set(cmake_cxx_flags_debug","set(cmake_cxx_standard","simplec","simplec.g4","simplec.g4,并利用它生成一个","simplec;","simplecbasevisitor>","simpleclex","simplecpars","skip","specifi","src","src/","src/frontend/lexer_pars","src/main.cpp","statement","statement)?","statement*","statement:","statements:","static","std::make_shared(currentscope);","std::make_unique(std::move(cond),","std::move(elsebranch));","std::move(thenbranch),","std::runtime_error(\"invalid","std::runtime_error(\"typ","std::shared_ptr","std::string","std::unique_ptr","std::unordered_map>","std;","subexpr","sudo","symbol)","symbol);","symbolt","symboltable(std::shared_ptr","syntax","table;","table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。","target_link_libraries(my_compil","test.c","then(std::move(then)),","then,","then;","thenbranch","throw","token","tokens(&lexer);","token,然后解析器分析","tool","tostringtree(&parser,","transit","tree","tree,","tree/","tree:","tree;","tree。","tree。最终把一个简单的","tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用","tree)并根据其结构生成对应的","tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(ast)。ast","true)","type","type:","typecheckervisitor","us","vardeclar","variable.\");","vartyp","vartype;","version","visit(ctx","visit(nod","visitbinaryexpr(binaryexprnod","visitifstat","visitifstatement(simplecparser::ifstatementcontext","visitor","visitvariabledecl(variabledeclnod","void","ws:","yacc","z0","z_]","za","{","{}","|","}","}))","};","│","└──","├──","下载","下面我们以","中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。","中设置使用","中间代码目录","为","仓库下载","仓库下载预编译的库或者自己编译安装。但是官方的","代表","以下是一个简单的类型检查器示例:","以产生","作用域管理","你应该能看到类似以下的输出:","你需要从","使用","使用以下命令(记得把/path/to/antlr","使用文法文件生成","使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的","假设我们有一个解析树","其他类型检查逻辑...","函数声明规则","函数,为","函数,以生成","分支。通过","分支,并生成对应的","创建名为","利用","到头文件搜索路径","前端代码目录","前端参考资料","前端梗概","前端的主要任务是将源代码转换为抽象语法树(abstract","前端设计","前端预期目标","只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。","可执行文件链接","后端代码目录","向符号表中插入新的符号","和","和文法文件生成所需的","在当前作用域查找符号","在生成","在确认环境配置无误后,我们可以使用","在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。","在该类型检查器中,我们遍历","在这个项目中,我们推荐使用","声明和表达式","头文件","子目录作为子项目进行构建","安装","完成符号解析和类型检查后,编译器应该能够:","完成这部分内容后,你的编译器应该能够通过","宏","官方文档","定义","定义括号和符号","定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的","实现","实现了词法分析器分析输入(即字符)并产生","对应的","将","将整数提升为浮点数","工具需要","并填充其条件表达式、then","库与","忽略空格和换行","忽略规则:通常用来忽略空格、换行等空白字符。","总的来说,我们现在利用","我们使用词法分析器产生一个","我们创建一个在令牌流上工作的解析器","我们创建一个在该输入上工作的词法分析器","我们可以继承","我们将输入转换为","才能执行。","报告语义错误,如未定义的符号、类型不匹配等。","抽象语法树相关代码","指向父作用域的符号表","指定","提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。","操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。","支持多种语言,包括","教程","整数的规则","文件","文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与cmake文件实例.","文件包含以下几个部分:","文件名:","文件是","文件结构","文件),antlr","文件,我们能够为","方法遍历解析树中的","时,我们通常是在解析树(pars","时,我们需要遍历解析树(pars","是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。antlr","是什么,不用担心,我们稍后会看到。","是对大小写敏感的)","条件表达式","来处理","来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。","构建","构建并运行我们自己实现的编译器,你将会看到","标准为","标识符的规则","根目录下的","格式","框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如","检查变量声明的类型是否正确","检查右操作数的类型","检查左操作数的类型","检查所有的操作数和运算符的类型是否匹配;","检查操作数的类型是否匹配","检查是否有","模式。如果你还不知道","模式生成","模式的遍历代码,逐个解析树结点处理并生成","模式递归查找","模式遍历这个树并对这个树的每个节点进行一些操作。","模式,代码变得结构清晰且便于扩展。","模式,针对解析树的不同节点调用对应的处理函数,来生成合适的","流","添加","添加一个相应的","添加第三方库目录","添加项目的","源代码到你的代码仓库里,并为你的整个项目编写一个","源代码目录","源文件","然后,21","现在我们可以看到如何在","现在,使用","生成","生成词法分析器和语法分析器,能够将","生成词法分析器和语法分析器,解析源代码生成解析树。","由于","的","的可执行文件,将所有源文件编译链接到这个可执行文件中","的完整流程","的文法文件","的最小版本要求","的生成","的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。","的词法分析和语法分析部分。","的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。","目录下)","目录下所有的","目录中输出生成的代码。","目录到头文件搜索路径","直接使用包管理器安装:","示例","程序中使用我们生成的解析器。","程序入口文件","程序的语义分析。","程序的起始规则","程序解析为抽象语法树(ast),并完成对","符号表","符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(ast),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。","符号解析的核心工具是符号表(symbol","符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。","符号解析(namer)","第一部分:依赖环境准备","第三方库","第三部分:ast","第二部分:文法文件的编写与","第四部分:语义分析","等。","类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。","类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。","类型检查(typer)","类型的规则(这里只支持","类型系统","类型转换","类型)","类的","终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的","结点","结点。","结点。这里我们可以使用","结点包含条件表达式cond、then","结点构建抽象语法树,最终生成中间表示或目标代码。","结点,生成","编写","编写simplec.g4","编译原理经典书籍","编译器标志,这里没有额外添加,使用默认","编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。","能够帮助我们生成解析源代码所需的词法分析和语法分析工具。","脚本会从官方","自动生成的","节点","获取","行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。","行展示了使用","表达式的规则","被输出到终端中。","规则:定义语言中各种结构的模式。","解析器的标准方式:","设置","设置调试模式下的编译器标志,开启","设置项目名称和使用的语言(cxx","访问","访问并生成","访问并生成条件表达式的","词法分析与语法分析","词法分析器头文件","词法分析器源文件","词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。","词法分析相关代码","词法规则:定义词法单元(如关键字、标识符、符号等)。","语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出","语句块","语句块。","语句块和可选的","语句的","语句的规则","语句结点的定义:","语法分析器头文件","语法分析器源文件","语法分析相关代码","语法定义","语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为","语法文件,定义源语言的解析规则。","语言子集","语言程序","路径)测试是否能正常使用:","转换为一个","运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接","运行时库","运行时库是解析器生成的代码在运行时所依赖的代码。对于","运行时库的","运行时的编译链接","运行时目录(在源码的","返回表达式的类型","这个","这是我们程序的主文件,展示了如何在","进行隐式类型转换","选项分别用于禁止生成","选项用于设置输出目录。我们将在","通过","通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。","通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用;","通过编写","通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。","通过这种方式,我们能够将解析树转换为精简的抽象语法树(ast),为后续的中端和后端处理提供基础。","配置文件","配置文件,需要你手动添加一个","项目结构","预期目标","首先,我们需要为"],"docs/contest/midend/midend.html":["!=","#","&","(body)","(children[0])","(children[1])","(children[2])","(children[3])","(cond)","(expr)","(ident)","(init)","(lhs)","(ret_t)","(rhs)","(type)","*","+","/","0","0;","0,跳转到_l0,否则跳转到_l1","1","100","11","18","1;","2","26","2;","35","5","6","7","8","9","=","_l0,","_l0:","_l1","_l1:","_l2","_l2:","_main:","_t0","_t0,","_t1","_t2","_t3","_t4","_t5","arm...)和源语言(minidecaf,","assign","ast","b","b;","block","bnez","book","c,","compil","def链、def","engin","function","gcm","gvm","identifier(\"a\")","identifier(\"b\")","identifier(\"main\")","if(a)","int","intliteral(0)","intliteral(1)","intliteral(2)","ir","ir。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。","ir)是介于语法树和汇编代码之间的一种程序表示。","ir)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的ast转换为中端代码。","ir,只需要写","ir,并能够输出","java...)。由于不同源语言的","jump","llvm","m","main(){","minidecaf","mips,","n","program","represent","representation,","ret","return","ssa","tint","unaryop(neg)","use链、可达定义分析等。","v","v,","vardecl","x86,","|","}","一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的","不同,直接从","个","个模块。","个汇编生成器,只有","个源语言和","个目标代码生成模块。如果有了","个目标指令集,需要写","中端介绍","中端优化","中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。","中端参考资料","中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。","中端的设计包括:中间表示的设计、中端代码生成和中端优化。","中端设计","中间代码生成","中间表示","中间表示(也称中间代码,intermedi","什么是中间表示?","从这个ir例子中,我们可以看到,相对于c语言,ir中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在ir中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,ir中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。","代码:","代表a","代表b","你需要通过遍历ast的节点来将其转换为ir。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。","例如上述代码转化为ir后可能如下:","例如以下是一个ir代码的例子:","便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。","到","到汇编的步骤一分为二。如果目标代码有误,通过检查","到汇编翻译有误。","前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(intermedi","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。","如以下是一个简单的例子:","如果a","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","完成这部分内容后,你的编译器应该能将","将","我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。","我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。","我们将在中间表示设计中介绍ir设计时候需要考虑的地方和并列举一些实例。","我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如use","是否正确就可以知道:是ast","本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。","死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","生成器和","生成汇编的话,为了支持","生成的ast可能如下:","由于源语言(minidecaf)和目标语言(risc","程序翻译成","经过常量传播优化后,可以得到:","缩小调试范围,通过把","翻译有误,还是","跳转到_l2","跳转到_l2,跳过else块","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","进一步如果我们进行死代码消除,可以得到:","适配不同指令集(risc","预期目标"],"docs/contest/midend/ir.html":["#","(foo,","(func_name,","*target;","+","...","...)","//","0","1","2","40",":","=","_b0:","_l0","_l1,","_l2","_t0","_t0,","_t1","_t1)","_t1,","_t1。下面是另一个ir输出格式的例子:","_t2","_t3","add","add,","addr,","address","alloc","arg1,","arg2,","arithmet","arithmetic,将","basicblock","basicblock,每个","binari","blocks;","bool","call","code,","cond,","controlflow","controlflow,","div","dst;","enum","function","functions;","function,每个","globals;","i32","instruct","instructions;","instruction。","instruction,然后根据不同的指令类型定义不同的子类。","int","ir","ir。在静态单赋值的","ir,这里有一些参考:","is_reg","is_reg;","jump","label","label1,","label2","label;","llvm","load","main","main()","main:","malloc","mips)规定的物理寄存器,其数目有限;而","mul,","name;","neg","offset","op","opcod","opcode;","operand","program","public","reg_id;","return","risc","size","src","src,","src1,","src1;","src2","src2;","std::string","std::vector","struct","sub,","tac","tac)是一种经典的","type","type;","unari","union","union{","v,","value;","x86,","{","}","};","——","“虚拟寄存器”","一些tips:","一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。","一元运算(如取负、取位反)","三地址码","三地址码为例,介绍中间表示的设计。","三地址码(three","下面以二元运算指令为例,展示如何定义一个具体的指令类。","不同,主要用于在栈上分配内存)","中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。","中间表示设计","中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。","临时变量赋值操作","二元运算需要两个操作数,并且会产生一个计算结果。","二元运算(如加、减、乘、除)","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出","代码的格式,只要方便自己调试即可。例如,你也可以将","以上给出了一份","你会发现,我们的程序组织成了一个树状结构,即","你会发现,这种ir输出格式包含了一些类型信息,也更加易读。","你可以在instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。","你可以在instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将","你完全可以不按照我们给出的这些结构来设计你的","使用的是","内存数据结构","内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的","函数入口标签","函数调用语句","函数返回","加法操作","加载操作:dst","加载立即数","包含多个","包含多条","北大编译实验koopa","取负操作","和","因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体:","在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体:","在编译器中有着广泛的应用,比如","基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可:","存储操作:store","就是一种静态单赋值的","形式:branch","形式:dst","形式:jump","形式:return","我们使用一个","我们可以为所有指令定义一个基类","我们是以函数为单位来组织基本块的,函数定义为如下的结构体:","我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句?","指令与汇编指令比较类似,每条","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。","操作数一","操作数二","操作码","整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体:","无条件跳转语句","有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器:","有了这些语句以后,我们的ir就可以描述源程序的语义了。","条件跳转语句","来存储操作数的值或者寄存器编号,使用一个","来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要","汇编里面使用的是目标平台(如","的","目标寄存器","看起来很像汇编,与汇编最大的区别在于","示例程序。请注意","示例:_t2","示例:_t3","示例:branch","示例:jump","示例:return","示例:store","算术语句:这是计算机最基础的语义。","继承自","而操作数可能是一个立即数,也可能是一个变量。例如以下的情况:","设计,tac","访存语句","赋值语句","跳转目标","跳转语句应该怎么定义?这里我们需要引入基本块的概念。","跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。","输出成","返回语句","这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。","这里我们以一种经典","进一步地,你可以实现符合静态单赋值要求的","都继承自","静态单赋值(ssa)","(也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。",",静态单赋值的"],"docs/contest/midend/irgen.html":["#","$a","'='","(args)","(array)","(body)","(children[0])","(children[1])","(children[2])","(children[3])","(cond)","(decl)","(expr)","(func)","(ident)","(index)","(init)","(lhs)","(params)","(ret_t)","(rhs)","(spec)","(type)","*","*(i32*","*(i32[3]*","+","0","0)","0;","1","10","12)","16)","1;","1;语句,ir会如何改变?)","2","2,","20)","24","2;","3","3,","4","4)","4,","4的式子来计算出y[1]的地址)","5","5,","6","6};","8)","=","==","_b0:","_b1","_b1:","_b2","_b2,","_b2:","_b2结尾都是jump指令,表示从true_bb、false_bb跳转到next_bb。","_b3","_b3:","_b3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_b0的结尾是一个branch指令,_b1,","_b3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_b4,","_b5两个基本块。多出来的_b6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_b6?提示:如果break;语句后面加上a","_t0","_t0,","_t0[i32","_t1","_t1)","_t10","_t10)","_t11","_t1[i32","_t1。为了满足","_t2","_t3","_t4","_t4]","_t5","_t6","_t7","_t8","_t8,","_t9","_t9]","alloca","alloca、load、stor","argumentlist","arrayref","arraytype())","arraytype(2,","arraytype(3,","assign","b","b;","b[1]);","b[2][3]","binaryop(add)","binaryop(eq)","binaryop(lt)","binop(add)","block","break","call","conditional,表示条件表达式。","declar","declaration,","declarator(identifier(\"b\"),","declarator(identifier(\"x\"))","declarator(identifier(\"y\"),","elementptr:","empti","express","expression,表示赋值表达式。","foo(a,","foo(i32","foo(int","foo函数的参数表示为_t0,","function","i32","i32*","i32[3]*","identifier(\"a\")","identifier(\"b\")","identifier(\"foo\")","identifier(\"main\")","identifier(\"x\")","identifier(\"y\")","if(a)","initlist","int","intliteral(0)","intliteral(1)","intliteral(10)","intliteral(2)","intliteral(3)","intliteral(4)","intliteral(5)","intliteral(6)","ir。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。","ir,并能够输出","jump","load","loadaddr","lvalu","lvalue节点的例子,希望能帮到你。","lvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释)","main()","main(){","main函数中对于数组b,先使用alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在loadaddr指令获取a的地址之后,还要用load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。","minidecaf","paramet","parameter_list","parameterlist","program","return","specifier(tint)","ssa","store","tint","tint)))","unari","unaryop(neg)","vardecl","while(a","x","x,","y[1];","y[])","{","{1,","|","}","上述代码转化为ir后可能如下:","中场休息","中间代码生成","什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。","介绍","例:","先给当前函数新增一个基本块true_bb表示if语句的true分支入口。","先通过前端变量到ir的data对象的映射表,找到该节点所表示的前端变量对应的data对象。","具体示例可以参考短路求值。","分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用","和","在本例中,","在本例中,_b0的最后是第一个while语句的条件部分,while语句还生成了_b1,","在本例中,生成了_b1,","在遍历ast的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到ir的data对象的映射表等。","如果子节点是declaration,说明这是一个全局变量,就新建一个data对象,再访问该declaration节点,从而将该全局变量的前端信息存入data对象中,最后将其加入到当前program对象中的global_data列表。","如果子节点是function,就新建一个ir的function对象,再访问该function节点,从而将该函数的前端信息存入function对象中,最后将其加入到当前program对象中的functions列表。","如果是数组参数,则可以直接保存在寄存器中。","如果是标量参数,要另外在栈上开空间。(这是为了满足","如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个jump指令,表示从false_bb跳转到next_bb。","如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。","如果有初始化,","如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。","如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then","如果这是个全局变量,则新增loadaddr指令,表示加载全局变量的地址,获取对应地址的寄存器","如果这是个局部变量,则直接通过data对象获取对应地址的寄存器","如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的getelementptr指令,表示通过数组基地址和下标获取元素的地址。","完成这部分内容后,你的编译器应该能将","对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足","对于parameter_list节点,可以把前几个寄存器编号分配给参数。","对于program节点,先新建一个ir的program对象,然后我们只需要再遍历子节点。","对于数组则需要遍历integer节点,并分别使用store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。","对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增store指令,表示将得到的寄存器的值存入该标量对应的地址。","对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。","对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。","将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从body_bb跳转到body_cond_bb。","将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从true_bb跳转到next_bb。","开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。","形式的","形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是ssa)。","形式)","形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_t2来进行。对于y[1],利用下标和getelementptr指令可以得到其地址,然后通过load指令可以得到其值。(getelementptr指令是为了写起来方便快捷;这里你也可以通过基地址_t1和下标1,构造出_t1","形式,哪怕是局部标量,也要用alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。","指令来简单地实现","整体思路是通过遍历ast的节点,根据节点类型进行相应的处理。推荐先根据ast的遍历顺序写一个框架,再填充具体的处理逻辑。","是两个表达式节点,对于if语句,这两个变量是两个语句节点。","最后将当前基本块改为next_bb。","最后新增store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。","本部分仅供参考,你需要根据自己设计的ast和ir进行调整。","注意:","生成的ast可能如下:","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值进行学习。","由于每个组的ast和ir设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。","目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。","看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list,","程序翻译成满足","给当前函数新增一个基本块body_bb表示while语句的循环体入口。","给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。","给当前函数新增一个基本块next_bb表示if之后的基本块。","给当前函数新增一个基本块next_bb表示while之后的基本块。","访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理:","这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。","部分处理思路","预期目标"],"docs/contest/midend/ssa.html":["#","+","...","0","1","2","3","4","5","=",">","[,","[1,","[_t0,","[_t1,","[_t3,","[_t6,","[_t7,","]","],","_l0:","_l0],","_l1","_l1:","_l2","_l2:","_l2]","_t0","_t0,","_t1","_t2","_t2,","_t3","_t4","_t4,","_t5","_t5,","_t6","alloc","alloca","alloca、load","alloca、load、stor","alloc、load","alloc,load","analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。","assign","assignment,","beqz","book","c","cfg:https://szp15.com/post/how","chapter3:https://pfalcon.github.io/ssabook/latest/","code","compiling.github.io/minisysi","construct","definit","elimination)、常量传播(const","https://buaa","int","ir","jump","load","main:","main],","mem2reg","phi","propagation)、值域传播(valu","propagation)等。","rang","ret","se","singl","ssa","ssa/","ssa)是编译器中间表示(ir)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。","static","store","temp","tutorial/challenge/mem2reg/help.html","x","x1","y","y1","y2","。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。","一种可能的方案是使用","上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到","举个例子,一种可能的中间代码表示为:","仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次)","但如果将上述代码变为","使得我们可以在生成中间代码时,使用","例如,考虑下面这段伪代码:","例如,考虑使用","函数和变量重命名,两个阶段。","另一种可能的方案是使用","可以简化每个变量的属性,进而简化编译器的优化过程。","呢?","和","因为","在前端生成中间代码时,首先使用第二种方案利用","在实现","在此基础上,进行","在此表示感谢!","在第一阶段,记录每个局部变量相关的","在第二阶段,遍历所有基本块,对其中局部变量相关的","如何构建","将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入","形式的","形式:","很显然,其中变量","很遗憾,上述程序并不符合","我们为什么要这样做呢?","我们如何实现","我们注意到,变量","或","技术。","指令。","指令。phi","指令分配到内存中,之后每次访问变量都通过","指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的","指令快速地构建满足","指令显式地读写内存。使用上述方案编写的程序满足","指令的语法是","指令的顺序对结果没有影响)。","指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的","指令,但频繁地访问内存将导致严重的性能问题。","指令,并由此在基本块的开头插入","按照","时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。","有没有更好的解决方案呢?","有,我们可以将两种方案结合起来。","构造算法。一种常用的算法是将整个过程分为:插入","正因如此,许多编译器优化算法都建立在","由于循环体的存在可能被赋值多次,因此上述写法并不符合","由此,上述程序中每一个变量只被赋值了一次,满足了","由此,我们的程序可以改写为:","的","的值来自于","的值,一种可能的写法为:","的基础之上,例如:死代码消除(dead","的第一次赋值是不必须的,因为变量","的组合。ssa","的组合针对局部变量生成符合","的要求。","的要求。(注意,ssa","的要求,且避免了繁琐地构造","的要求,因为其中变量","的阶乘。","相关的解释和详细说明可以参考:","编写程序使用循环计算","编写程序计算","被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(reach","被赋值了两次。正确的写法应该为:","要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用","要求的代码。","语言的思路,我们可能给出如下写法:","转化:","这一信息。","这一解决方案也被称为","随后,在上述代码的基础上,","随后,我们需要实现","需要注意的是,所有的","静态单赋值","静态单赋值这一小节参考并改编自北航的编译课程实验文档:","静态单赋值(static"],"docs/contest/midend/cp.html":["*","+","0","10","15","2","3","5","=","_main:","_t0","_t0和_t1的值是常量,将_t0和_t1的值分别存入常量表。","_t1","_t2","_t3","_t4","_t5","_t6","def和def","ret","use关系,找出所有用到常量_t0和_t1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_t2的值为5,也是一个常量,将_t2的值加入常量表。","use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","例如,对于如下代码:","依据def","常量传播","常量传播/常量折叠","常量传播/常量折叠的实现","常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下:","常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。","常量传播通常依赖use","经过常量传播/常量折叠优化后,代码变为:","遍历所有语句,找出常量定义,将其全部加入常量表。例如:","重复上述过程,直到常量表不再增加为止。"],"docs/contest/midend/dce.html":["#","*","+","1","2","2,因此","5","5,因此","=","_main:","_t0","_t0、_t3、_t4","_t1","_t1、_t2","_t2","_t3","_t4","code","code。","code,可以删除。","dce","dce)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。","def和def","elimination,","return","use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","也是必要值。最终","也是必要值。继续找到","具体实现上,可以借助du/ud链来实现:","函数中的指令,如果不在set中,就可以认为是dead","因此可以优化为:","对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","当以上迭代函数稳定不变时,所有未标记的指令都可以认为是dead","找出函数所有的必要值,标记这些值的定义指令。","是必要值","此处举个例子:","死代码消除","死代码消除通常依赖于use","死代码消除(dead","然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。","的定义指令都可以认为是dead","的方法(来源于《高级编译器设计与实现》(鲸书)):","维护一个set,存储所有必要值的定义指令。","这里介绍一种","都是必要值,而","重复上一步,直到set不再变化。","顺着ud链,可以找到","首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。"],"docs/contest/backend.html":["#","#2","#2]","(some","...","//","0","0(t0)","0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(risc","1","2","3","4","5","6","=","[r0,","[r0]","_t0","_t0,","_t1","_t1,","a0","a0,","a1","a1,","add","ai即可。","aj,","architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。","array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为stackobject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如","bne","call","coalescing的论文中并没有提及函数调用约定的处理方式,在这里以risc","epilogu","f(int","first","getint","getint();","immedi","int","ir中的phi指令。通常phi指令会被翻译为mv指令,但留意多条phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。","ir里通常会假设数量无限的虚拟寄存器(或称作变量),但目标isa(instruct","label1","label1,后续再通过无用指令消除去掉li","ld","ldr","length","li","loadfromstack","loadstackaddr","lot","lsl","main()","main:","mov","move","mv","obj,","offset(sp)就足够了。需要注意的是storetostack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为loadstackaddr和一条store指令。","offset)","offset:","offset:将t0中的内容写入到栈上对象obj偏移offset处","offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0","omit","phase","pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。","prologu","putint","putint(int);","putint(x);","putint的liveout集合中,会与全部的cal","r0,","r1","r1,","regist","ret","return","s0","s0,","saved寄存器上。经过后续优化可能的最终汇编代码如下:","saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有cal","saved寄存器加入到call指令的def集合中,剩下的事情交给寄存器分配算法处理。考虑以下c语言片段:","saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g.","saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在cal","saved寄存器相干涉,这样x就会自动被分配到calle","second","set","sp,","ssa","storetostack","stuff...","swap","swap(int","swap(y,","swap:","t0","t0,","ti,","ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。","void","v为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个c语言片段:","v指令序列","v指令序列:","v汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。","v的i型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。","weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。","x","x)","x);","x,","x;","xi,","xi的方式将全部xi移入ti中,接下来再生成mv","y","y)","y,","zero,","{","}","代码生成","代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame","以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下:","但大多数时候ld","例如以下的risc","具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参)","再举一个arm的例子。arm的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列","函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。","可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。","可以被合并为一条指令:","可以被替换为bne","后端设计","在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。","在寄存器分配前可能对应如下代码:","在生成函数调用的代码时,除传参外,还需要考虑caller","在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码:","在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。","在这里我们介绍一种可能的实现方式。我们暂不考虑vla(vari","处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在iter","处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv","寄存器分配","寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spil","对于一条ir指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些ir指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。","对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。","将栈上对象obj偏移offset(立即数)处的内容加载到","常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。","必须是8的整数倍)。","指令调度","指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造dag,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。","指令选择","指令选择相关的窥孔优化","最终我们将以上的这些“指令”展开。例如loadfromstack可以保守地展开为以下risc","栈帧确定和最终代码生成","此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。","目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将ir翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。","目标架构相关优化","确定栈帧后生成函数的prologue和epilogue,其中主要包括calle","编译器后端的主要功能是将中间表示(ir)转换为目标架构的汇编代码,在我们的课程实验中即将tac翻译为risc","课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度)","调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量t1到tn,然后按照mv","这种汇编代码模式在数组访问中较为常见。","这里举几个例子:","这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_t0与a1相干涉(指令4的use集合、指令3的liveout集合包含a1,_t0在指令3的def集合中),因此_t0不能被分配到a1;同时_t0也与a0相干涉(指令6的use集合,指令5的liveout集合包含_t0,a0在指令5的def集合中),最终_t0被分配到一个新的寄存器t0。而_t1可以安全地被分配到a1,故指令4被视作无用指令消除。","这里简单地举几个例子。","逻辑与和逻辑或。可详见step4。","采用上述方式,x处于call","附:函数调用相关"],"REFERENCE.html":[":","abdulaziz","approach","book","c","c17","compil","compiler:","construct","ghuloum","gustedt","increment","jen","languag","live","monkey:","n2176(n2176","nora","program","risc","sandler","v","v(非官方)汇编指令用法","write","参考资料","手册","是","标准正式发布前的最后一版草案,根据","标准的编者之一","标准相比只有表述上的差异)","标准草案","的博文,其与"]},"length":63},"tokenStore":{"root":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.02531645569620253},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.035211267605633804},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.013440860215053764},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.018433179723502304},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.02247191011235955},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},",":{"docs":{},"g":{"docs":{},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"a":{"docs":{},"是":{"docs":{},"上":{"docs":{},"一":{"docs":{},"行":{"docs":{},"的":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"请":{"docs":{},"与":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}},")":{"docs":{},"完":{"docs":{},"成":{"docs":{},"通":{"docs":{},"过":{"docs":{},"例":{"docs":{},"子":{"docs":{},"学":{"docs":{},"习":{"docs":{},"一":{"docs":{},"节":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.016581632653061226}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},";":{"docs":{},"当":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{},"请":{"docs":{},"问":{"docs":{},"这":{"docs":{},"时":{"docs":{},"除":{"docs":{},"法":{"docs":{},"的":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"和":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"请":{"docs":{},"将":{"docs":{},"这":{"docs":{},"时":{"docs":{},"除":{"docs":{},"法":{"docs":{},"的":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"和":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"填":{"docs":{},"入":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"(":{"docs":{},"请":{"docs":{},"标":{"docs":{},"明":{"docs":{},"你":{"docs":{},"的":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"其":{"docs":{},"行":{"docs":{},"为":{"docs":{},"都":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{},"当":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"_":{"docs":{},"l":{"0":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"_":{"docs":{},"l":{"1":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"docs":{}}}}}}}}}},"docs":{}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"对":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"为":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{},"当":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"说":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"但":{"docs":{},"判":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"更":{"docs":{},"低":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"任":{"docs":{},"意":{"docs":{},"一":{"docs":{},"对":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"中":{"docs":{},"有":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"(":{"docs":{},"t":{"0":{"docs":{},")":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{}}},"(":{"docs":{},"假":{"docs":{},"设":{"docs":{},"该":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"使":{"docs":{},"用":{"docs":{},")":{"docs":{},"。":{"docs":{},"总":{"docs":{},"的":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"一":{"docs":{},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},"机":{"docs":{},"会":{"docs":{},"包":{"docs":{},"括":{"docs":{},"识":{"docs":{},"别":{"docs":{},"出":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"中":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"至":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"1":{"0":{"0":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.022321428571428572}},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},",":{"docs":{},"对":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"的":{"docs":{},"回":{"docs":{},"答":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}},".":{"1":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},".":{"0":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}}},"2":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"3":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"docs":{}},";":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"这":{"docs":{},"类":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"都":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"1":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},".":{"1":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"2":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"3":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"4":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"docs":{}}},"2":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},".":{"1":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"2":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"docs":{}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"3":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},"5":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}},"6":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"7":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"8":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"docs":{},".":{"1":{"docs":{},",":{"docs":{},"端":{"docs":{},"口":{"docs":{},"为":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{"./":{"ref":"./","tf":0.013745704467353952},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.15625},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.05154639175257732},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.01838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.043478260869565216},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.04424778761061947},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.04017857142857143},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03763440860215054},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"2":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"3":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"6":{"7":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"整":{"docs":{},"个":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.033707865168539325},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"不":{"docs":{},"会":{"docs":{},"见":{"docs":{},"到":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"一":{"docs":{},"条":{"docs":{},"声":{"docs":{},"明":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"上":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"i":{"docs":{},"r":{"docs":{},"会":{"docs":{},"如":{"docs":{},"何":{"docs":{},"改":{"docs":{},"变":{"docs":{},"?":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}},"一":{"docs":{},"起":{"docs":{},"提":{"docs":{},"交":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}},",":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"]":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}},",":{"docs":{},"补":{"docs":{},"码":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}},",":{"docs":{},"!":{"docs":{},"!":{"2":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},"docs":{}}},"当":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}},")":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"讲":{"docs":{},"讲":{"docs":{},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"docs":{}}}}}}}},"则":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"以":{"docs":{},"下":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"这":{"docs":{},"些":{"docs":{},"实":{"docs":{},"现":{"docs":{},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}},")":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"(":{"docs":{},"待":{"docs":{},"我":{"docs":{},"们":{"docs":{},"加":{"docs":{},"上":{"docs":{},"四":{"docs":{},"则":{"docs":{},"运":{"docs":{},"算":{"docs":{},"后":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}},"+":{"2":{"docs":{},"*":{"docs":{},"(":{"4":{"docs":{},"/":{"2":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"3":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"=":{"docs":{},"=":{"4":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"docs":{}}}},"docs":{}},"=":{"2":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}},"docs":{}},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},"其":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}}}}}}}}},"2":{"0":{"2":{"0":{"docs":{},".":{"0":{"4":{"docs":{},".":{"0":{"docs":{},")":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}}},"8":{"docs":{},".":{"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}}},"docs":{}},"docs":{}}},"3":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"4":{"0":{"0":{"0":{"0":{"0":{"1":{"docs":{},"@":{"1":{"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"docs":{},".":{"1":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"年":{"docs":{},"秋":{"docs":{},"季":{"docs":{},"学":{"docs":{},"期":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"配":{"docs":{},"置":{"docs":{},"好":{"docs":{},"的":{"docs":{},"机":{"docs":{},"器":{"docs":{},",":{"docs":{},"节":{"docs":{},"省":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"花":{"docs":{},"费":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"docs":{}},"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},".":{"0":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}},"docs":{}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"1":{"2":{"3":{"docs":{},")":{"docs":{},",":{"docs":{},"对":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"非":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"不":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"要":{"docs":{},"求":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"4":{"7":{"4":{"8":{"3":{"6":{"4":{"7":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025}}},"8":{"docs":{},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"写":{"docs":{},"成":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"2":{"3":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}},",":{"docs":{},"则":{"docs":{},"命":{"docs":{},"令":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}},"docs":{}},"3":{"3":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},";":{"docs":{},"}":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"docs":{},".":{"0":{"4":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"docs":{}},"docs":{}}},"4":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},":":{"0":{"0":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}},"docs":{}},"docs":{}}},"5":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"6":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.031914893617021274},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.024193548387096774},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.03409090909090909},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"2":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"3":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"4":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"5":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}},"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"报":{"docs":{},"告":{"docs":{},"的":{"docs":{},"标":{"docs":{},"题":{"docs":{},"是":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}},";":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.017006802721088437},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{},"则":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"否":{"docs":{},"则":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"^":{"3":{"1":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955}},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"docs":{}},"docs":{}},")":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377}},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"”":{"docs":{},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},"因":{"docs":{},"此":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}},"下":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"分":{"docs":{},"支":{"docs":{},"并":{"docs":{},"继":{"docs":{},"承":{"docs":{},"当":{"docs":{},"前":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"业":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"分":{"docs":{},"支":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"要":{"docs":{},"求":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"不":{"docs":{},"短":{"docs":{},"路":{"docs":{},",":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"该":{"docs":{},"做":{"docs":{},"何":{"docs":{},"种":{"docs":{},"修":{"docs":{},"改":{"docs":{},"?":{"docs":{},"简":{"docs":{},"述":{"docs":{},"你":{"docs":{},"的":{"docs":{},"思":{"docs":{},"路":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"对":{"docs":{},"于":{"docs":{},"后":{"docs":{},"端":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"的":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"和":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"+":{"3":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}},"docs":{}},",":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"3":{"0":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}}}},"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"5":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154}},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04411764705882353},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.024390243902439025},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"0":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"1":{"docs":{},".":{"4":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"docs":{}}},"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"2":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"3":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"4":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"5":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}},",":{"docs":{},"即":{"docs":{},"其":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"是":{"docs":{},"未":{"docs":{},"指":{"docs":{},"定":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}},"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353}}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"报":{"docs":{},"告":{"docs":{},"的":{"docs":{},"标":{"docs":{},"题":{"docs":{},"是":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}},")":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}},")":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}},"(":{"docs":{},"前":{"docs":{},"序":{"docs":{},"表":{"docs":{},"示":{"docs":{},")":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"应":{"docs":{},"该":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}}}}},"4":{"0":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"%":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"2":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"8":{"docs":{},"%":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.04054054054054054},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.03333333333333333},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},".":{"1":{"3":{"docs":{},".":{"2":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}}},"docs":{}}},"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"2":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"3":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"4":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"5":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"}":{"docs":{},";":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"的":{"docs":{},"式":{"docs":{},"子":{"docs":{},"来":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"y":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"docs":{}}}}}}}}}}},"5":{"0":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}},"2":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}}}}},"5":{"docs":{},"%":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"6":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603}}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0375},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.017857142857142856},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.03409090909090909},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}},".":{"1":{"0":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}},"1":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"2":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"3":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"对":{"docs":{},"于":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"至":{"docs":{},"多":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"4":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"使":{"docs":{},"用":{"docs":{},"不":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"开":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"是":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}},"5":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"6":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},")":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"必":{"docs":{},"然":{"docs":{},"是":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"一":{"docs":{},"个":{"docs":{},"内":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"完":{"docs":{},"全":{"docs":{},"被":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"外":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"所":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"。":{"docs":{},"且":{"docs":{},"在":{"docs":{},"内":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"外":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"该":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"所":{"docs":{},"指":{"docs":{},"派":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"或":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{},"不":{"docs":{},"可":{"docs":{},"见":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"7":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"8":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"9":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"报":{"docs":{},"告":{"docs":{},"的":{"docs":{},"标":{"docs":{},"题":{"docs":{},"是":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}}}},"中":{"docs":{},"对":{"docs":{},"于":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"来":{"docs":{},"回":{"docs":{},"想":{"docs":{},"一":{"docs":{},"下":{"docs":{},"后":{"docs":{},"端":{"docs":{},"每":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"做":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"%":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}}}}},")":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"取":{"docs":{},"消":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"资":{"docs":{},"格":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"新":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"第":{"docs":{},"十":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"1":{"7":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"的":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"基":{"docs":{},"本":{"docs":{},"上":{"docs":{},"是":{"docs":{},"你":{"docs":{},"总":{"docs":{},"是":{"docs":{},"会":{"docs":{},"包":{"docs":{},"含":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"两":{"docs":{},"个":{"docs":{},"是":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"准":{"docs":{},"备":{"docs":{},"的":{"docs":{},"。":{"docs":{},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"而":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"但":{"docs":{},"概":{"docs":{},"念":{"docs":{},"保":{"docs":{},"持":{"docs":{},"不":{"docs":{},"变":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}},"6":{"0":{"docs":{},"%":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}},"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.047619047619047616},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.046153846153846156},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"中":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"把":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"信":{"docs":{},"息":{"docs":{},"改":{"docs":{},"成":{"docs":{},"“":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"”":{"docs":{},"。":{"docs":{},"也":{"docs":{},"即":{"docs":{},"定":{"docs":{},"义":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"1":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"2":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"3":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"4":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}},")":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"附":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"}":{"docs":{},";":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"7":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.061224489795918366},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}},".":{"1":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"2":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"3":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}},"8":{"0":{"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"%":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"会":{"docs":{},"被":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"优":{"docs":{},"化":{"docs":{},"为":{"5":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}}}}}}}}},".":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"2":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"3":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},".":{"0":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"\"":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}}},"4":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"5":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"7":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"8":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"9":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"docs":{}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"9":{"0":{"docs":{},"%":{"docs":{},",":{"docs":{},"剩":{"docs":{},"余":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"]":{"docs":{},"+":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"代":{"docs":{},"表":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"而":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"t":{"docs":{},"则":{"docs":{},"是":{"docs":{},"被":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"中":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"将":{"docs":{},"其":{"docs":{},"变":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"看":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}},".":{"1":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"2":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"3":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"4":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"5":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"6":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"docs":{}},"_":{"docs":{},"]":{"docs":{},"*":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"docs":{},"(":{"0":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}},")":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.03125}}}},"1":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.07547169811320754}},")":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}},"2":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377}}},"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"i":{"docs":{"./":{"ref":"./","tf":0.010309278350515464}},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}}}}}}},"n":{"docs":{},"t":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513}},"e":{"docs":{},"g":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}},"i":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"docs":{}}},"k":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}},"g":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"t":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},")":{"docs":{},"来":{"docs":{},"快":{"docs":{},"速":{"docs":{},"获":{"docs":{},"得":{"docs":{},"一":{"docs":{},"个":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"s":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}}}}},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}}}},"s":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"v":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"y":{"docs":{},"s":{"docs":{},"v":{"docs":{},")":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"u":{"docs":{},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01913265306122449}}}}},"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591}}}}},"2":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}},"3":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"docs":{}}}}}}}}},"t":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"l":{"docs":{},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"s":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}}}}},"e":{"docs":{},"f":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0084530853761623}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"'":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},"*":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"/":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"%":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}},"+":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},"=":{"docs":{},"=":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},",":{"docs":{},"'":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.027777777777777776},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}}},"o":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}},"a":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"d":{"docs":{},"d":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}},"/":{"docs":{},"b":{"docs":{},")":{"docs":{},"*":{"docs":{},"b":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}},"=":{"1":{"docs":{},")":{"docs":{},"+":{"docs":{},"(":{"docs":{},"a":{"docs":{},"=":{"docs":{},"a":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"docs":{}}}}}}}}},"docs":{}},",":{"docs":{},"b":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"如":{"docs":{},"此":{"docs":{},"检":{"docs":{},"查":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"docs":{},"否":{"docs":{},"可":{"docs":{},"以":{"docs":{},"合":{"docs":{},"并":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"r":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}},"x":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"o":{"docs":{},"o":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"2":{"docs":{},")":{"docs":{},",":{"docs":{},"(":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}}}},"3":{"docs":{},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}},"2":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"3":{"docs":{},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}},"docs":{}}},"两":{"docs":{},"周":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"!":{"docs":{},"i":{"docs":{},"s":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"s":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}},"+":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.00847457627118644},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.020833333333333332},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.02247191011235955},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.025423728813559324},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.016778523489932886},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.026785714285714284},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.021505376344086023},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.045454545454545456}},"、":{"docs":{},"减":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}},".":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},".":{"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}},"a":{"docs":{},".":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}},"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}}},"a":{"docs":{},"l":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},",":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{},"@":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},".":{"docs":{},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.049019607843137254},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888}}}}},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.031746031746031744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"=":{"docs":{"./":{"ref":"./","tf":0.030927835051546393},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.025423728813559324},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02027027027027027},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.03860294117647059},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.04504504504504504},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.045346062052505964},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.03048780487804878},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.08163265306122448},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.04081632653061224},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.06440677966101695},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03686635944700461},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.02771362586605081},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.030120481927710843},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.034722222222222224},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.056179775280898875},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0205761316872428},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.05084745762711865},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.018596787827557058},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.09060402684563758},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.07065217391304347},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0663265306122449},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.11021505376344086},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.2073170731707317},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.11363636363636363},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"=":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}},"(":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"和":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},">":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0392156862745098},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},"=":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"s":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"1":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"docs":{}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.015267175572519083}},",":{"2":{"3":{"3":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},"docs":{}},"docs":{}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.026717557251908396}},"a":{"0":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}}}},"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}},"7":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"1":{"docs":{},"]":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"docs":{}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"7":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}},"docs":{}}}},"2":{"docs":{},"]":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"docs":{}}}},"4":{"docs":{},"]":{"docs":{},"[":{"5":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}},"docs":{}}}},"docs":{},"(":{"docs":{},"l":{"docs":{},"+":{"docs":{},"r":{"docs":{},")":{"docs":{},"/":{"2":{"docs":{},"]":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"docs":{}}}}}}},"]":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},";":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}},"[":{"1":{"2":{"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"docs":{}},"docs":{}},")":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"i":{"1":{"docs":{},"]":{"docs":{},"[":{"docs":{},"i":{"2":{"docs":{},"]":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}},"docs":{}}}},"d":{"2":{"docs":{},"d":{"3":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"d":{"docs":{},"n":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}},"docs":{}}},"docs":{}}},"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"j":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"d":{"1":{"docs":{},"]":{"docs":{},"[":{"docs":{},"d":{"2":{"docs":{},"]":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"[":{"docs":{},"d":{"docs":{},"n":{"docs":{},"]":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"元":{"docs":{},"素":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"[":{"docs":{},"m":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}},"b":{"docs":{},"]":{"docs":{},",":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"后":{"docs":{},"端":{"docs":{},"除":{"docs":{},"了":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"部":{"docs":{},"分":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"本":{"docs":{},"地":{"docs":{},"测":{"docs":{},"试":{"docs":{},"或":{"docs":{},"者":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"多":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.031073446327683617},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.013513513513513514},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.01838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.013524936601859678},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308}},")":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"省":{"docs":{},"略":{"docs":{},"掉":{"docs":{},"了":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},"中":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"旁":{"docs":{},"边":{"docs":{},"的":{"docs":{},"括":{"docs":{},"号":{"docs":{},")":{"docs":{},",":{"docs":{},"有":{"docs":{},"利":{"docs":{},"于":{"docs":{},"简":{"docs":{},"化":{"docs":{},"树":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"后":{"docs":{},"续":{"docs":{},"对":{"docs":{},"树":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"下":{"docs":{},"面":{"docs":{},"这":{"docs":{},"一":{"docs":{},"段":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"为":{"docs":{},"中":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"提":{"docs":{},"供":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"前":{"docs":{},"端":{"docs":{},"会":{"docs":{},"经":{"docs":{},"历":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"等":{"docs":{},"多":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"逐":{"docs":{},"一":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"检":{"docs":{},"验":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"以":{"docs":{},"及":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"想":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"锻":{"docs":{},"炼":{"docs":{},"你":{"docs":{},"对":{"docs":{},"分":{"docs":{},"析":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{},"理":{"docs":{},"解":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"m":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},".":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.02880658436213992}},"。":{"docs":{},"但":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"操":{"docs":{},"作":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"获":{"docs":{},"取":{"docs":{},"返":{"docs":{},"回":{"docs":{},"码":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}}}}},":":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},")":{"docs":{},"通":{"docs":{},"常":{"docs":{},"只":{"docs":{},"允":{"docs":{},"许":{"docs":{},"有":{"docs":{},"限":{"docs":{},"数":{"docs":{},"量":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"必":{"docs":{},"须":{"docs":{},"将":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"上":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"无":{"docs":{},"法":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"架":{"docs":{},"构":{"docs":{},"上":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"访":{"docs":{},"问":{"docs":{},"开":{"docs":{},"销":{"docs":{},"显":{"docs":{},"著":{"docs":{},"低":{"docs":{},"于":{"docs":{},"内":{"docs":{},"存":{"docs":{},"访":{"docs":{},"问":{"docs":{},"开":{"docs":{},"销":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"发":{"docs":{},"生":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"2":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549}},"e":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"c":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"v":{"docs":{},"[":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"m":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{},"和":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"中":{"docs":{},"和":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},",":{"docs":{},"v":{"docs":{},"l":{"docs":{},"a":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"它":{"docs":{},"。":{"docs":{},"请":{"docs":{},"你":{"docs":{},"简":{"docs":{},"要":{"docs":{},"回":{"docs":{},"答":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"决":{"docs":{},"定":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"可":{"docs":{},"变":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"2":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"3":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"认":{"docs":{},"为":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"对":{"docs":{},"象":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"期":{"docs":{},"确":{"docs":{},"定":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"统":{"docs":{},"一":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"为":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"、":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"所":{"docs":{},"有":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"均":{"docs":{},"使":{"docs":{},"用":{"docs":{},"单":{"docs":{},"独":{"docs":{},"的":{"docs":{},"“":{"docs":{},"指":{"docs":{},"令":{"docs":{},"”":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"2":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"3":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},"=":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},",":{"0":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"docs":{}},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"docs":{}}},"docs":{}}}}},"4":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"docs":{}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"i":{"docs":{},"c":{"docs":{},",":{"docs":{},"将":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}},"d":{"docs":{},"d":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.00847457627118644},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603}},"t":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.02608695652173913},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.030927835051546393},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"3":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.034722222222222224},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},":":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"信":{"docs":{},"息":{"docs":{},"决":{"docs":{},"定":{"docs":{},"为":{"docs":{},"当":{"docs":{},"前":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"、":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"、":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}},"、":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}},",":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"p":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.006762468300929839}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"_":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.02282333051563821}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"。":{"docs":{},"前":{"docs":{},"几":{"docs":{},"行":{"docs":{},"(":{"3":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}},"简":{"docs":{},"介":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{},"检":{"docs":{},"查":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"是":{"docs":{},"否":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"和":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},")":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"称":{"docs":{},"为":{"docs":{},"“":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"析":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"在":{"docs":{},"很":{"docs":{},"多":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"上":{"docs":{},"述":{"docs":{},"过":{"docs":{},"程":{"docs":{},"将":{"docs":{},"变":{"docs":{},"得":{"docs":{},"更":{"docs":{},"加":{"docs":{},"困":{"docs":{},"难":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"%":{"docs":{},"b":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}},"1":{"docs":{},"+":{"3":{"docs":{},";":{"docs":{},"。":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}},"docs":{}}},"2":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693}}}},"4":{"docs":{},";":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}},"docs":{},"f":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},",":{"docs":{},"其":{"docs":{},"大":{"docs":{},"致":{"docs":{},"实":{"docs":{},"现":{"docs":{},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},";":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.019230769230769232},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"}":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}},"i":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}},"t":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"u":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"t":{"docs":{},"o":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609}}}}},"j":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"b":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"z":{"docs":{},"i":{"docs":{},"z":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.038135593220338986},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}},",":{"docs":{},"当":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"、":{"docs":{},"b":{"docs":{},"e":{"docs":{},"q":{"docs":{},"z":{"docs":{},"(":{"docs":{},"条":{"docs":{},"件":{"docs":{},"为":{"docs":{},"假":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"转":{"docs":{},")":{"docs":{},"、":{"docs":{},"b":{"docs":{},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{},"(":{"docs":{},"条":{"docs":{},"件":{"docs":{},"为":{"docs":{},"真":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"转":{"docs":{},")":{"docs":{},"或":{"docs":{},"者":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.059907834101382486},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.022222222222222223},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}}},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},":":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},"就":{"docs":{},"终":{"docs":{},"止":{"docs":{},"循":{"docs":{},"环":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}},",":{"docs":{},"或":{"docs":{},"者":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}}}}}}}}}},"。":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"(":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"g":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478}},"(":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},")":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}},"h":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"e":{"docs":{},",":{"docs":{},"索":{"docs":{},"引":{"docs":{},"下":{"docs":{},"标":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"r":{"docs":{},"k":{"docs":{},"u":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"_":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},"*":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},")":{"docs":{},"和":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"s":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"s":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},",":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"选":{"docs":{},"项":{"docs":{},"中":{"docs":{},"写":{"docs":{},"上":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"e":{"docs":{},"q":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"l":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"o":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},")":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"你":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"b":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"i":{"docs":{},"r":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"对":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"无":{"docs":{},"任":{"docs":{},"何":{"docs":{},"限":{"docs":{},"制":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}},"其":{"docs":{},"行":{"docs":{},"为":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"多":{"docs":{},"种":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"可":{"docs":{},"能":{"docs":{},"性":{"docs":{},"之":{"docs":{},"一":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"对":{"docs":{},"子":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"求":{"docs":{},"值":{"docs":{},"都":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}},"z":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},":":{"docs":{},"开":{"docs":{},"始":{"docs":{},"下":{"docs":{},"一":{"docs":{},"轮":{"docs":{},"迭":{"docs":{},"代":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}},"本":{"docs":{},"轮":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"进":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"次":{"docs":{},"迭":{"docs":{},"代":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},",":{"docs":{},"则":{"docs":{},"图":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"从":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"n":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"z":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.018433179723502304},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504}}}},"o":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}},"s":{"docs":{},"s":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}},",":{"docs":{},"f":{"docs":{},"涂":{"docs":{},"成":{"docs":{},"相":{"docs":{},"同":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}},"有":{"docs":{},"边":{"docs":{},"相":{"docs":{},"连":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},"中":{"docs":{},"有":{"docs":{},"多":{"docs":{},"少":{"docs":{},"个":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"2":{"docs":{},"]":{"docs":{},"[":{"3":{"docs":{},"]":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}},"docs":{}}},"c":{"1":{"7":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.1111111111111111}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"3":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"p":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"/":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"r":{"docs":{},"*":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.013745704467353952},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"(":{"docs":{},"持":{"docs":{},"续":{"docs":{},"集":{"docs":{},"成":{"docs":{},")":{"docs":{},"来":{"docs":{},"测":{"docs":{},"试":{"docs":{},"大":{"docs":{},"家":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"及":{"docs":{},"提":{"docs":{},"交":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"修":{"docs":{},"改":{"docs":{},"此":{"docs":{},"文":{"docs":{},"件":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}},"这":{"docs":{},"不":{"docs":{},"会":{"docs":{},"对":{"docs":{},"你":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"产":{"docs":{},"生":{"docs":{},"影":{"docs":{},"响":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"d":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04411764705882353},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"(":{"docs":{},"截":{"docs":{},"至":{"docs":{},"文":{"docs":{},"档":{"docs":{},"写":{"docs":{},"作":{"docs":{},"时":{"docs":{},"此":{"docs":{},"为":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"成":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"n":{"docs":{},"d":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.04054054054054054},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}},",":{"docs":{},"真":{"docs":{},"分":{"docs":{},"支":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}},"更":{"docs":{},"新":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03225806451612903},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513}},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"通":{"docs":{},"常":{"docs":{},"在":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"层":{"docs":{},"级":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"课":{"docs":{},"上":{"docs":{},"也":{"docs":{},"有":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"是":{"docs":{},"低":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"缺":{"docs":{},"乏":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"标":{"docs":{},"号":{"docs":{},"、":{"docs":{},"地":{"docs":{},"址":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"规":{"docs":{},"定":{"docs":{},"如":{"docs":{},"何":{"docs":{},"用":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"机":{"docs":{},"制":{"docs":{},"实":{"docs":{},"现":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"的":{"docs":{},"论":{"docs":{},"文":{"docs":{},"中":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"提":{"docs":{},"及":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"以":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"g":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"见":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"z":{"docs":{},"p":{"1":{"5":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"d":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0392156862745098},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}}}}}},"p":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"u":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"p":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"a":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}},"l":{"docs":{},"l":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.018475750577367205},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.022900763358778626}},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722}},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},",":{"docs":{},"语":{"docs":{},"句":{"docs":{},"中":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"返":{"docs":{},"还":{"docs":{},"给":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549}},"是":{"docs":{},"单":{"docs":{},"一":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"到":{"docs":{},"了":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203}}}},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},",":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"docs":{}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728}},"}":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"docs":{}},"+":{"docs":{},"+":{"1":{"7":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}},"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}},",":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"(":{"docs":{},".":{"docs":{},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}},"_":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"x":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"d":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"新":{"docs":{},"的":{"docs":{},"且":{"docs":{},"更":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"下":{"docs":{},"复":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"*":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"f":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.029411764705882353},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.014705882352941176},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}},"链":{"docs":{},"、":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"和":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"a":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"z":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"只":{"docs":{},"用":{"docs":{},"里":{"docs":{},"面":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"t":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},")":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"g":{"docs":{},"(":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"图":{"docs":{},")":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},",":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.04672897196261682}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}},"}":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},",":{"docs":{},"到":{"docs":{},"底":{"docs":{},"是":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"?":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"docs":{}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"i":{"docs":{},"a":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"v":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"=":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"c":{"docs":{},"e":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}},")":{"docs":{},"即":{"docs":{},"无":{"docs":{},"用":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},",":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"不":{"docs":{},"可":{"docs":{},"达":{"docs":{},"代":{"docs":{},"码":{"docs":{},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{},"前":{"docs":{},"者":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"作":{"docs":{},"用":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"多":{"docs":{},"余":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},")":{"docs":{},",":{"docs":{},"后":{"docs":{},"者":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"永":{"docs":{},"远":{"docs":{},"无":{"docs":{},"法":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"m":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},".":{"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.05357142857142857},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{},",":{"docs":{},"托":{"docs":{},"管":{"docs":{},"至":{"docs":{},"私":{"docs":{},"有":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"请":{"docs":{},"不":{"docs":{},"要":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"任":{"docs":{},"何":{"docs":{},"访":{"docs":{},"问":{"docs":{},"权":{"docs":{},"限":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"c":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.03640776699029126},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.03292181069958848},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"这":{"docs":{},"种":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"编":{"docs":{},"译":{"docs":{},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}},"m":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"s":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"p":{"docs":{},"h":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},"以":{"docs":{},"及":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"(":{"docs":{},"助":{"docs":{},"教":{"docs":{},"写":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},"暴":{"docs":{},"力":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"觉":{"docs":{},"得":{"docs":{},"它":{"docs":{},"不":{"docs":{},"够":{"docs":{},"好":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"的":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"换":{"docs":{},"掉":{"docs":{},"它":{"docs":{},")":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"这":{"docs":{},"里":{"docs":{},"最":{"docs":{},"主":{"docs":{},"要":{"docs":{},"的":{"docs":{},"是":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"将":{"docs":{},"中":{"docs":{},"端":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"采":{"docs":{},"用":{"docs":{},"了":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"模":{"docs":{},"式":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"进":{"docs":{},"行":{"docs":{},"上":{"docs":{},"述":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"将":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"优":{"docs":{},"化":{"docs":{},"后":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"v":{"docs":{},"m":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"2":{"0":{"0":{"6":{"docs":{},".":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"g":{"docs":{},"o":{"docs":{},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"/":{"1":{"1":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"2":{"4":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"2":{"4":{"docs":{},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"a":{"docs":{},"y":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"2":{"2":{"2":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"8":{"7":{"9":{"6":{"8":{"0":{"7":{"8":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"a":{"docs":{},"a":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"m":{"docs":{},"i":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}},"s":{"docs":{},"_":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}}},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"习":{"docs":{},"惯":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"i":{"2":{"docs":{},"d":{"3":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"*":{"docs":{},"d":{"docs":{},"n":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}},"docs":{}}},"3":{"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.016304347826086956},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.061224489795918366}},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.012755102040816327}}},"[":{"3":{"docs":{},"]":{"docs":{},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}},"docs":{}}},"docs":{}},"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.024054982817869417},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.03333333333333333},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.03818615751789976},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.030612244897959183},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.05},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.0763888888888889},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.11235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.009298393913778529},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.012755102040816327},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.022900763358778626}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}},"2":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"docs":{},"t":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"e":{"docs":{},"g":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}},"e":{"docs":{},"r":{"docs":{},"(":{"2":{"0":{"2":{"4":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"1":{"0":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.008928571428571428}}}},"2":{"0":{"2":{"4":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}},"docs":{}},"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"3":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"4":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"5":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"6":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}},";":{"docs":{},"关":{"docs":{},"于":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}}},")":{"docs":{},"从":{"docs":{},"左":{"docs":{},"到":{"docs":{},"右":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.009708737864077669},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},"(":{"docs":{},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{},"传":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"根":{"docs":{},"据":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"子":{"docs":{},"类":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}},".":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.024691358024691357}},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.01646090534979424}}},"s":{"docs":{},",":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"化":{"docs":{},"等":{"docs":{},"级":{"docs":{},"(":{"docs":{},"否":{"docs":{},"则":{"docs":{},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"会":{"docs":{},"很":{"docs":{},"冗":{"docs":{},"长":{"docs":{},")":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"f":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},",":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"、":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}},"、":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}},"]":{"docs":{},"。":{"docs":{},"在":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"索":{"docs":{},"引":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"3":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}}}}}}}},"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}},"p":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}},"s":{"docs":{},"a":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"=":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"g":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}},"docs":{}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"d":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.0425531914893617},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0375},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.023166023166023165},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.023076923076923078},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.021834061135371178},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.05555555555555555},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02880658436213992}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01403061224489796}}}}},"b":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"表":{"docs":{},"示":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}}}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"f":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}}}}},";":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728}}}}},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},";":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014124293785310734},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03686635944700461},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.020134228187919462},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.021739130434782608},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},")":{"docs":{},"是":{"docs":{},"介":{"docs":{},"于":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"和":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"一":{"docs":{},"种":{"docs":{},"程":{"docs":{},"序":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"连":{"docs":{},"接":{"docs":{},"前":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"。":{"docs":{},"也":{"docs":{},"只":{"docs":{},"有":{"docs":{},"我":{"docs":{},"们":{"docs":{},"定":{"docs":{},"义":{"docs":{},"好":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"将":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"前":{"docs":{},"端":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"中":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"部":{"docs":{},"分":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"能":{"docs":{},"够":{"docs":{},"输":{"docs":{},"出":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"参":{"docs":{},"考":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"地":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"希":{"docs":{},"望":{"docs":{},"参":{"docs":{},"加":{"docs":{},"性":{"docs":{},"能":{"docs":{},"评":{"docs":{},"测":{"docs":{},",":{"docs":{},"你":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}},"、":{"docs":{},"完":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}},"中":{"docs":{},"的":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"会":{"docs":{},"被":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"但":{"docs":{},"留":{"docs":{},"意":{"docs":{},"多":{"docs":{},"条":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"同":{"docs":{},"时":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"上":{"docs":{},"“":{"docs":{},"同":{"docs":{},"时":{"docs":{},"发":{"docs":{},"生":{"docs":{},"”":{"docs":{},",":{"docs":{},"而":{"docs":{},"实":{"docs":{},"际":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"具":{"docs":{},"有":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},"被":{"docs":{},"错":{"docs":{},"误":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"假":{"docs":{},"设":{"docs":{},"数":{"docs":{},"量":{"docs":{},"无":{"docs":{},"限":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"或":{"docs":{},"称":{"docs":{},"作":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"但":{"docs":{},"目":{"docs":{},"标":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"=":{"0":{"docs":{},";":{"docs":{},";":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"docs":{}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}},"1":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"docs":{}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.01718213058419244},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"不":{"docs":{},"同":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}},"、":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"选":{"docs":{},"择":{"docs":{},"希":{"docs":{},"望":{"docs":{},"查":{"docs":{},"看":{"docs":{},"的":{"docs":{},"评":{"docs":{},"测":{"docs":{},"结":{"docs":{},"果":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"测":{"docs":{},"试":{"docs":{},"输":{"docs":{},"出":{"docs":{},"无":{"docs":{},"法":{"docs":{},"显":{"docs":{},"示":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"点":{"docs":{},"击":{"docs":{},"输":{"docs":{},"出":{"docs":{},"框":{"docs":{},"右":{"docs":{},"上":{"docs":{},"角":{"docs":{},"四":{"docs":{},"个":{"docs":{},"按":{"docs":{},"钮":{"docs":{},"中":{"docs":{},"最":{"docs":{},"左":{"docs":{},"边":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"如":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"/":{"1":{"2":{"3":{"4":{"5":{"6":{"docs":{},")":{"docs":{},"的":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},"(":{"docs":{},"如":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"/":{"docs":{},"j":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"/":{"1":{"2":{"3":{"4":{"5":{"6":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"取":{"docs":{},"测":{"docs":{},"试":{"docs":{},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}},"d":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"v":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"e":{"docs":{},"n":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},",":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"i":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"s":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"=":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"3":{"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{}}}}}}},"e":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"是":{"docs":{},"激":{"docs":{},"活":{"docs":{},"的":{"docs":{},")":{"docs":{},"和":{"docs":{},"激":{"docs":{},"活":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.01699029126213592},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"用":{"docs":{},"户":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"k":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"v":{"docs":{},"e":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}},"(":{"docs":{},"s":{"docs":{},"u":{"docs":{},"c":{"docs":{},"c":{"docs":{},"(":{"docs":{},"b":{"docs":{},")":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}},"、":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.030612244897959183}},"(":{"docs":{},"b":{"docs":{},")":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},"u":{"docs":{},"s":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}}}}}},"b":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.024096385542168676},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}},"e":{"docs":{},"r":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.024096385542168676}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}},"o":{"docs":{},"r":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.02654867256637168},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}}}}}}},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"信":{"docs":{},"息":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"o":{"docs":{},"p":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.018433179723502304}}},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"s":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"b":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}},"t":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"s":{"docs":{},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"e":{"docs":{},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"/":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126}},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"作":{"docs":{},"业":{"docs":{},";":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"一":{"docs":{},"些":{"docs":{},"较":{"docs":{},"为":{"docs":{},"详":{"docs":{},"细":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"来":{"docs":{},"系":{"docs":{},"统":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"(":{"docs":{},"或":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}},"(":{"docs":{},"&":{"docs":{},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"f":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}},"l":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}},"b":{"docs":{},"e":{"docs":{},"l":{"1":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"再":{"docs":{},"通":{"docs":{},"过":{"docs":{},"无":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"消":{"docs":{},"除":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}},"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03225806451612903},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"(":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"为":{"docs":{},"t":{"0":{"docs":{},"、":{"docs":{},"t":{"1":{"docs":{},"等":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}}},"docs":{}}}}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"n":{"docs":{},"d":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728}}},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}}},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{},"左":{"docs":{},"值":{"docs":{},"(":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},"即":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"为":{"docs":{},"某":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"如":{"docs":{},"在":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"能":{"docs":{},"帮":{"docs":{},"到":{"docs":{},"你":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"为":{"docs":{},":":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"的":{"docs":{},"等":{"docs":{},"号":{"docs":{},"左":{"docs":{},"边":{"docs":{},"部":{"docs":{},"分":{"docs":{},"、":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"后":{"docs":{},"者":{"docs":{},"且":{"docs":{},"该":{"docs":{},"节":{"docs":{},"点":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"存":{"docs":{},"有":{"docs":{},"该":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"(":{"docs":{},"下":{"docs":{},"面":{"docs":{},"会":{"docs":{},"对":{"docs":{},"“":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},"”":{"docs":{},"进":{"docs":{},"行":{"docs":{},"解":{"docs":{},"释":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"r":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},"、":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}}}}}}},"docs":{}}},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"l":{"docs":{},"v":{"docs":{},"m":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}},"d":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}},"m":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.027491408934707903},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":5.033898305084746},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"差":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"标":{"docs":{},"志":{"docs":{},"符":{"docs":{},"号":{"docs":{},"、":{"docs":{},"数":{"docs":{},"组":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"等":{"docs":{},"语":{"docs":{},"法":{"docs":{},"上":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},",":{"docs":{},"难":{"docs":{},"度":{"docs":{},"有":{"docs":{},"所":{"docs":{},"降":{"docs":{},"低":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},"u":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"{":{"1":{"0":{"0":{"docs":{},",":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}},"docs":{}}},"p":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"s":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},")":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"其":{"docs":{},"数":{"docs":{},"目":{"docs":{},"有":{"docs":{},"限":{"docs":{},";":{"docs":{},"而":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}},"u":{"docs":{},"l":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"t":{"docs":{},"i":{"docs":{},"_":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"l":{"docs":{},"p":{"3":{"2":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}},"docs":{}},"docs":{}}}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"=":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}}}},"docs":{}},"docs":{}}}}}}},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},")":{"docs":{},",":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"可":{"docs":{},"以":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"自":{"docs":{},"行":{"docs":{},"根":{"docs":{},"据":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.0205761316872428},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.016706443914081145},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.030612244897959183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"(":{"docs":{},")":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"{":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},":":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}},"y":{"docs":{},",":{"docs":{},"它":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"(":{"docs":{},"可":{"docs":{},"忽":{"docs":{},"略":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"对":{"docs":{},"于":{"docs":{},"数":{"docs":{},"组":{"docs":{},"b":{"docs":{},",":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"指":{"docs":{},"令":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"再":{"docs":{},"将":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"存":{"docs":{},"到":{"docs":{},"各":{"docs":{},"个":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"a":{"docs":{},"是":{"docs":{},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"知":{"docs":{},"道":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"在":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"获":{"docs":{},"取":{"docs":{},"a":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"还":{"docs":{},"要":{"docs":{},"用":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},"将":{"docs":{},"其":{"docs":{},"值":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"b":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"也":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"由":{"docs":{},"于":{"docs":{},"它":{"docs":{},"不":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"]":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}},"o":{"docs":{},"d":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"e":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"m":{"2":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012}}}}}},"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.05343511450381679}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"则":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}},"n":{"2":{"1":{"7":{"6":{"docs":{},"(":{"docs":{},"n":{"2":{"1":{"7":{"6":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"e":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}},"]":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"d":{"docs":{},"e":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"c":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"e":{"docs":{},"g":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},"e":{"docs":{},"d":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"r":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"(":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"[":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},",":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"u":{"docs":{},"r":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"p":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.05263157894736842}},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"实":{"docs":{},"际":{"docs":{},"不":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"为":{"docs":{},"缩":{"docs":{},"短":{"docs":{},"文":{"docs":{},"件":{"docs":{},"夹":{"docs":{},"名":{"docs":{},"字":{"docs":{},"的":{"docs":{},"长":{"docs":{},"度":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"修":{"docs":{},"改":{"docs":{},"~":{"docs":{},"/":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"=":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"%":{"docs":{},"d":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}}}}},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"’":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"、":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"类":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"的":{"docs":{},"构":{"docs":{},"造":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"受":{"docs":{},"了":{"docs":{},"三":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"代":{"docs":{},"表":{"docs":{},"了":{"docs":{},"构":{"docs":{},"建":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"左":{"docs":{},"部":{"docs":{},",":{"docs":{},"p":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"右":{"docs":{},"部":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"即":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"p":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"右":{"docs":{},"部":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"没":{"docs":{},"有":{"docs":{},")":{"docs":{},",":{"docs":{},"以":{"docs":{},"此":{"docs":{},"类":{"docs":{},"推":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"递":{"docs":{},"归":{"docs":{},"下":{"docs":{},"去":{"docs":{},",":{"docs":{},"就":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"完":{"docs":{},"整":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"最":{"docs":{},"后":{"docs":{},"就":{"docs":{},"会":{"docs":{},"变":{"docs":{},"为":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}}}}}}}}}},"docs":{}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"[":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"[":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},")":{"docs":{},",":{"docs":{},"大":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"打":{"docs":{},"头":{"docs":{},"的":{"docs":{},"是":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"e":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"、":{"docs":{},"值":{"docs":{},"域":{"docs":{},"传":{"docs":{},"播":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549}},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.02531645569620253}}}}}}}},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}},"x":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"与":{"docs":{},"全":{"docs":{},"部":{"docs":{},"的":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757}},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"下":{"docs":{},"面":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"指":{"docs":{},"出":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"$":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.020785219399538105}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"e":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.027777777777777776},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}},"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"最":{"docs":{},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"是":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}},"(":{"docs":{},"&":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"*":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"i":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"docs":{}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"3":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0392156862745098}},".":{"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"docs":{}}},"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.09803921568627451},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.013100436681222707},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.012345679012345678}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{},"展":{"docs":{},"开":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"偏":{"docs":{},"移":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"打":{"docs":{},"算":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"s":{"docs":{},"p":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寻":{"docs":{},"址":{"docs":{},",":{"docs":{},"你":{"docs":{},"最":{"docs":{},"好":{"docs":{},"维":{"docs":{},"护":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"中":{"docs":{},"s":{"docs":{},"p":{"docs":{},"发":{"docs":{},"生":{"docs":{},"的":{"docs":{},"变":{"docs":{},"化":{"docs":{},"并":{"docs":{},"计":{"docs":{},"算":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"s":{"docs":{},"p":{"docs":{},"的":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"(":{"docs":{},"主":{"docs":{},"要":{"docs":{},"为":{"docs":{},"了":{"docs":{},"应":{"docs":{},"对":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"参":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.019417475728155338},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"那":{"docs":{},"是":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"l":{"docs":{},"i":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}},"y":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"为":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"模":{"docs":{},"块":{"docs":{},"而":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"为":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"相":{"docs":{},"关":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"u":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"p":{"docs":{},"a":{"docs":{},":":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}},"1":{"docs":{},"]":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"则":{"docs":{},"是":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{},"p":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},"为":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"。":{"docs":{},"你":{"docs":{},"会":{"docs":{},"看":{"docs":{},"到":{"docs":{},"我":{"docs":{},"们":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"这":{"docs":{},"里":{"docs":{},"不":{"docs":{},"太":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"符":{"docs":{},"号":{"docs":{},"不":{"docs":{},"止":{"docs":{},"有":{"docs":{},"减":{"docs":{},"号":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"将":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"解":{"docs":{},"析":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"2":{"docs":{},"]":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"6":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"docs":{}},"_":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"i":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03225806451612903}}},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}}}},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.019417475728155338},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}}}}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"即":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},")":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}},"与":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"如":{"docs":{},"何":{"docs":{},"提":{"docs":{},"交":{"docs":{},"课":{"docs":{},"程":{"docs":{},"报":{"docs":{},"告":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}},"我":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"知":{"docs":{},"道":{"docs":{},"我":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"0":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.015267175572519083}}}},"1":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}}}},"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"e":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.024390243902439025},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.024096385542168676},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.024774774774774775},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.02389705882352941},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.019305019305019305},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.033707865168539325},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.012755102040816327},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.02531645569620253}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},".":{"docs":{},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"l":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"o":{"docs":{},"g":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"g":{"0":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"1":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"docs":{},"_":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":3.3888888888888884},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":3.3648867313915853},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":3.3662551440329214},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01977401129943503},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.015765765765765764},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.05555555555555555}},"v":{"3":{"2":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},"docs":{}},"6":{"4":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.009708737864077669},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}},"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.014563106796116505},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},".":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}}}}}}}}},"v":{"3":{"2":{"docs":{},"/":{"6":{"4":{"docs":{},"g":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"docs":{}},"docs":{}},"i":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"m":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"docs":{}},"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}},"a":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"、":{"docs":{},"s":{"docs":{},"p":{"docs":{},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"、":{"docs":{},"f":{"docs":{},"p":{"docs":{},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"、":{"docs":{},"a":{"0":{"docs":{},"&":{"docs":{},"a":{"1":{"docs":{},"(":{"docs":{},"存":{"docs":{},"放":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},")":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"单":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"简":{"docs":{},"化":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"n":{"docs":{},"g":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"s":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115}},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}},".":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"[":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}}},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"s":{"0":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"1":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"2":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"v":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.023094688221709007},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"d":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"即":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},"全":{"docs":{},"部":{"docs":{},"是":{"docs":{},"无":{"docs":{},"效":{"docs":{},"的":{"docs":{},"。":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"如":{"docs":{},"果":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"前":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"从":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"获":{"docs":{},"取":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"(":{"docs":{},"潜":{"docs":{},"在":{"docs":{},"的":{"docs":{},")":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},",":{"docs":{},"故":{"docs":{},"对":{"docs":{},"于":{"docs":{},"所":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"这":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"之":{"docs":{},"为":{"docs":{},"“":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"时":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"或":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"r":{"docs":{},"a":{"docs":{},"会":{"docs":{},"在":{"docs":{},"什":{"docs":{},"么":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"被":{"docs":{},"修":{"docs":{},"改":{"docs":{},"?":{"docs":{},"不":{"docs":{},"过":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"总":{"docs":{},"是":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"r":{"docs":{},"a":{"docs":{},"。":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"某":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"和":{"docs":{},"u":{"docs":{},"n":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"来":{"docs":{},"达":{"docs":{},"到":{"docs":{},"上":{"docs":{},"述":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"且":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"解":{"docs":{},"除":{"docs":{},"所":{"docs":{},"有":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"后":{"docs":{},"续":{"docs":{},"仍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"必":{"docs":{},"须":{"docs":{},"被":{"docs":{},"倒":{"docs":{},"腾":{"docs":{},"到":{"docs":{},"别":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},",":{"docs":{},"如":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},",":{"docs":{},"这":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"让":{"docs":{},"所":{"docs":{},"有":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"被":{"docs":{},"丢":{"docs":{},"到":{"docs":{},"了":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"?":{"docs":{},"似":{"docs":{},"乎":{"docs":{},"有":{"docs":{},"些":{"docs":{},"多":{"docs":{},"余":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"在":{"docs":{},"其":{"docs":{},"它":{"docs":{},"指":{"docs":{},"令":{"docs":{},"看":{"docs":{},"来":{"docs":{},"是":{"docs":{},"无":{"docs":{},"事":{"docs":{},"发":{"docs":{},"生":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"种":{"docs":{},"更":{"docs":{},"简":{"docs":{},"便":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"它":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"上":{"docs":{},"一":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"被":{"docs":{},"放":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"得":{"docs":{},"空":{"docs":{},"闲":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"于":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"在":{"docs":{},"a":{"0":{"docs":{},"到":{"docs":{},"a":{"7":{"docs":{},"中":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}},"或":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"先":{"docs":{},"将":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"且":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"照":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"现":{"docs":{},"r":{"docs":{},"a":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"。":{"docs":{},"(":{"docs":{},"备":{"docs":{},"注":{"docs":{},":":{"docs":{},"严":{"docs":{},"格":{"docs":{},"来":{"docs":{},"讲":{"docs":{},"r":{"docs":{},"a":{"docs":{},"并":{"docs":{},"不":{"docs":{},"是":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"、":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"的":{"docs":{},"调":{"docs":{},"整":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"有":{"docs":{},"些":{"docs":{},"架":{"docs":{},"构":{"docs":{},"可":{"docs":{},"能":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"有":{"docs":{},"对":{"docs":{},"齐":{"docs":{},"要":{"docs":{},"求":{"docs":{},"(":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},".":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},"前":{"docs":{},"后":{"docs":{},"保":{"docs":{},"存":{"docs":{},"并":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"且":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"似":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"而":{"docs":{},"言":{"docs":{},"只":{"docs":{},"有":{"docs":{},"当":{"docs":{},"某":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"为":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"调":{"docs":{},"用":{"docs":{},"了":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},",":{"docs":{},"它":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"r":{"docs":{},"a":{"docs":{},"中":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"掉":{"docs":{},",":{"docs":{},"这":{"docs":{},"与":{"docs":{},"其":{"docs":{},"它":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"干":{"docs":{},"涉":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"x":{"docs":{},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},"鉴":{"docs":{},"于":{"docs":{},"r":{"docs":{},"a":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"用":{"docs":{},"途":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"它":{"docs":{},"视":{"docs":{},"作":{"docs":{},"一":{"docs":{},"个":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"1":{"docs":{},"中":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"保":{"docs":{},"证":{"docs":{},"了":{"docs":{},"传":{"docs":{},"参":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"都":{"docs":{},"是":{"docs":{},"空":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"地":{"docs":{},",":{"docs":{},"用":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"a":{"0":{"docs":{},"~":{"docs":{},"a":{"7":{"docs":{},"传":{"docs":{},"递":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"前":{"8":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"假":{"docs":{},"设":{"docs":{},"这":{"8":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},")":{"docs":{},"为":{"docs":{},"v":{"0":{"docs":{},"~":{"docs":{},"v":{"7":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"第":{"docs":{},"i":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"将":{"docs":{},"v":{"docs":{},"i":{"docs":{},"的":{"docs":{},"值":{"docs":{},"加":{"docs":{},"载":{"docs":{},"入":{"docs":{},"a":{"docs":{},"i":{"docs":{},"。":{"docs":{},"若":{"docs":{},"v":{"docs":{},"i":{"docs":{},"已":{"docs":{},"经":{"docs":{},"与":{"docs":{},"某":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"x":{"docs":{},"j":{"docs":{},"绑":{"docs":{},"定":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"指":{"docs":{},"令":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{},"但":{"docs":{},"它":{"docs":{},"有":{"docs":{},"着":{"docs":{},"和":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"上":{"docs":{},"。":{"docs":{},"经":{"docs":{},"过":{"docs":{},"后":{"docs":{},"续":{"docs":{},"优":{"docs":{},"化":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},",":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"交":{"docs":{},"给":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"以":{"docs":{},"下":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"片":{"docs":{},"段":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"5":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"6":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},"7":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"无":{"docs":{},"法":{"docs":{},"获":{"docs":{},"得":{"docs":{},"对":{"docs":{},"应":{"docs":{},"分":{"docs":{},"数":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.05154639175257732},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.05063291139240506},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.15625},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.041237113402061855},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.05319148936170213},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.058823529411764705},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05405405405405406},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.044444444444444446},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.05},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.06349206349206349},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.06153846153846154},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.05555555555555555},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.08163265306122448},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.03571428571428571}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"一":{"docs":{},"起":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{},"无":{"docs":{},"论":{"docs":{},"如":{"docs":{},"何":{"docs":{},",":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"好":{"docs":{},"好":{"docs":{},"休":{"docs":{},"息":{"docs":{},"一":{"docs":{},"下":{"docs":{},"吧":{"docs":{},"☕":{"docs":{},"️":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"_":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},")":{"docs":{},"这":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"在":{"docs":{},"进":{"docs":{},"行":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"动":{"docs":{},"态":{"docs":{},"维":{"docs":{},"护":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"结":{"docs":{},"点":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"从":{"docs":{},"内":{"docs":{},"到":{"docs":{},"外":{"docs":{},"所":{"docs":{},"有":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"我":{"docs":{},"们":{"docs":{},"开":{"docs":{},"启":{"docs":{},"一":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"时":{"docs":{},",":{"docs":{},"要":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"并":{"docs":{},"压":{"docs":{},"栈":{"docs":{},";":{"docs":{},"而":{"docs":{},"当":{"docs":{},"退":{"docs":{},"出":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"时":{"docs":{},",":{"docs":{},"要":{"docs":{},"弹":{"docs":{},"栈":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"此":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.029411764705882353},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.05555555555555555},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.023166023166023165},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.023076923076923078},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.026200873362445413},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.024691358024691357},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"(":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"*":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},")":{"docs":{},"?":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"s":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"r":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405}}}}},"e":{"docs":{},"p":{"1":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},":":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}},"1":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471}},":":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}}},"2":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},":":{"docs":{},"为":{"docs":{},"数":{"docs":{},"组":{"docs":{},"添":{"docs":{},"加":{"docs":{},"更":{"docs":{},"多":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}},"3":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},":":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"改":{"docs":{},"进":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}},"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.08},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},")":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"为":{"docs":{},"跟":{"docs":{},"着":{"docs":{},"文":{"docs":{},"档":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"学":{"docs":{},"习":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"请":{"docs":{},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}},":":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仅":{"docs":{},"有":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}},"2":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},":":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"3":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.02702702702702703},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728}},":":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}}},"4":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},":":{"docs":{},"比":{"docs":{},"较":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}},"5":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}},":":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}},"6":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},":":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}},"7":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},":":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"8":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},":":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}},"9":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},":":{"docs":{},"函":{"docs":{},"数":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}},"docs":{"./":{"ref":"./","tf":0.037800687285223365},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"_":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"=":{"1":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}},"docs":{}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.021505376344086023}},",":{"docs":{},"搜":{"docs":{},"索":{"docs":{},"u":{"docs":{},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"u":{"docs":{},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"2":{"0":{"docs":{},".":{"0":{"4":{"docs":{},".":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"]":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.019021739130434784}}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0076077768385460695}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},">":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.010869565217391304}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}},"e":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"q":{"docs":{},"z":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"序":{"docs":{},"列":{"docs":{},"中":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"问":{"docs":{},"题":{"docs":{},"需":{"docs":{},"要":{"docs":{},"解":{"docs":{},"决":{"docs":{},":":{"docs":{},"如":{"docs":{},"何":{"docs":{},"进":{"docs":{},"行":{"docs":{},"参":{"docs":{},"数":{"docs":{},"传":{"docs":{},"递":{"docs":{},"?":{"docs":{},"如":{"docs":{},"何":{"docs":{},"获":{"docs":{},"取":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"?":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"和":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},")":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"保":{"docs":{},"存":{"docs":{},"?":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"和":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"以":{"docs":{},"上":{"docs":{},"问":{"docs":{},"题":{"docs":{},"约":{"docs":{},"定":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"并":{"docs":{},"同":{"docs":{},"时":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"这":{"docs":{},"些":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"与":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"共":{"docs":{},"同":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"的":{"docs":{},"约":{"docs":{},"定":{"docs":{},"称":{"docs":{},"为":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"f":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"分":{"docs":{},"配":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"m":{"4":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"e":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"m":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"a":{"0":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"docs":{}}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"a":{"0":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"docs":{}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"i":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"。":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}}}}}}}}}}},"\"":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},",":{"docs":{},"另":{"docs":{},"外":{"docs":{},"这":{"docs":{},"里":{"docs":{},"也":{"docs":{},"有":{"docs":{},"(":{"docs":{},"非":{"docs":{},"官":{"docs":{},"方":{"docs":{},"的":{"docs":{},")":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"法":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{},"下":{"docs":{},"图":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.014563106796116505},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}},"(":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}},",":{"docs":{},"并":{"docs":{},"恢":{"docs":{},"复":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.018475750577367205},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"s":{"docs":{},"h":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.10526315789473684},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}},"a":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.006377551020408163},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03225806451612903},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"/":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}},")":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"重":{"docs":{},"要":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"它":{"docs":{},"要":{"docs":{},"求":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},",":{"docs":{},"那":{"docs":{},"加":{"docs":{},"到":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"t":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"v":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"m":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},".":{"docs":{},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},",":{"docs":{},"并":{"docs":{},"利":{"docs":{},"用":{"docs":{},"它":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"docs":{}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},">":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"z":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"g":{"docs":{},"n":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}},"u":{"docs":{},"d":{"docs":{},"o":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"b":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"l":{"docs":{},"t":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"a":{"docs":{},"p":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}},"y":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}}}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"r":{"docs":{},"c":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.008152173913043478}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"u":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},";":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"/":{"docs":{},";":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"n":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.030927835051546393},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.016544117647058824},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0375},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.021834061135371178},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0205761316872428},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"y":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"就":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"docs":{}}}}},"那":{"docs":{},"么":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"o":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},")":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}},"i":{"docs":{},"x":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}},"o":{"docs":{},"n":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"{":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"函":{"docs":{},"数":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"思":{"docs":{},"考":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"何":{"docs":{},"处":{"docs":{},"进":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"1":{"4":{"docs":{},"/":{"docs":{},"*":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"改":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"docs":{}},"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}},",":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"可":{"docs":{},"用":{"docs":{},"的":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"s":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"e":{"docs":{},"r":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"@":{"docs":{},"i":{"docs":{},"p":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"链":{"docs":{},"、":{"docs":{},"可":{"docs":{},"达":{"docs":{},"定":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"所":{"docs":{},"有":{"docs":{},"用":{"docs":{},"到":{"docs":{},"常":{"docs":{},"量":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"这":{"docs":{},"些":{"docs":{},"地":{"docs":{},"方":{"docs":{},"计":{"docs":{},"算":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"也":{"docs":{},"是":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"将":{"docs":{},"计":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"也":{"docs":{},"加":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},"的":{"docs":{},"值":{"docs":{},"为":{"5":{"docs":{},",":{"docs":{},"也":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"将":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},"的":{"docs":{},"值":{"docs":{},"加":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{},")":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"可":{"docs":{},"以":{"docs":{},"帮":{"docs":{},"我":{"docs":{},"们":{"docs":{},"找":{"docs":{},"到":{"docs":{},"每":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"可":{"docs":{},"以":{"docs":{},"帮":{"docs":{},"我":{"docs":{},"们":{"docs":{},"找":{"docs":{},"到":{"docs":{},"每":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"b":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.0196078431372549},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},"e":{"docs":{},",":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}},"]":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}},"v":{"0":{"docs":{},",":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":3.3666666666666663},"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":3.3721682847896437},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":3.3580246913580245},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01977401129943503},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.015765765765765764},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.009191176470588236},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.024096385542168676},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"(":{"3":{"2":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}},"docs":{}},"官":{"docs":{},"方":{"docs":{},"资":{"docs":{},"料":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"指":{"docs":{},"令":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"序":{"docs":{},"列":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}},"相":{"docs":{},"关":{"docs":{},"内":{"docs":{},"容":{"docs":{},"补":{"docs":{},"充":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}},"s":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.015765765765765764},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":5.0130718954248366},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0084530853761623}},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"[":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"[":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"便":{"docs":{},"于":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"(":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}}}},"i":{"docs":{},"f":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},":":{"docs":{},"i":{"docs":{},"f":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"r":{"docs":{},"_":{"docs":{},"t":{"docs":{},",":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"按":{"docs":{},"照":{"docs":{},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"话":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"种":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"与":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"链":{"docs":{},"接":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{},"等":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"直":{"docs":{},"观":{"docs":{},"的":{"docs":{},"想":{"docs":{},"法":{"docs":{},"是":{"docs":{},"将":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"预":{"docs":{},"着":{"docs":{},"色":{"docs":{},"为":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"明":{"docs":{},"显":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"展":{"docs":{},"示":{"docs":{},"两":{"docs":{},"个":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"片":{"docs":{},"段":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"与":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"架":{"docs":{},"构":{"docs":{},"紧":{"docs":{},"密":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"也":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"进":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"i":{"docs":{},"型":{"docs":{},"指":{"docs":{},"令":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"无":{"docs":{},"效":{"docs":{},"果":{"docs":{},"指":{"docs":{},"令":{"docs":{},"消":{"docs":{},"除":{"docs":{},"(":{"docs":{},"m":{"docs":{},"v":{"docs":{},"到":{"docs":{},"自":{"docs":{},"身":{"docs":{},"、":{"docs":{},"加":{"0":{"docs":{},"、":{"docs":{},"乘":{"1":{"docs":{},")":{"docs":{},"、":{"docs":{},"强":{"docs":{},"度":{"docs":{},"削":{"docs":{},"减":{"docs":{},"(":{"docs":{},"乘":{"docs":{},"除":{"2":{"docs":{},"的":{"docs":{},"幂":{"docs":{},"转":{"docs":{},"移":{"docs":{},"位":{"docs":{},",":{"docs":{},"除":{"docs":{},"法":{"docs":{},"转":{"docs":{},"乘":{"docs":{},"法":{"docs":{},")":{"docs":{},"等":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"非":{"docs":{},"官":{"docs":{},"方":{"docs":{},")":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"法":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}},"i":{"docs":{},"n":{"1":{"0":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.029411764705882353}}}}}}},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}},"\"":{"docs":{},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"运":{"docs":{},"行":{"docs":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{},"假":{"docs":{},"设":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"知":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"的":{"docs":{},"是":{"docs":{},"常":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"它":{"docs":{},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"开":{"docs":{},"销":{"docs":{},"都":{"docs":{},"会":{"docs":{},"比":{"docs":{},"其":{"docs":{},"它":{"docs":{},"变":{"docs":{},"量":{"docs":{},"更":{"docs":{},"低":{"docs":{},":":{"docs":{},"无":{"docs":{},"须":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"时":{"docs":{},"只":{"docs":{},"需":{"docs":{},"一":{"docs":{},"条":{"docs":{},"l":{"docs":{},"i":{"docs":{},"指":{"docs":{},"令":{"docs":{},"而":{"docs":{},"不":{"docs":{},"必":{"docs":{},"生":{"docs":{},"成":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"。":{"docs":{},"这":{"docs":{},"种":{"docs":{},"低":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"开":{"docs":{},"销":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"优":{"docs":{},"先":{"docs":{},"成":{"docs":{},"为":{"docs":{},"被":{"docs":{},"踢":{"docs":{},"出":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"倒":{"docs":{},"霉":{"docs":{},"蛋":{"docs":{},"候":{"docs":{},"选":{"docs":{},"。":{"docs":{},"(":{"docs":{},"思":{"docs":{},"考":{"docs":{},":":{"docs":{},"我":{"docs":{},"们":{"docs":{},"是":{"docs":{},"否":{"docs":{},"应":{"docs":{},"该":{"docs":{},"优":{"docs":{},"先":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"?":{"docs":{},")":{"docs":{},"为":{"docs":{},"了":{"docs":{},"给":{"docs":{},"变":{"docs":{},"量":{"docs":{},"设":{"docs":{},"定":{"docs":{},"合":{"docs":{},"理":{"docs":{},"的":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"权":{"docs":{},"重":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"一":{"docs":{},"些":{"docs":{},"分":{"docs":{},"析":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.01944209636517329},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.024456521739130436},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}},"1":{"docs":{},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"2":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}},"i":{"docs":{},"f":{"docs":{},"(":{"docs":{},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}}}}},"}":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"}":{"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011583011583011582},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.033707865168539325},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.014370245139475908},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"]":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"”":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},",":{"docs":{},"且":{"docs":{},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"被":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}},")":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.024456521739130436}}}},"↩":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"上":{"docs":{},"实":{"docs":{},"现":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},",":{"docs":{},"如":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"标":{"docs":{},"注":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"静":{"docs":{},"态":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"打":{"docs":{},"开":{"docs":{},"你":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"在":{"docs":{},"界":{"docs":{},"面":{"docs":{},"的":{"docs":{},"右":{"docs":{},"侧":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"作":{"docs":{},"为":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"面":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},",":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"将":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"只":{"docs":{},"是":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"了":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"原":{"docs":{},"理":{"docs":{},",":{"docs":{},"请":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"论":{"docs":{},"文":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},"描":{"docs":{},"述":{"docs":{},"是":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"图":{"docs":{},"所":{"docs":{},"示":{"docs":{},"(":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"先":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"图":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"线":{"docs":{},"边":{"docs":{},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"母":{"docs":{},"看":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"看":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"图":{"docs":{},"中":{"docs":{},"的":{"docs":{},"染":{"docs":{},"色":{"docs":{},"方":{"docs":{},"案":{"docs":{},"就":{"docs":{},"对":{"docs":{},"应":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"述":{"docs":{},"步":{"docs":{},"骤":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"i":{"docs":{},"r":{"docs":{},"后":{"docs":{},"可":{"docs":{},"能":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}}}}}}}}},"关":{"docs":{},"系":{"docs":{},"变":{"docs":{},"得":{"docs":{},"更":{"docs":{},"加":{"docs":{},"显":{"docs":{},"而":{"docs":{},"易":{"docs":{},"见":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"轻":{"docs":{},"松":{"docs":{},"地":{"docs":{},"得":{"docs":{},"到":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}},"下":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}},"运":{"docs":{},"行":{"docs":{},"(":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"面":{"docs":{},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"是":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"指":{"docs":{},"南":{"docs":{},",":{"docs":{},"请":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"小":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"段":{"docs":{},"含":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"无":{"docs":{},"需":{"docs":{},"与":{"docs":{},"其":{"docs":{},"完":{"docs":{},"全":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"总":{"docs":{},"一":{"docs":{},"下":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"我":{"docs":{},"们":{"docs":{},"列":{"docs":{},"出":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}}},"将":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"以":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"指":{"docs":{},"出":{"docs":{},"了":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"是":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"一":{"docs":{},"定":{"docs":{},"要":{"docs":{},"记":{"docs":{},"得":{"docs":{},"区":{"docs":{},"分":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"和":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"于":{"docs":{},"m":{"docs":{},"v":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"前":{"docs":{},"者":{"docs":{},"是":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"时":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"后":{"docs":{},"者":{"docs":{},"是":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"被":{"docs":{},"标":{"docs":{},"以":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"每":{"docs":{},"行":{"docs":{},"语":{"docs":{},"句":{"docs":{},"右":{"docs":{},"边":{"docs":{},"都":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"该":{"docs":{},"语":{"docs":{},"句":{"docs":{},"后":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"集":{"docs":{},"合":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"些":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"预":{"docs":{},"备":{"docs":{},"知":{"docs":{},"识":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"展":{"docs":{},"示":{"docs":{},"如":{"docs":{},"何":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{},"但":{"docs":{},"不":{"docs":{},"保":{"docs":{},"证":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"和":{"docs":{},"在":{"docs":{},"线":{"docs":{},"测":{"docs":{},"试":{"docs":{},"环":{"docs":{},"境":{"docs":{},"下":{"docs":{},"程":{"docs":{},"序":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"各":{"docs":{},"种":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"。":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}},"载":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"个":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"基":{"docs":{},"础":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"们":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"分":{"docs":{},"数":{"docs":{},"(":{"3":{"5":{"docs":{},"%":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"(":{"docs":{},"其":{"docs":{},"中":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"汇":{"docs":{},"编":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"分":{"docs":{},"配":{"docs":{},"空":{"docs":{},"间":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"这":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"栈":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"变":{"docs":{},"化":{"docs":{},"过":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"a":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"通":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"无":{"docs":{},"法":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"带":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"用":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"分":{"docs":{},"类":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}},"字":{"docs":{},"节":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},",":{"docs":{},"倍":{"docs":{},"数":{"docs":{},"为":{"4":{"docs":{},")":{"docs":{},"即":{"docs":{},"为":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"于":{"docs":{},"高":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"其":{"docs":{},"视":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"展":{"docs":{},"开":{"docs":{},"成":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"大":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"元":{"docs":{},"素":{"docs":{},"(":{"docs":{},"从":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"m":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"存":{"docs":{},"放":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"照":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}},"点":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}},"结":{"docs":{},"点":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}},"docs":{}}}}}}},",":{"docs":{},"m":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"最":{"docs":{},"多":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}},"中":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"且":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"视":{"docs":{},"为":{"docs":{},"通":{"docs":{},"过":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"你":{"docs":{},"将":{"docs":{},"实":{"docs":{},"现":{"docs":{},"常":{"docs":{},"量":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"你":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"写":{"docs":{},"很":{"docs":{},"多":{"docs":{},"有":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"了":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"判":{"docs":{},"断":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"就":{"docs":{},"从":{"docs":{},"线":{"docs":{},"性":{"docs":{},"结":{"docs":{},"构":{"docs":{},"程":{"docs":{},"序":{"docs":{},"到":{"docs":{},"了":{"docs":{},"有":{"docs":{},"分":{"docs":{},"支":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"支":{"docs":{},"持":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"与":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"将":{"docs":{},"支":{"docs":{},"持":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"支":{"docs":{},"持":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"请":{"docs":{},"联":{"docs":{},"系":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"已":{"docs":{},"经":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"略":{"docs":{},"过":{"docs":{},",":{"docs":{},"新":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"和":{"docs":{},"技":{"docs":{},"术":{"docs":{},"会":{"docs":{},"被":{"docs":{},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{},"如":{"docs":{},"何":{"docs":{},"运":{"docs":{},"行":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"替":{"docs":{},"代":{"docs":{},"当":{"docs":{},"前":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"数":{"docs":{},"组":{"docs":{},"中":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"给":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},":":{"docs":{},"取":{"docs":{},"负":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"维":{"docs":{},"护":{"docs":{},"了":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"算":{"docs":{},"术":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"于":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"未":{"docs":{},"做":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"但":{"docs":{},"在":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}},"会":{"docs":{},"将":{"docs":{},"左":{"docs":{},"值":{"docs":{},"的":{"docs":{},"范":{"docs":{},"围":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"包":{"docs":{},"括":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"新":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"负":{"docs":{},"数":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"不":{"docs":{},"被":{"docs":{},"整":{"docs":{},"体":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"里":{"docs":{},"有":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"把":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"将":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"最":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"所":{"docs":{},"有":{"docs":{},"这":{"docs":{},"些":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"退":{"docs":{},"栈":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"i":{"docs":{},"=":{"0":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}},"docs":{}}},"使":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"加":{"docs":{},"模":{"docs":{},"块":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{},"这":{"docs":{},"使":{"docs":{},"得":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"更":{"docs":{},"容":{"docs":{},"易":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"搭":{"docs":{},"建":{"docs":{},"开":{"docs":{},"发":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"安":{"docs":{},"装":{"docs":{},"或":{"docs":{},"保":{"docs":{},"证":{"docs":{},"如":{"docs":{},"下":{"docs":{},"软":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"话":{"docs":{},"同":{"docs":{},"时":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"表":{"docs":{},"示":{"docs":{},"中":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"出":{"docs":{},"自":{"docs":{},"于":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"与":{"docs":{},"这":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"也":{"docs":{},"十":{"docs":{},"分":{"docs":{},"相":{"docs":{},"似":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"再":{"docs":{},"赘":{"docs":{},"述":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"比":{"docs":{},"如":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"常":{"docs":{},"量":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"均":{"docs":{},"用":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"结":{"docs":{},"点":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"另":{"docs":{},"外":{"docs":{},",":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"循":{"docs":{},"环":{"docs":{},"本":{"docs":{},"身":{"docs":{},"也":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"!":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"其":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"二":{"docs":{},"元":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"左":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"确":{"docs":{},"保":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"可":{"docs":{},"以":{"docs":{},"作":{"docs":{},"用":{"docs":{},"于":{"docs":{},"该":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"等":{"docs":{},"其":{"docs":{},"他":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"检":{"docs":{},"查":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"方":{"docs":{},"保":{"docs":{},"存":{"docs":{},"?":{"docs":{},"为":{"docs":{},"何":{"docs":{},"保":{"docs":{},"存":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"第":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}},"详":{"docs":{},"细":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"基":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"高":{"docs":{},"级":{"docs":{},"的":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"图":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"不":{"docs":{},"作":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"别":{"docs":{},"提":{"docs":{},"出":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":10.001275510204081}},"器":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},":":{"docs":{},"将":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"表":{"docs":{},"达":{"docs":{},"指":{"docs":{},"令":{"docs":{},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"示":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"应":{"docs":{},"该":{"docs":{},"更":{"docs":{},"接":{"docs":{},"近":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"高":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},")":{"docs":{},"还":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"也":{"docs":{},"称":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"内":{"docs":{},"存":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"不":{"docs":{},"仅":{"docs":{},"需":{"docs":{},"要":{"docs":{},"方":{"docs":{},"便":{"docs":{},"阅":{"docs":{},"读":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"方":{"docs":{},"便":{"docs":{},"进":{"docs":{},"行":{"docs":{},"后":{"docs":{},"续":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"如":{"docs":{},"优":{"docs":{},"化":{"docs":{},"、":{"docs":{},"翻":{"docs":{},"译":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":10.002717391304348}}}}}},"的":{"docs":{},"虚":{"docs":{},"线":{"docs":{},"边":{"docs":{},"改":{"docs":{},"为":{"docs":{},"实":{"docs":{},"线":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"不":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"二":{"docs":{},"者":{"docs":{},"合":{"docs":{},"并":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.08}},"加":{"docs":{},"法":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"操":{"docs":{},"作":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"—":{"docs":{},"—":{"docs":{},"单":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"全":{"docs":{},"部":{"docs":{},"放":{"docs":{},"入":{"docs":{},"内":{"docs":{},"存":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"如":{"docs":{},"约":{"docs":{},"定":{"docs":{},"好":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"遍":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"加":{"docs":{},"入":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"分":{"docs":{},"派":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},"越":{"docs":{},"界":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"修":{"docs":{},"改":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}},"运":{"docs":{},"算":{"docs":{},"均":{"docs":{},"为":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},")":{"docs":{},"、":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"等":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"正":{"docs":{},"确":{"docs":{},"调":{"docs":{},"用":{"docs":{},"和":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"保":{"docs":{},"证":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{},"那":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"是":{"docs":{},"否":{"docs":{},"可":{"docs":{},"达":{"docs":{},"的":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"限":{"docs":{},"制":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"实":{"docs":{},"际":{"docs":{},"机":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"数":{"docs":{},"量":{"docs":{},"是":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"选":{"docs":{},"择":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"任":{"docs":{},"务":{"docs":{},"有":{"docs":{},":":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"将":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"放":{"docs":{},"到":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"存":{"docs":{},"在":{"docs":{},"双":{"docs":{},"目":{"docs":{},"标":{"docs":{},"分":{"docs":{},"支":{"docs":{},"(":{"docs":{},"标":{"docs":{},"签":{"docs":{},")":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"其":{"docs":{},"形":{"docs":{},"式":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}},"储":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{},"与":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"相":{"docs":{},"差":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},"采":{"docs":{},"用":{"docs":{},"了":{"docs":{},"单":{"docs":{},"分":{"docs":{},"支":{"docs":{},"目":{"docs":{},"标":{"docs":{},"(":{"docs":{},"标":{"docs":{},"签":{"docs":{},")":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"即":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"中":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"是":{"docs":{},"标":{"docs":{},"签":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"分":{"docs":{},"支":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"则":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"向":{"docs":{},"下":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"在":{"docs":{},"其":{"docs":{},"它":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"定":{"docs":{},"不":{"docs":{},"管":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"都":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}},"即":{"docs":{},"使":{"docs":{},"标":{"docs":{},"明":{"docs":{},"了":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"依":{"docs":{},"然":{"docs":{},"会":{"docs":{},"当":{"docs":{},"作":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"是":{"docs":{},"空":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"如":{"docs":{},"何":{"docs":{},"理":{"docs":{},"解":{"docs":{},"这":{"docs":{},"一":{"docs":{},"设":{"docs":{},"计":{"docs":{},"?":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"当":{"docs":{},"前":{"docs":{},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"在":{"docs":{},"给":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"大":{"docs":{},"致":{"docs":{},"思":{"docs":{},"路":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},":":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"、":{"docs":{},"复":{"docs":{},"写":{"docs":{},"传":{"docs":{},"播":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"不":{"docs":{},"变":{"docs":{},"量":{"docs":{},"外":{"docs":{},"提":{"docs":{},"等":{"docs":{},"等":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"与":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"、":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"了":{"docs":{},"解":{"docs":{},"一":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"知":{"docs":{},"识":{"docs":{},"才":{"docs":{},"能":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"负":{"docs":{},"责":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"重":{"docs":{},"要":{"docs":{},"组":{"docs":{},"成":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"它":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"保":{"docs":{},"持":{"docs":{},"程":{"docs":{},"序":{"docs":{},"功":{"docs":{},"能":{"docs":{},"不":{"docs":{},"变":{"docs":{},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},",":{"docs":{},"提":{"docs":{},"高":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"。":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},",":{"docs":{},"减":{"docs":{},"少":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"和":{"docs":{},"资":{"docs":{},"源":{"docs":{},"消":{"docs":{},"耗":{"docs":{},"。":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"、":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"不":{"docs":{},"变":{"docs":{},"量":{"docs":{},"外":{"docs":{},"提":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"展":{"docs":{},"开":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"内":{"docs":{},"联":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":10}}}}},"设":{"docs":{},"置":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"场":{"docs":{},"休":{"docs":{},"息":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"为":{"docs":{"./":{"ref":"./","tf":0.006872852233676976},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"升":{"docs":{},"级":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"学":{"docs":{},"有":{"docs":{},"余":{"docs":{},"力":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"它":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"减":{"docs":{},"少":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{},"在":{"docs":{},"总":{"docs":{},"评":{"docs":{},"中":{"docs":{},"所":{"docs":{},"占":{"docs":{},"的":{"docs":{},"比":{"docs":{},"重":{"docs":{},"(":{"docs":{},"完":{"docs":{},"整":{"docs":{},"完":{"docs":{},"成":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{},"占":{"docs":{},"总":{"docs":{},"评":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"熟":{"docs":{},"悉":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},")":{"docs":{},"。":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"和":{"docs":{},"框":{"docs":{},"架":{"docs":{},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"无":{"docs":{},"需":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"程":{"docs":{},",":{"docs":{},"不":{"docs":{},"计":{"docs":{},"入":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"阶":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"依":{"docs":{},"然":{"docs":{},"学":{"docs":{},"有":{"docs":{},"余":{"docs":{},"力":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"完":{"docs":{},"整":{"docs":{},"完":{"docs":{},"成":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{},"占":{"docs":{},"总":{"docs":{},"评":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"是":{"docs":{},"必":{"docs":{},"不":{"docs":{},"可":{"docs":{},"少":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"。":{"docs":{},"已":{"docs":{},"知":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},"建":{"docs":{},"立":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"呢":{"docs":{},"?":{"docs":{},"通":{"docs":{},"常":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"步":{"docs":{},"进":{"docs":{},"行":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"安":{"docs":{},"全":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"仅":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{},"校":{"docs":{},"内":{"docs":{},"网":{"docs":{},"络":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"便":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"某":{"docs":{},"些":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"照":{"docs":{},"已":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},"完":{"docs":{},"成":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"定":{"docs":{},":":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},"、":{"docs":{},"如":{"docs":{},"何":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"借":{"docs":{},"此":{"docs":{},"引":{"docs":{},"入":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"所":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"至":{"docs":{},"少":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"让":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"这":{"docs":{},"点":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"对":{"docs":{},"于":{"docs":{},"形":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}},"化":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"在":{"docs":{},"设":{"docs":{},"计":{"docs":{},"时":{"docs":{},"并":{"docs":{},"未":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"需":{"docs":{},"求":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"i":{"docs":{},"r":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},"框":{"docs":{},"架":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"有":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"能":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"类":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},"由":{"docs":{},"于":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"无":{"docs":{},"需":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"类":{"docs":{},"的":{"docs":{},"基":{"docs":{},"类":{"docs":{},",":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"止":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"应":{"docs":{},"当":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"真":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"按":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"何":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"全":{"docs":{},"局":{"docs":{},"符":{"docs":{},"号":{"docs":{},";":{"docs":{},".":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"书":{"docs":{},"面":{"docs":{},"作":{"docs":{},"业":{"docs":{},"和":{"docs":{},"日":{"docs":{},"常":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"满":{"docs":{},"分":{"docs":{},",":{"docs":{},"按":{"docs":{},"照":{"docs":{},"比":{"docs":{},"例":{"docs":{},"折":{"docs":{},"算":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"如":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}},"从":{"2":{"0":{"2":{"3":{"docs":{},"年":{"docs":{},"起":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"环":{"docs":{},"节":{"docs":{},",":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"选":{"docs":{},"环":{"docs":{},"节":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"参":{"docs":{},"考":{"docs":{},"文":{"docs":{},"档":{"docs":{},"获":{"docs":{},"取":{"docs":{},"更":{"docs":{},"多":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"这":{"docs":{},"里":{"docs":{},"下":{"docs":{},"载":{"docs":{},"我":{"docs":{},"们":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"程":{"docs":{},"序":{"docs":{},"包":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"好":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}}}}}}}},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"i":{"docs":{},"r":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"了":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"、":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"、":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"循":{"docs":{},"环":{"docs":{},"。":{"docs":{},"高":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"许":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},"在":{"docs":{},"i":{"docs":{},"r":{"docs":{},"中":{"docs":{},"都":{"docs":{},"被":{"docs":{},"抹":{"docs":{},"去":{"docs":{},"了":{"docs":{},",":{"docs":{},"让":{"docs":{},"代":{"docs":{},"码":{"docs":{},"更":{"docs":{},"加":{"docs":{},"简":{"docs":{},"洁":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{},"而":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"i":{"docs":{},"r":{"docs":{},"中":{"docs":{},"无":{"docs":{},"需":{"docs":{},"关":{"docs":{},"注":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"与":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"架":{"docs":{},"构":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"尽":{"docs":{},"管":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},"级":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},",":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"和":{"docs":{},"传":{"docs":{},"递":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"的":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"节":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"对":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"规":{"docs":{},"范":{"docs":{},"进":{"docs":{},"行":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"名":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"必":{"docs":{},"要":{"docs":{},"时":{"docs":{},"调":{"docs":{},"用":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},"端":{"docs":{},"出":{"docs":{},"来":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"对":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"条":{"docs":{},"数":{"docs":{},"这":{"docs":{},"个":{"docs":{},"角":{"docs":{},"度":{"docs":{},"(":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"雷":{"docs":{},"同":{"docs":{},"情":{"docs":{},"节":{"docs":{},"严":{"docs":{},"重":{"docs":{},"的":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"有":{"docs":{},"权":{"docs":{},"上":{"docs":{},"报":{"docs":{},"至":{"docs":{},"院":{"docs":{},"系":{"docs":{},"和":{"docs":{},"学":{"docs":{},"校":{"docs":{},",":{"docs":{},"并":{"docs":{},"按":{"docs":{},"照":{"docs":{},"相":{"docs":{},"关":{"docs":{},"规":{"docs":{},"定":{"docs":{},"严":{"docs":{},"肃":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}},"需":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"对":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"”":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{},"交":{"docs":{},"叉":{"docs":{},"编":{"docs":{},"译":{"docs":{},"(":{"docs":{},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"那":{"docs":{},"样":{"docs":{},"有":{"docs":{},"严":{"docs":{},"格":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"选":{"docs":{},"择":{"docs":{},"输":{"docs":{},"出":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"选":{"docs":{},"择":{"docs":{},"输":{"docs":{},"出":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"只":{"docs":{},"有":{"docs":{},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"方":{"docs":{},"便":{"docs":{},"自":{"docs":{},"己":{"docs":{},"调":{"docs":{},"试":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"段":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"了":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}},"没":{"docs":{},"有":{"docs":{},"特":{"docs":{},"别":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"(":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"精":{"docs":{},"确":{"docs":{},"了":{"docs":{},"解":{"docs":{},"它":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},",":{"docs":{},"大":{"docs":{},"致":{"docs":{},"理":{"docs":{},"解":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"的":{"docs":{},"标":{"docs":{},"签":{"docs":{},"只":{"docs":{},"有":{"docs":{},"标":{"docs":{},"志":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}},",":{"docs":{},"x":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"没":{"docs":{},"有":{"docs":{},"为":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"(":{"2":{"0":{"2":{"4":{"docs":{},")":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},",":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"时":{"docs":{},"通":{"docs":{},"过":{"docs":{},"读":{"docs":{},"取":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"得":{"docs":{},"到":{"docs":{},"初":{"docs":{},"值":{"docs":{},"。":{"docs":{},"此":{"docs":{},"处":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"显":{"docs":{},"式":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"可":{"docs":{},"简":{"docs":{},"化":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"中":{"docs":{},"端":{"docs":{},"与":{"docs":{},"后":{"docs":{},"端":{"docs":{},"完":{"docs":{},"全":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}},"不":{"docs":{},"过":{"docs":{},"不":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}},"也":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"的":{"docs":{},"大":{"docs":{},"部":{"docs":{},"分":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"均":{"docs":{},"保":{"docs":{},"持":{"docs":{},"以":{"docs":{},"上":{"docs":{},"指":{"docs":{},"令":{"docs":{},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"确":{"docs":{},"定":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"时":{"docs":{},",":{"docs":{},"统":{"docs":{},"计":{"docs":{},"所":{"docs":{},"有":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"并":{"docs":{},"为":{"docs":{},"它":{"docs":{},"们":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"一":{"docs":{},"个":{"docs":{},"相":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"打":{"docs":{},"算":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"指":{"docs":{},"针":{"docs":{},"f":{"docs":{},"p":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"了":{"docs":{},"返":{"docs":{},"回":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"表":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"b":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731}}}}},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"且":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"算":{"docs":{},"作":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"先":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"没":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"进":{"docs":{},"行":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"首":{"docs":{},"先":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"中":{"docs":{},"(":{"docs":{},"花":{"docs":{},"括":{"docs":{},"号":{"docs":{},"括":{"docs":{},"起":{"docs":{},"来":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"会":{"docs":{},"先":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"变":{"docs":{},"为":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"作":{"docs":{},"用":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"域":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"6":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}}}}}}}}}},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}},"栈":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}},"里":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"管":{"docs":{},"理":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"任":{"docs":{},"意":{"docs":{},"多":{"docs":{},"条":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"性":{"docs":{},"能":{"docs":{},"测":{"docs":{},"试":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}},"你":{"docs":{},"做":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"工":{"docs":{},"作":{"docs":{},"(":{"docs":{},"即":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}},"的":{"docs":{},"学":{"docs":{},"号":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"姓":{"docs":{},"名":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},"将":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"单":{"docs":{},"个":{"docs":{},"测":{"docs":{},"试":{"docs":{},"点":{"docs":{},"的":{"docs":{},"得":{"docs":{},"分":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"}":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"将":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"中":{"docs":{},"名":{"docs":{},"字":{"docs":{},"改":{"docs":{},"为":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},"看":{"docs":{},"看":{"docs":{},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"会":{"docs":{},"发":{"docs":{},"生":{"docs":{},"什":{"docs":{},"么":{"docs":{},"变":{"docs":{},"化":{"docs":{},"吧":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"可":{"docs":{},"变":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"长":{"docs":{},"度":{"docs":{},"不":{"docs":{},"大":{"docs":{},"于":{"0":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"选":{"docs":{},"择":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"在":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"中":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{},"成":{"docs":{},"员":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"如":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"和":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"后":{"docs":{},"记":{"docs":{},"录":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"结":{"docs":{},"果":{"docs":{},"用":{"docs":{},"于":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"上":{"docs":{},"再":{"docs":{},"次":{"docs":{},"进":{"docs":{},"行":{"docs":{},"抽":{"docs":{},"象":{"docs":{},",":{"docs":{},"将":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"和":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"分":{"docs":{},"开":{"docs":{},",":{"docs":{},"设":{"docs":{},"计":{"docs":{},"专":{"docs":{},"门":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"和":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"更":{"docs":{},"加":{"docs":{},"清":{"docs":{},"晰":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"会":{"docs":{},"觉":{"docs":{},"得":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"不":{"docs":{},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"发":{"docs":{},"现":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"能":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"空":{"docs":{},"间":{"docs":{},"大":{"docs":{},"小":{"docs":{},"有":{"docs":{},"限":{"docs":{},",":{"docs":{},"存":{"docs":{},"放":{"docs":{},"不":{"docs":{},"了":{"docs":{},"太":{"docs":{},"多":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"而":{"docs":{},"言":{"docs":{},"的":{"docs":{},"确":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"你":{"docs":{},"无":{"docs":{},"需":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"那":{"docs":{},"种":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"开":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"应":{"docs":{},"该":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"自":{"docs":{},"己":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"实":{"docs":{},"现":{"docs":{},"、":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"和":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"卷":{"docs":{},"页":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"应":{"docs":{},"该":{"docs":{},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"你":{"docs":{},"们":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"缺":{"docs":{},"少":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"不":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"任":{"docs":{},"何":{"docs":{},"报":{"docs":{},"告":{"docs":{},"成":{"docs":{},"绩":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"类":{"docs":{},"似":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{},"输":{"docs":{},"出":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"添":{"docs":{},"加":{"docs":{},"合":{"docs":{},"理":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"以":{"docs":{},"便":{"docs":{},"批":{"docs":{},"阅":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"新":{"docs":{},"测":{"docs":{},"例":{"docs":{},"(":{"docs":{},"见":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},")":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"检":{"docs":{},"测":{"docs":{},"新":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"通":{"docs":{},"过":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"来":{"docs":{},"将":{"docs":{},"其":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"i":{"docs":{},"r":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"当":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"f":{"docs":{},"节":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"三":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"整":{"docs":{},"个":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"结":{"docs":{},"束":{"docs":{},"。":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"判":{"docs":{},"断":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"i":{"docs":{},"f":{"docs":{},"条":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"标":{"docs":{},"签":{"docs":{},"以":{"docs":{},"及":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"块":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"生":{"docs":{},"成":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"块":{"docs":{},"的":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"哪":{"docs":{},"种":{"docs":{},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},"设":{"docs":{},"计":{"docs":{},"(":{"docs":{},"单":{"docs":{},"目":{"docs":{},"标":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"主":{"docs":{},"要":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"即":{"docs":{},"为":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"与":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"两":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"倾":{"docs":{},"向":{"docs":{},"采":{"docs":{},"纳":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"中":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"(":{"docs":{},"一":{"docs":{},"整":{"docs":{},"条":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"更":{"docs":{},"高":{"docs":{},"效":{"docs":{},"的":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"吗":{"docs":{},"?":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"参":{"docs":{},"加":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"你":{"docs":{},"的":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"将":{"docs":{},"会":{"docs":{},"是":{"docs":{},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"案":{"docs":{},"一":{"docs":{},"、":{"docs":{},"二":{"docs":{},"取":{"docs":{},"最":{"docs":{},"高":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"交":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"每":{"docs":{},"个":{"docs":{},"同":{"docs":{},"学":{"docs":{},"在":{"docs":{},"上":{"docs":{},"次":{"docs":{},"检":{"docs":{},"查":{"docs":{},"后":{"docs":{},"的":{"docs":{},"分":{"docs":{},"工":{"docs":{},"以":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"缺":{"docs":{},"少":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"报":{"docs":{},"告":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"将":{"docs":{},"会":{"docs":{},"被":{"docs":{},"扣":{"docs":{},"除":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"的":{"docs":{},"分":{"docs":{},"工":{"docs":{},"以":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"缺":{"docs":{},"少":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"报":{"docs":{},"告":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"将":{"docs":{},"会":{"docs":{},"被":{"docs":{},"扣":{"docs":{},"除":{"5":{"docs":{},"分":{"docs":{},"(":{"docs":{},"总":{"docs":{},"评":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"会":{"docs":{},"发":{"docs":{},"现":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"组":{"docs":{},"织":{"docs":{},"成":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"树":{"docs":{},"状":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"即":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"i":{"docs":{},"r":{"docs":{},"输":{"docs":{},"出":{"docs":{},"格":{"docs":{},"式":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"也":{"docs":{},"更":{"docs":{},"加":{"docs":{},"易":{"docs":{},"读":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"全":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"按":{"docs":{},"照":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"这":{"docs":{},"些":{"docs":{},"结":{"docs":{},"构":{"docs":{},"来":{"docs":{},"设":{"docs":{},"计":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}},"docs":{}}}}},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"不":{"docs":{},"是":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"放":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"固":{"docs":{},"定":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"写":{"docs":{},"在":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"不":{"docs":{},"是":{"docs":{},"被":{"docs":{},"狭":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"是":{"docs":{},"被":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"被":{"docs":{},"链":{"docs":{},"接":{"docs":{},"器":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"或":{"docs":{},"加":{"docs":{},"载":{"docs":{},"器":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"栈":{"docs":{},"底":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"与":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"是":{"docs":{},"升":{"docs":{},"级":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"留":{"docs":{},"给":{"docs":{},"同":{"docs":{},"学":{"docs":{},"自":{"docs":{},"行":{"docs":{},"思":{"docs":{},"考":{"docs":{},"(":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"究":{"docs":{},"竟":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},"更":{"docs":{},"大":{"docs":{},"?":{"docs":{},"提":{"docs":{},"示":{"docs":{},":":{"1":{"docs":{},".":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},"于":{"docs":{},"名":{"docs":{},"字":{"docs":{},"由":{"docs":{},"来":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"往":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"给":{"docs":{},"出":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"提":{"docs":{},"供":{"docs":{},"注":{"docs":{},"释":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"学":{"docs":{},"习":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"与":{"docs":{},"数":{"docs":{},"学":{"docs":{},"文":{"docs":{},"献":{"docs":{},"中":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}},"双":{"docs":{},"引":{"docs":{},"号":{"docs":{},"下":{"docs":{},"的":{"docs":{},"和":{"docs":{},"大":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"开":{"docs":{},"头":{"docs":{},"的":{"docs":{},"都":{"docs":{},"为":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"可":{"docs":{},"能":{"docs":{},"长":{"docs":{},"这":{"docs":{},"样":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},"中":{"docs":{},"的":{"docs":{},"a":{"docs":{},"是":{"docs":{},"上":{"docs":{},"一":{"docs":{},"行":{"docs":{},"的":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"和":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"是":{"docs":{},"标":{"docs":{},"签":{"docs":{},"。":{"docs":{},"其":{"docs":{},"语":{"docs":{},"义":{"docs":{},"为":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"的":{"docs":{},"值":{"docs":{},"为":{"0":{"docs":{},"(":{"docs":{},"假":{"docs":{},")":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{},";":{"docs":{},"若":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"非":{"0":{"docs":{},"(":{"docs":{},"真":{"docs":{},")":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{},"。":{"docs":{},"它":{"docs":{},"与":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"分":{"docs":{},"支":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"总":{"docs":{},"是":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"两":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"9":{"0":{"docs":{},"%":{"docs":{},"构":{"docs":{},"成":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"docs":{}},"docs":{}}},"他":{"docs":{},"测":{"docs":{},"试":{"docs":{},"点":{"docs":{},",":{"docs":{},"太":{"docs":{},"长":{"docs":{},"省":{"docs":{},"略":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},"设":{"docs":{},"定":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"其":{"docs":{},"含":{"docs":{},"义":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"时":{"docs":{},"候":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"反":{"docs":{},"直":{"docs":{},"观":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"0":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"也":{"docs":{},"支":{"docs":{},"持":{"docs":{},"非":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"期":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"代":{"docs":{},"表":{"docs":{},"性":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"它":{"docs":{},"的":{"docs":{},"整":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"流":{"docs":{},"程":{"docs":{},"。":{"docs":{},"在":{"docs":{},"之":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"于":{"1":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"恢":{"docs":{},"复":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"docs":{}}}},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"方":{"docs":{},"法":{"docs":{},"并":{"docs":{},"不":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{},"但":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"来":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"某":{"docs":{},"个":{"docs":{},"“":{"docs":{},"一":{"docs":{},"整":{"docs":{},"条":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"”":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"大":{"docs":{},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"(":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"只":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"传":{"docs":{},"参":{"docs":{},")":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"上":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"借":{"docs":{},"助":{"docs":{},"d":{"docs":{},"u":{"docs":{},"/":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"9":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}}}}},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}},"部":{"docs":{},"分":{"docs":{},"由":{"docs":{},"于":{"docs":{},"难":{"docs":{},"度":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},"预":{"docs":{},"留":{"docs":{},"了":{"docs":{},"四":{"docs":{},"周":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"请":{"docs":{},"大":{"docs":{},"家":{"docs":{},"不":{"docs":{},"要":{"docs":{},"等":{"docs":{},"到":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"周":{"docs":{},"再":{"docs":{},"开":{"docs":{},"始":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"标":{"docs":{},"签":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},")":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"作":{"docs":{},"为":{"docs":{},"分":{"docs":{},"支":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"目":{"docs":{},"标":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"个":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"而":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"标":{"docs":{},"签":{"docs":{},"来":{"docs":{},"指":{"docs":{},"示":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"用":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"3":{"7":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"递":{"docs":{},"归":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}},")":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"抽":{"docs":{},"象":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"里":{"docs":{},",":{"docs":{},"各":{"docs":{},"种":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"进":{"docs":{},"行":{"docs":{},"深":{"docs":{},"度":{"docs":{},"优":{"docs":{},"先":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"。":{"docs":{},"容":{"docs":{},"易":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"d":{"docs":{},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"被":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"执":{"docs":{},"行":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"把":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"压":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"直":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"(":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},")":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},",":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},")":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"了":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"目":{"docs":{},"前":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"函":{"docs":{},"数":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"不":{"docs":{},"同":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"对":{"docs":{},"于":{"docs":{},"在":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"中":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"调":{"docs":{},"用":{"docs":{},"了":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"应":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"找":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"集":{"docs":{},"中":{"docs":{},"于":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"和":{"docs":{},"加":{"docs":{},"载":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"参":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"视":{"docs":{},"为":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"被":{"docs":{},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"被":{"docs":{},"以":{"docs":{},"实":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},")":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"形":{"docs":{},"参":{"docs":{},"均":{"docs":{},"为":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"且":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},"直":{"docs":{},"接":{"docs":{},"重":{"docs":{},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"是":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"更":{"docs":{},"小":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"的":{"docs":{},"块":{"docs":{},"中":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"上":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},"可":{"docs":{},"以":{"docs":{},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"所":{"docs":{},"有":{"docs":{},"出":{"docs":{},"现":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"在":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"中":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"单":{"docs":{},"张":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},"至":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}},"调":{"docs":{},"用":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"通":{"docs":{},"常":{"docs":{},"不":{"docs":{},"止":{"docs":{},"一":{"docs":{},"条":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"在":{"docs":{},"它":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"传":{"docs":{},"参":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"参":{"docs":{},"数":{"docs":{},"少":{"docs":{},"时":{"docs":{},"用":{"docs":{},"m":{"docs":{},"v":{"docs":{},",":{"docs":{},"多":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"压":{"docs":{},"栈":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{},"它":{"docs":{},"之":{"docs":{},"后":{"docs":{},"可":{"docs":{},"能":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"参":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"以":{"docs":{},"及":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"传":{"docs":{},"递":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"docs":{}},"docs":{}}}},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"原":{"docs":{},"型":{"docs":{},",":{"docs":{},"三":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"长":{"docs":{},"度":{"docs":{},"(":{"docs":{},"以":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"个":{"docs":{},"数":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},")":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"重":{"docs":{},"命":{"docs":{},"名":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}},"条":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"列":{"docs":{},"表":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}},"参":{"docs":{},"考":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"资":{"docs":{},"料":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":3.333333333333333},"REFERENCE.html":{"ref":"REFERENCE.html","tf":10.027777777777779}}}},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"度":{"docs":{},"及":{"docs":{},"顺":{"docs":{},"序":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"加":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"应":{"docs":{},"该":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"从":{"docs":{},"头":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}},"及":{"docs":{},"触":{"docs":{},"发":{"docs":{},"此":{"docs":{},"次":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"更":{"docs":{},"高":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.017006802721088437}},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}}}}}}}}},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"读":{"docs":{},"取":{"docs":{},"/":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"指":{"docs":{},"定":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"符":{"docs":{},"号":{"docs":{},"究":{"docs":{},"竟":{"docs":{},"存":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"里":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"程":{"docs":{},"序":{"docs":{},"不":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"同":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"学":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"面":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"但":{"docs":{},"不":{"docs":{},"必":{"docs":{},"担":{"docs":{},"心":{"docs":{},",":{"docs":{},"实":{"docs":{},"验":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"几":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"中":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"种":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"设":{"docs":{},"计":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"应":{"docs":{},"只":{"docs":{},"能":{"docs":{},"作":{"docs":{},"为":{"docs":{},"至":{"docs":{},"多":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},",":{"docs":{},"即":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"声":{"docs":{},"明":{"docs":{},"重":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"地":{"docs":{},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"完":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"不":{"docs":{},"要":{"docs":{},"忘":{"docs":{},"记":{"docs":{},"为":{"docs":{},"其":{"docs":{},"分":{"docs":{},"配":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"自":{"docs":{},"行":{"docs":{},"思":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"才":{"docs":{},"能":{"docs":{},"尝":{"docs":{},"试":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"面":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{},":":{"docs":{},"(":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"负":{"docs":{},"号":{"docs":{},"配":{"docs":{},"合":{"docs":{},"正":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"来":{"docs":{},"间":{"docs":{},"接":{"docs":{},"表":{"docs":{},"示":{"docs":{},"负":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}},"续":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"选":{"docs":{},"做":{"docs":{},"“":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},":":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"线":{"docs":{},"性":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"法":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"docs":{},"折":{"docs":{},"叠":{"docs":{},"等":{"docs":{},"等":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"负":{"docs":{},"责":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":10.00381679389313}}}}}},"和":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.01126126126126126},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.028037383177570093},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.014319809069212411},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.027649769585253458},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.031746031746031744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.013440860215053764}},"常":{"docs":{},"说":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"最":{"docs":{},"近":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"生":{"docs":{},"成":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"列":{"docs":{},"出":{"docs":{},"与":{"docs":{},"实":{"docs":{},"验":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},",":{"docs":{},"它":{"docs":{},"会":{"docs":{},"和":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"上":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"部":{"docs":{},"分":{"docs":{},"保":{"docs":{},"持":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"问":{"docs":{},"题":{"docs":{},"时":{"docs":{},",":{"docs":{},"请":{"docs":{},"先":{"docs":{},"在":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"查":{"docs":{},"看":{"docs":{},"是":{"docs":{},"否":{"docs":{},"已":{"docs":{},"有":{"docs":{},"解":{"docs":{},"答":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"暂":{"docs":{},"不":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"v":{"docs":{},"l":{"docs":{},"a":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"x":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"a":{"0":{"docs":{},"上":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"a":{"0":{"docs":{},"即":{"docs":{},"x":{"docs":{},"具":{"docs":{},"有":{"docs":{},"超":{"docs":{},"长":{"docs":{},"的":{"docs":{},"生":{"docs":{},"命":{"docs":{},"周":{"docs":{},"期":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"与":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"节":{"docs":{},"点":{"docs":{},"相":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"中":{"docs":{},"间":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"含":{"docs":{},"有":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"对":{"docs":{},"a":{"0":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"存":{"docs":{},"在":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"段":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"左":{"docs":{},"边":{"docs":{},"输":{"docs":{},"入":{"docs":{},"以":{"docs":{},"下":{"docs":{},"例":{"docs":{},"子":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"线":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"第":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}},"二":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"对":{"docs":{},"其":{"docs":{},"中":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"用":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"器":{"docs":{},"中":{"docs":{},"有":{"docs":{},"着":{"docs":{},"广":{"docs":{},"泛":{"docs":{},"的":{"docs":{},"应":{"docs":{},"用":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}},"分":{"docs":{},"析":{"docs":{},"各":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"时":{"docs":{},",":{"docs":{},"若":{"docs":{},"它":{"docs":{},"们":{"docs":{},"引":{"docs":{},"用":{"docs":{},"了":{"docs":{},"某":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"docs":{},"询":{"docs":{},"这":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"及":{"docs":{},"相":{"docs":{},"关":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"如":{"docs":{},"类":{"docs":{},"型":{"docs":{},")":{"docs":{},";":{"docs":{},"(":{"2":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"即":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"跟":{"docs":{},"任":{"docs":{},"何":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"建":{"docs":{},"立":{"docs":{},"关":{"docs":{},"联":{"docs":{},"关":{"docs":{},"系":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"有":{"docs":{},"则":{"docs":{},"选":{"docs":{},"择":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"作":{"docs":{},"为":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"其":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"已":{"docs":{},"经":{"docs":{},"不":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"说":{"docs":{},"明":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"未":{"docs":{},"来":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"回":{"docs":{},"收":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"而":{"docs":{},"不":{"docs":{},"用":{"docs":{},"担":{"docs":{},"心":{"docs":{},"引":{"docs":{},"起":{"docs":{},"数":{"docs":{},"据":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"是":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"将":{"docs":{},"把":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"(":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},")":{"docs":{},"中":{"docs":{},",":{"docs":{},"腾":{"docs":{},"出":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"这":{"docs":{},"也":{"docs":{},"称":{"docs":{},"为":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"所":{"docs":{},"腾":{"docs":{},"空":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"是":{"docs":{},"随":{"docs":{},"机":{"docs":{},"选":{"docs":{},"取":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"所":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"有":{"docs":{},"些":{"docs":{},"暴":{"docs":{},"力":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"优":{"docs":{},"化":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"已":{"docs":{},"知":{"docs":{},"定":{"docs":{},"型":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"编":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"算":{"docs":{},"法":{"docs":{},"并":{"docs":{},"不":{"docs":{},"困":{"docs":{},"难":{"docs":{},"—":{"docs":{},"—":{"docs":{},"往":{"docs":{},"往":{"docs":{},"只":{"docs":{},"要":{"docs":{},"逐":{"docs":{},"条":{"docs":{},"将":{"docs":{},"其":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"我":{"docs":{},"们":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},",":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"最":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"有":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"际":{"docs":{},"操":{"docs":{},"作":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"已":{"docs":{},"经":{"docs":{},"给":{"docs":{},"出":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"集":{"docs":{},"中":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"存":{"docs":{},"在":{"docs":{},"短":{"docs":{},"路":{"docs":{},"现":{"docs":{},"象":{"docs":{},"。":{"docs":{},"即":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"中":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"均":{"docs":{},"是":{"docs":{},"单":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"从":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"已":{"docs":{},"经":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"了":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"类":{"docs":{},"型":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"下":{"docs":{},"一":{"docs":{},"步":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"则":{"docs":{},"是":{"docs":{},"将":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"便":{"docs":{},"于":{"docs":{},"移":{"docs":{},"植":{"docs":{},"和":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"就":{"docs":{},"是":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"。":{"docs":{},"如":{"docs":{},"何":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"?":{"docs":{},"当":{"docs":{},"然":{"docs":{},"还":{"docs":{},"是":{"docs":{},"无":{"docs":{},"所":{"docs":{},"不":{"docs":{},"能":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"上":{"docs":{},"对":{"docs":{},"应":{"docs":{},"父":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},",":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"实":{"docs":{},"际":{"docs":{},"拥":{"docs":{},"有":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"数":{"docs":{},"目":{"docs":{},",":{"docs":{},"将":{"docs":{},"无":{"docs":{},"法":{"docs":{},"生":{"docs":{},"成":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"采":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"和":{"docs":{},"分":{"docs":{},"配":{"docs":{},"数":{"docs":{},"目":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"资":{"docs":{},"源":{"docs":{},",":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"伪":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"都":{"docs":{},"有":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"与":{"docs":{},"之":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"时":{"docs":{},"刻":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"即":{"docs":{},"两":{"docs":{},"个":{"docs":{},"同":{"docs":{},"时":{"docs":{},"有":{"docs":{},"效":{"docs":{},"且":{"docs":{},"将":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"将":{"docs":{},"造":{"docs":{},"成":{"docs":{},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"问":{"docs":{},"题":{"docs":{},"是":{"docs":{},"n":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"分":{"docs":{},"解":{"docs":{},"为":{"docs":{},"多":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"是":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"部":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"是":{"docs":{},"固":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"且":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"其":{"docs":{},"他":{"docs":{},"指":{"docs":{},"令":{"docs":{},"打":{"docs":{},"断":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"课":{"docs":{},"程":{"docs":{},"学":{"docs":{},"习":{"docs":{},"中":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"接":{"docs":{},"触":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"下":{"docs":{},"面":{"docs":{},"简":{"docs":{},"单":{"docs":{},"回":{"docs":{},"顾":{"docs":{},"一":{"docs":{},"下":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"和":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"辟":{"docs":{},"一":{"docs":{},"块":{"docs":{},"新":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"块":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"就":{"docs":{},"叫":{"docs":{},"做":{"docs":{},"“":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"”":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"各":{"docs":{},"种":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"需":{"docs":{},"要":{"docs":{},"临":{"docs":{},"时":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"临":{"docs":{},"时":{"docs":{},"申":{"docs":{},"请":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"(":{"docs":{},"如":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"语":{"docs":{},"句":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"逐":{"docs":{},"一":{"docs":{},"访":{"docs":{},"问":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"它":{"docs":{},"存":{"docs":{},"入":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"在":{"docs":{},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"同":{"docs":{},"名":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"并":{"docs":{},"随":{"docs":{},"着":{"docs":{},"进":{"docs":{},"入":{"docs":{},"和":{"docs":{},"退":{"docs":{},"出":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"函":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},"时":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"当":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"或":{"docs":{},"变":{"docs":{},"量":{"docs":{},"引":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"查":{"docs":{},"找":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"以":{"docs":{},"确":{"docs":{},"保":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"已":{"docs":{},"定":{"docs":{},"义":{"docs":{},"且":{"docs":{},"在":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"正":{"docs":{},"在":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"已":{"docs":{},"被":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"但":{"docs":{},"其":{"docs":{},"值":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"正":{"docs":{},"在":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"已":{"docs":{},"被":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"会":{"docs":{},"隐":{"docs":{},"藏":{"docs":{},"(":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},")":{"docs":{},"外":{"docs":{},"层":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"同":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"但":{"docs":{},"其":{"docs":{},"值":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"a":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{},"(":{"docs":{},"=":{"docs":{},")":{"docs":{},"中":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"被":{"docs":{},"存":{"docs":{},"在":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"指":{"docs":{},"派":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"处":{"docs":{},"需":{"docs":{},"要":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"在":{"docs":{},"该":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"定":{"docs":{},"值":{"docs":{},"就":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"处":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"但":{"docs":{},"是":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"定":{"docs":{},"值":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"因":{"docs":{},"为":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"初":{"docs":{},"值":{"docs":{},"必":{"docs":{},"定":{"docs":{},"是":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"基":{"docs":{},"本":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"划":{"docs":{},"分":{"docs":{},"好":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"头":{"docs":{},"到":{"docs":{},"尾":{"docs":{},"依":{"docs":{},"次":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"建":{"docs":{},"立":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"都":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"毕":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"建":{"docs":{},"立":{"docs":{},"了":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"满":{"docs":{},"足":{"docs":{},"前":{"docs":{},"两":{"docs":{},"条":{"docs":{},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},"含":{"docs":{},"有":{"docs":{},"最":{"docs":{},"多":{"docs":{},"的":{"docs":{},"连":{"docs":{},"续":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"即":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"头":{"docs":{},"尾":{"docs":{},"再":{"docs":{},"纳":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"将":{"docs":{},"会":{"docs":{},"违":{"docs":{},"反":{"docs":{},"上":{"docs":{},"面":{"docs":{},"两":{"docs":{},"条":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"早":{"docs":{},"先":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"和":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"两":{"docs":{},"种":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"指":{"docs":{},"令":{"docs":{},"只":{"docs":{},"对":{"docs":{},"应":{"docs":{},"实":{"docs":{},"际":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"一":{"docs":{},"道":{"docs":{},"关":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"或":{"docs":{},"许":{"docs":{},"能":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"你":{"docs":{},"思":{"docs":{},"考":{"docs":{},"(":{"docs":{},"你":{"docs":{},"无":{"docs":{},"需":{"docs":{},"回":{"docs":{},"答":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"标":{"docs":{},"准":{"docs":{},"答":{"docs":{},"案":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"中":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"_":{"docs":{},"b":{"0":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"还":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{},"_":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{},"_":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}},"准":{"docs":{},"备":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"会":{"docs":{},"被":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"赋":{"docs":{},"给":{"docs":{},"相":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"上":{"docs":{},"的":{"docs":{},"形":{"docs":{},"参":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"但":{"docs":{},"即":{"docs":{},"便":{"docs":{},"实":{"docs":{},"参":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{},"实":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"参":{"docs":{},"和":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"个":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"同":{"docs":{},"一":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"也":{"docs":{},"必":{"docs":{},"须":{"docs":{},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"其":{"docs":{},"值":{"docs":{},"全":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"而":{"docs":{},"对":{"docs":{},"于":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"其":{"docs":{},"值":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"有":{"docs":{},"一":{"docs":{},"种":{"docs":{},"合":{"docs":{},"并":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"进":{"docs":{},"阶":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{},"合":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"查":{"docs":{},"找":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"除":{"docs":{},"传":{"docs":{},"参":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"确":{"docs":{},"认":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"无":{"docs":{},"误":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"该":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"要":{"docs":{},"记":{"docs":{},"得":{"docs":{},"维":{"docs":{},"护":{"docs":{},"一":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"当":{"docs":{},"前":{"docs":{},"所":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"、":{"docs":{},"当":{"docs":{},"前":{"docs":{},"所":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"数":{"docs":{},"量":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"数":{"docs":{},"量":{"docs":{},"、":{"docs":{},"前":{"docs":{},"端":{"docs":{},"变":{"docs":{},"量":{"docs":{},"到":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"表":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"利":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},",":{"docs":{},"进":{"docs":{},"行":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"表":{"docs":{},"示":{"docs":{},"感":{"docs":{},"谢":{"docs":{},"!":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"早":{"docs":{},"期":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"我":{"docs":{},"们":{"docs":{},"无":{"docs":{},"法":{"docs":{},"确":{"docs":{},"定":{"docs":{},"最":{"docs":{},"终":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"变":{"docs":{},"量":{"docs":{},"会":{"docs":{},"使":{"docs":{},"得":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"大":{"docs":{},"小":{"docs":{},"增":{"docs":{},"加":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"追":{"docs":{},"踪":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},"和":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{},"留":{"docs":{},"意":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"和":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"允":{"docs":{},"许":{"docs":{},"的":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"当":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"具":{"docs":{},"有":{"docs":{},"巨":{"docs":{},"大":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"插":{"docs":{},"入":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"计":{"docs":{},"算":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"或":{"docs":{},"访":{"docs":{},"问":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"甚":{"docs":{},"至":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"新":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"前":{"docs":{},"可":{"docs":{},"能":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}},"经":{"docs":{},"过":{"docs":{},"带":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"合":{"docs":{},"并":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"后":{"docs":{},",":{"docs":{},"大":{"docs":{},"概":{"docs":{},"率":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"备":{"docs":{},"注":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"把":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"实":{"docs":{},"验":{"docs":{},"为":{"docs":{},"组":{"docs":{},"队":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"4":{"docs":{},"人":{"docs":{},"一":{"docs":{},"组":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"更":{"docs":{},"少":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"评":{"docs":{},"分":{"docs":{},"标":{"docs":{},"准":{"docs":{},"保":{"docs":{},"持":{"docs":{},"不":{"docs":{},"变":{"docs":{},")":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"情":{"docs":{},"况":{"docs":{},"时":{"docs":{},",":{"docs":{},"同":{"docs":{},"组":{"docs":{},"同":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"参":{"docs":{},"考":{"docs":{},"文":{"docs":{},"档":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"在":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"与":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"简":{"docs":{},"介":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":10}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"目":{"docs":{},"标":{"docs":{},":":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"有":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"。":{"docs":{},"部":{"docs":{},"分":{"docs":{},"达":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"能":{"docs":{},"力":{"docs":{},"设":{"docs":{},"计":{"docs":{},"大":{"docs":{},"赛":{"docs":{},"—":{"docs":{},"—":{"docs":{},"编":{"docs":{},"译":{"docs":{},"系":{"docs":{},"统":{"docs":{},"设":{"docs":{},"计":{"docs":{},"赛":{"docs":{},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"其":{"docs":{},"中":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"鼓":{"docs":{},"励":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"参":{"docs":{},"加":{"docs":{},"系":{"docs":{},"统":{"docs":{},"能":{"docs":{},"力":{"docs":{},"设":{"docs":{},"计":{"docs":{},"大":{"docs":{},"赛":{"docs":{},",":{"docs":{},"比":{"docs":{},"赛":{"docs":{},"有":{"docs":{},"查":{"docs":{},"重":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"开":{"docs":{},"始":{"docs":{},"参":{"docs":{},"加":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"并":{"docs":{},"参":{"docs":{},"与":{"docs":{},"后":{"docs":{},"续":{"docs":{},"比":{"docs":{},"赛":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"被":{"docs":{},"判":{"docs":{},"定":{"docs":{},"为":{"docs":{},"重":{"docs":{},"复":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"交":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"也":{"docs":{},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"过":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"可":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"间":{"docs":{},"接":{"docs":{},"渠":{"docs":{},"道":{"docs":{},"传":{"docs":{},"播":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"过":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"可":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"间":{"docs":{},"接":{"docs":{},"渠":{"docs":{},"道":{"docs":{},"传":{"docs":{},"播":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"果":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"你":{"docs":{},"复":{"docs":{},"用":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"了":{"docs":{},"参":{"docs":{},"考":{"docs":{},"代":{"docs":{},"码":{"docs":{},"或":{"docs":{},"其":{"docs":{},"他":{"docs":{},"资":{"docs":{},"源":{"docs":{},",":{"docs":{},"请":{"docs":{},"明":{"docs":{},"确":{"docs":{},"写":{"docs":{},"出":{"docs":{},"你":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"你":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"代":{"docs":{},"码":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"立":{"docs":{},"认":{"docs":{},"真":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"请":{"docs":{},"及":{"docs":{},"时":{"docs":{},"与":{"docs":{},"助":{"docs":{},"教":{"docs":{},"联":{"docs":{},"系":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"间":{"docs":{},"充":{"docs":{},"足":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"阅":{"docs":{},"读":{"docs":{},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"来":{"docs":{},"看":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"环":{"docs":{},"境":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"指":{"docs":{},"导":{"docs":{},"。":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}},"希":{"docs":{},"望":{"docs":{},"获":{"docs":{},"取":{"docs":{},"详":{"docs":{},"细":{"docs":{},"测":{"docs":{},"试":{"docs":{},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"点":{"docs":{},"击":{"docs":{},"这":{"docs":{},"个":{"docs":{},"画":{"docs":{},"圈":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"知":{"docs":{},"道":{"docs":{},"某":{"docs":{},"个":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"应":{"docs":{},"该":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"这":{"docs":{},"里":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"了":{"docs":{},"解":{"docs":{},"一":{"docs":{},"下":{"docs":{},"l":{"docs":{},"l":{"docs":{},"v":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"在":{"docs":{},"多":{"docs":{},"次":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"机":{"docs":{},"器":{"docs":{},"上":{"docs":{},"直":{"docs":{},"接":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"较":{"docs":{},"低":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"发":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"整":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"将":{"docs":{},"终":{"docs":{},"止":{"docs":{},",":{"docs":{},"并":{"docs":{},"报":{"docs":{},"告":{"docs":{},"编":{"docs":{},"译":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"且":{"docs":{},"只":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"分":{"docs":{},"别":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},"于":{"docs":{},"报":{"docs":{},"告":{"docs":{},"提":{"docs":{},"交":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"请":{"docs":{},"及":{"docs":{},"时":{"docs":{},"联":{"docs":{},"系":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"低":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"出":{"docs":{},"于":{"docs":{},"某":{"docs":{},"些":{"docs":{},"原":{"docs":{},"因":{"docs":{},"必":{"docs":{},"须":{"docs":{},"使":{"docs":{},"用":{"docs":{},"低":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"现":{"docs":{},"悬":{"docs":{},"吊":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}},"没":{"docs":{},"有":{"docs":{},"安":{"docs":{},"装":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"如":{"docs":{},"下":{"docs":{},"错":{"docs":{},"误":{"docs":{},":":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"想":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"某":{"docs":{},"个":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}},"输":{"docs":{},"入":{"docs":{},"程":{"docs":{},"序":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"以":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}}}}}}},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"没":{"docs":{},"有":{"docs":{},"加":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"规":{"docs":{},"定":{"docs":{},"来":{"docs":{},"解":{"docs":{},"决":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"面":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"解":{"docs":{},"除":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"绑":{"docs":{},"定":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"问":{"docs":{},"题":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"其":{"docs":{},"拥":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"合":{"docs":{},"并":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"把":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"图":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"没":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"则":{"docs":{},"进":{"docs":{},"入":{"docs":{},"步":{"docs":{},"骤":{"3":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"图":{"docs":{},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"点":{"docs":{},"都":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"至":{"docs":{},"少":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"a":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"就":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"再":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"将":{"docs":{},"该":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},"存":{"docs":{},"入":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},"的":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"列":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"就":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"再":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"将":{"docs":{},"该":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"信":{"docs":{},"息":{"docs":{},"存":{"docs":{},"入":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"对":{"docs":{},"象":{"docs":{},"中":{"docs":{},"的":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"列":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"数":{"docs":{},"组":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"量":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"要":{"docs":{},"另":{"docs":{},"外":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"(":{"docs":{},"这":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"则":{"docs":{},"将":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"改":{"docs":{},"为":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"再":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"该":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"且":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"先":{"docs":{},"新":{"docs":{},"增":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"将":{"docs":{},"地":{"docs":{},"址":{"docs":{},"里":{"docs":{},"的":{"docs":{},"值":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"返":{"docs":{},"回":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"返":{"docs":{},"回":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"是":{"docs":{},"个":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"o":{"docs":{},"r":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"o":{"docs":{},"r":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"可":{"docs":{},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"短":{"docs":{},"路":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"思":{"docs":{},"考":{"docs":{},"如":{"docs":{},"何":{"docs":{},"新":{"docs":{},"增":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"三":{"docs":{},"目":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},",":{"docs":{},"可":{"docs":{},"参":{"docs":{},"考":{"docs":{},"i":{"docs":{},"f":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},":":{"docs":{},"?":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},",":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"新":{"docs":{},"增":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"通":{"docs":{},"过":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},"应":{"docs":{},"该":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"标":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"下":{"docs":{},"标":{"docs":{},"都":{"docs":{},"是":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"故":{"docs":{},"需":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"每":{"docs":{},"个":{"docs":{},"下":{"docs":{},"标":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"存":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"存":{"docs":{},"进":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"s":{"docs":{},"中":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"利":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},"来":{"docs":{},"构":{"docs":{},"造":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"通":{"docs":{},"过":{"docs":{},"数":{"docs":{},"组":{"docs":{},"基":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"下":{"docs":{},"标":{"docs":{},"获":{"docs":{},"取":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"何":{"docs":{},"快":{"docs":{},"速":{"docs":{},"查":{"docs":{},"询":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"装":{"docs":{},"载":{"docs":{},"到":{"docs":{},"指":{"docs":{},"定":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"检":{"docs":{},"查":{"docs":{},"我":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"自":{"docs":{},"动":{"docs":{},"测":{"docs":{},"试":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{},")":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}},"找":{"docs":{},"到":{"docs":{},"所":{"docs":{},"有":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}},"解":{"docs":{},"决":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}},"学":{"docs":{},"术":{"docs":{},"规":{"docs":{},"范":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},",":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"细":{"docs":{},"节":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"。":{"docs":{},"但":{"docs":{},"有":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"“":{"docs":{},"既":{"docs":{},"可":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"a":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"重":{"docs":{},"新":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"a":{"docs":{},"”":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{},"这":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"新":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"示":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"让":{"docs":{},"所":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"默":{"docs":{},"认":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},",":{"docs":{},"保":{"docs":{},"证":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"能":{"docs":{},"够":{"docs":{},"完":{"docs":{},"成":{"docs":{},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"管":{"docs":{},"理":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"分":{"docs":{},"析":{"docs":{},"输":{"docs":{},"入":{"docs":{},"(":{"docs":{},"即":{"docs":{},"字":{"docs":{},"符":{"docs":{},")":{"docs":{},"并":{"docs":{},"产":{"docs":{},"生":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"验":{"docs":{},"思":{"docs":{},"路":{"docs":{},"指":{"docs":{},"导":{"docs":{},"与":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},"手":{"docs":{},"册":{"docs":{},"指":{"docs":{},"北":{"docs":{},":":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"看":{"docs":{},"起":{"docs":{},"来":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"长":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"庞":{"docs":{},"大":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"希":{"docs":{},"望":{"docs":{},"提":{"docs":{},"供":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"全":{"docs":{},"面":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"来":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"理":{"docs":{},"解":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"构":{"docs":{},"成":{"docs":{},"。":{"docs":{},"请":{"docs":{},"大":{"docs":{},"家":{"docs":{},"认":{"docs":{},"真":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"按":{"docs":{},"照":{"docs":{},"文":{"docs":{},"档":{"docs":{},"去":{"docs":{},"动":{"docs":{},"手":{"docs":{},"试":{"docs":{},"一":{"docs":{},"试":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"开":{"docs":{},"始":{"docs":{},"动":{"docs":{},"手":{"docs":{},"写":{"docs":{},"作":{"docs":{},"业":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}},"指":{"docs":{},"导":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":10.004237288135593}},"书":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"(":{"docs":{},"首":{"docs":{},"页":{"docs":{},"有":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"提":{"docs":{},"交":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"概":{"docs":{},"述":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"简":{"docs":{},"介":{"docs":{"./":{"ref":"./","tf":10}}}},"起":{"docs":{},"点":{"docs":{},"和":{"docs":{},"基":{"docs":{},"本":{"docs":{},"要":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"进":{"docs":{},"度":{"docs":{},"安":{"docs":{},"排":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":10.012658227848101}}}}}},"环":{"docs":{},"境":{"docs":{},"简":{"docs":{},"介":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":10.026315789473685}}}}}},"框":{"docs":{},"架":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":10.019607843137255}}}}}},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"本":{"docs":{},"节":{"docs":{},"的":{"docs":{},"测":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"修":{"docs":{},"改":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"但":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"关":{"docs":{},"于":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{},"主":{"docs":{},"要":{"docs":{},"集":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"所":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"为":{"docs":{},"避":{"docs":{},"免":{"docs":{},"一":{"docs":{},"次":{"docs":{},"性":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"过":{"docs":{},"多":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},",":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":10},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":10},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":10},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":10},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":10},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":10},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":10},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":10},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":10},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":10},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":10},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":10},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":10}}}},"成":{"docs":{},"绩":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}},"评":{"docs":{},"测":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"占":{"docs":{},"比":{"docs":{},"与":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"一":{"docs":{},"致":{"docs":{},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"完":{"docs":{},"成":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"简":{"docs":{},"单":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"是":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"完":{"docs":{},"成":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"战":{"docs":{},"教":{"docs":{},"学":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"际":{"docs":{},"上":{"docs":{},"这":{"docs":{},"与":{"docs":{},"高":{"docs":{},"级":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"语":{"docs":{},"义":{"docs":{},"非":{"docs":{},"常":{"docs":{},"相":{"docs":{},"似":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"觉":{"docs":{},"得":{"docs":{},"一":{"docs":{},"个":{"docs":{},"与":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"语":{"docs":{},"义":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"没":{"docs":{},"差":{"docs":{},"别":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"有":{"docs":{},"点":{"docs":{},"多":{"docs":{},"余":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"设":{"docs":{},"计":{"docs":{},"和":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"分":{"docs":{},"配":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"算":{"docs":{},"法":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"3":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"docs":{}},"docs":{}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"比":{"docs":{},"较":{"docs":{},"微":{"docs":{},"妙":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},":":{"docs":{},"当":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"得":{"docs":{},"不":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"时":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"选":{"docs":{},"择":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"这":{"docs":{},"里":{"docs":{},"是":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"的":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"个":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"或":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"权":{"docs":{},"重":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"代":{"docs":{},"码":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"8":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}}}}},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}},":":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"请":{"docs":{},"写":{"docs":{},"出":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"如":{"docs":{},"果":{"docs":{},"还":{"docs":{},"有":{"docs":{},"其":{"docs":{},"他":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"则":{"docs":{},"以":{"docs":{},"从":{"docs":{},"右":{"docs":{},"向":{"docs":{},"左":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"压":{"docs":{},"栈":{"docs":{},",":{"docs":{},"第":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"是":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"(":{"docs":{},"又":{"docs":{},"名":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"认":{"docs":{},"为":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"行":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"非":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"指":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"可":{"docs":{},"以":{"docs":{},"期":{"docs":{},"望":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"仍":{"docs":{},"保":{"docs":{},"持":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"这":{"docs":{},"要":{"docs":{},"求":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"进":{"docs":{},"行":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"返":{"docs":{},"回":{"docs":{},"之":{"docs":{},"前":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"这":{"docs":{},"些":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},",":{"docs":{},"减":{"docs":{},"少":{"docs":{},"变":{"docs":{},"量":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"次":{"docs":{},"数":{"docs":{},"。":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"对":{"docs":{},"运":{"docs":{},"行":{"docs":{},"效":{"docs":{},"率":{"docs":{},"的":{"docs":{},"影":{"docs":{},"响":{"docs":{},"很":{"docs":{},"大":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"访":{"docs":{},"存":{"docs":{},"通":{"docs":{},"常":{"docs":{},"比":{"docs":{},"访":{"docs":{},"问":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"慢":{"docs":{},"很":{"docs":{},"多":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"的":{"docs":{},"回":{"docs":{},"答":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"但":{"docs":{},"禁":{"docs":{},"止":{"docs":{},"直":{"docs":{},"接":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}},"含":{"docs":{},"有":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{},"c":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"仅":{"docs":{},"对":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"整":{"docs":{},"数":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"做":{"docs":{},"要":{"docs":{},"求":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"为":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"分":{"docs":{},"配":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"新":{"docs":{},"测":{"docs":{},"例":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"之":{"docs":{},"前":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},",":{"docs":{},"测":{"docs":{},"量":{"docs":{},"并":{"docs":{},"统":{"docs":{},"计":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{},"改":{"docs":{},"进":{"docs":{},"后":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"效":{"docs":{},"率":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"显":{"docs":{},"著":{"docs":{},"提":{"docs":{},"升":{"docs":{},",":{"docs":{},"但":{"docs":{},"效":{"docs":{},"率":{"docs":{},"提":{"docs":{},"升":{"docs":{},"的":{"docs":{},"高":{"docs":{},"低":{"docs":{},"不":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"评":{"docs":{},"分":{"docs":{},"的":{"docs":{},"考":{"docs":{},"察":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"因":{"docs":{},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"一":{"docs":{},"对":{"docs":{},"点":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"数":{"docs":{},"组":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"前":{"docs":{},"几":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"编":{"docs":{},"号":{"docs":{},"分":{"docs":{},"配":{"docs":{},"给":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"先":{"docs":{},"新":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"存":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"相":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"是":{"docs":{},"否":{"docs":{},"加":{"docs":{},"入":{"docs":{},".":{"docs":{},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"量":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"新":{"docs":{},"增":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"将":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"存":{"docs":{},"入":{"docs":{},"该":{"docs":{},"标":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"等":{"docs":{},"号":{"docs":{},"右":{"docs":{},"边":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"docs":{},"边":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"顺":{"docs":{},"着":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},"找":{"docs":{},"到":{"docs":{},"所":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"新":{"docs":{},"加":{"docs":{},"入":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"继":{"docs":{},"续":{"docs":{},"顺":{"docs":{},"着":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},"找":{"docs":{},"到":{"docs":{},"所":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"条":{"docs":{},"i":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"物":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"大":{"docs":{},"部":{"docs":{},"分":{"docs":{},"算":{"docs":{},"术":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"一":{"docs":{},"对":{"docs":{},"一":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"这":{"docs":{},"没":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"难":{"docs":{},"度":{"docs":{},";":{"docs":{},"而":{"docs":{},"某":{"docs":{},"些":{"docs":{},"i":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"没":{"docs":{},"有":{"docs":{},"直":{"docs":{},"接":{"docs":{},"的":{"docs":{},"相":{"docs":{},"应":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"被":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"多":{"docs":{},"条":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"选":{"docs":{},"择":{"docs":{},"相":{"docs":{},"对":{"docs":{},"更":{"docs":{},"优":{"docs":{},"的":{"docs":{},"候":{"docs":{},"选":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"。":{"docs":{},"一":{"docs":{},"对":{"docs":{},"多":{"docs":{},"指":{"docs":{},"令":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"些":{"docs":{},"微":{"docs":{},"妙":{"docs":{},"之":{"docs":{},"处":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"可":{"docs":{},"能":{"docs":{},"引":{"docs":{},"入":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"有":{"docs":{},"潜":{"docs":{},"在":{"docs":{},"的":{"docs":{},"副":{"docs":{},"作":{"docs":{},"用":{"docs":{},"、":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"有":{"docs":{},"时":{"docs":{},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"视":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"整":{"docs":{},"体":{"docs":{},"是":{"docs":{},"更":{"docs":{},"合":{"docs":{},"理":{"docs":{},"的":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"地":{"docs":{},"选":{"docs":{},"择":{"docs":{},"将":{"docs":{},"一":{"docs":{},"条":{"docs":{},"“":{"docs":{},"指":{"docs":{},"令":{"docs":{},"”":{"docs":{},"彻":{"docs":{},"底":{"docs":{},"地":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"时":{"docs":{},"机":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"外":{"docs":{},"层":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},",":{"docs":{},"直":{"docs":{},"观":{"docs":{},"上":{"docs":{},"x":{"docs":{},"和":{"docs":{},"y":{"docs":{},"会":{"docs":{},"被":{"docs":{},"分":{"docs":{},"别":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"a":{"0":{"docs":{},"和":{"docs":{},"a":{"1":{"docs":{},";":{"docs":{},"而":{"docs":{},"中":{"docs":{},"间":{"docs":{},"再":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"时":{"docs":{},"却":{"docs":{},"又":{"docs":{},"要":{"docs":{},"求":{"docs":{},"y":{"docs":{},"在":{"docs":{},"a":{"0":{"docs":{},"且":{"docs":{},"x":{"docs":{},"在":{"docs":{},"a":{"1":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"种":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"免":{"docs":{},"不":{"docs":{},"了":{"docs":{},"一":{"docs":{},"番":{"docs":{},"折":{"docs":{},"腾":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"每":{"docs":{},"当":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"为":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"“":{"docs":{},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},"分":{"docs":{},"离":{"docs":{},"”":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"着":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"结":{"docs":{},"点":{"docs":{},"到":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}},"的":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"以":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"取":{"docs":{},"负":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"有":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},"虽":{"docs":{},"然":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}},"象":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"是":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"x":{"docs":{},"的":{"docs":{},"查":{"docs":{},"找":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"由":{"docs":{},"上":{"docs":{},"向":{"docs":{},"下":{"docs":{},"依":{"docs":{},"次":{"docs":{},"查":{"docs":{},"找":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"直":{"docs":{},"至":{"docs":{},"找":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"尤":{"docs":{},"为":{"docs":{},"重":{"docs":{},"要":{"docs":{},",":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"好":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"是":{"docs":{},"高":{"docs":{},"质":{"docs":{},"量":{"docs":{},"和":{"docs":{},"高":{"docs":{},"效":{"docs":{},"率":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"续":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"保":{"docs":{},"证":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"2":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}}},"传":{"docs":{},"播":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":10}},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"折":{"docs":{},"叠":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"的":{"docs":{},"在":{"docs":{},"于":{"docs":{},"发":{"docs":{},"掘":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"用":{"docs":{},"对":{"docs":{},"常":{"docs":{},"量":{"docs":{},"的":{"docs":{},"引":{"docs":{},"用":{"docs":{},"替":{"docs":{},"代":{"docs":{},"对":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"引":{"docs":{},"用":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"都":{"docs":{},"使":{"docs":{},"用":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}},"说":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"见":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"包":{"docs":{},"括":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"和":{"docs":{},"线":{"docs":{},"性":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"较":{"docs":{},"为":{"docs":{},"严":{"docs":{},"格":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"时":{"docs":{},"间":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"3":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"该":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},"在":{"docs":{},"于":{"docs":{},"能":{"docs":{},"够":{"docs":{},"顺":{"docs":{},"带":{"docs":{},"处":{"docs":{},"理":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"消":{"docs":{},"除":{"docs":{},"掉":{"docs":{},"无":{"docs":{},"用":{"docs":{},"复":{"docs":{},"制":{"docs":{},",":{"docs":{},"这":{"docs":{},"使":{"docs":{},"得":{"docs":{},"你":{"docs":{},"前":{"docs":{},"面":{"docs":{},"做":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"时":{"docs":{},"可":{"docs":{},"以":{"docs":{},"轻":{"docs":{},"松":{"docs":{},"一":{"docs":{},"点":{"docs":{},"(":{"docs":{},"能":{"docs":{},"够":{"docs":{},"较":{"docs":{},"为":{"docs":{},"无":{"docs":{},"顾":{"docs":{},"虑":{"docs":{},"地":{"docs":{},"生":{"docs":{},"成":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"年":{"docs":{},"秋":{"docs":{},"季":{"docs":{},"学":{"docs":{},"期":{"docs":{},"《":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"》":{"docs":{},"课":{"docs":{},"程":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"贴":{"docs":{},"合":{"docs":{},"课":{"docs":{},"程":{"docs":{},"教":{"docs":{},"学":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"提":{"docs":{},"升":{"docs":{},"训":{"docs":{},"练":{"docs":{},"效":{"docs":{},"果":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"设":{"docs":{},"计":{"docs":{},"了":{"docs":{},"比":{"docs":{},"较":{"docs":{},"完":{"docs":{},"善":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"等":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"沿":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"变":{"docs":{},"化":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"体":{"docs":{},"现":{"docs":{},"在":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.006872852233676976}}},"只":{"docs":{},"接":{"docs":{},"受":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}},"将":{"docs":{},"会":{"docs":{},"对":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"作":{"docs":{},"相":{"docs":{},"似":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"如":{"docs":{},"发":{"docs":{},"现":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"雷":{"docs":{},"同":{"docs":{},"的":{"docs":{},"情":{"docs":{},"形":{"docs":{},",":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"和":{"docs":{},"被":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"将":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{},"处":{"docs":{},"罚":{"docs":{},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"被":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"提":{"docs":{},"交":{"docs":{},"时":{"docs":{},"已":{"docs":{},"做":{"docs":{},"过":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"易":{"docs":{},"到":{"docs":{},"难":{"docs":{},"完":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"输":{"docs":{},"入":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"在":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"和":{"docs":{},"并":{"docs":{},"列":{"docs":{},"举":{"docs":{},"一":{"docs":{},"些":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"设":{"docs":{},"计":{"docs":{},"中":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"i":{"docs":{},"r":{"docs":{},"设":{"docs":{},"计":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"和":{"docs":{},"并":{"docs":{},"列":{"docs":{},"举":{"docs":{},"一":{"docs":{},"些":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"来":{"docs":{},"集":{"docs":{},"中":{"docs":{},"解":{"docs":{},"决":{"docs":{},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"了":{"docs":{},"任":{"docs":{},"何":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"中":{"docs":{},"检":{"docs":{},"索":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"有":{"docs":{},"其":{"docs":{},"他":{"docs":{},"人":{"docs":{},"提":{"docs":{},"问":{"docs":{},"过":{"docs":{},",":{"docs":{},"欢":{"docs":{},"迎":{"docs":{},"向":{"docs":{},"助":{"docs":{},"教":{"docs":{},"提":{"docs":{},"问":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"会":{"docs":{},"尽":{"docs":{},"快":{"docs":{},"回":{"docs":{},"复":{"docs":{},"的":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"预":{"docs":{},"先":{"docs":{},"编":{"docs":{},"译":{"docs":{},"好":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"只":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"框":{"docs":{},"架":{"docs":{},"现":{"docs":{},"在":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"里":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"处":{"docs":{},"理":{"docs":{},"悬":{"docs":{},"吊":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"里":{"docs":{},"在":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"中":{"docs":{},"对":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"简":{"docs":{},"单":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"了":{"docs":{},"解":{"docs":{},"一":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"知":{"docs":{},"识":{"docs":{},"。":{"docs":{},"除":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"确":{"docs":{},"定":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}},"先":{"docs":{},"引":{"docs":{},"入":{"docs":{},"下":{"docs":{},"面":{"docs":{},"四":{"docs":{},"种":{"docs":{},"针":{"docs":{},"对":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"集":{"docs":{},"合":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"定":{"docs":{},"义":{"docs":{},":":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"列":{"docs":{},"表":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"修":{"docs":{},"改":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"结":{"docs":{},"点":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"用":{"docs":{},"于":{"docs":{},"记":{"docs":{},"录":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},"设":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"好":{"docs":{},"了":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"针":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"只":{"docs":{},"是":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"目":{"docs":{},"的":{"docs":{},"是":{"docs":{},"给":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"致":{"docs":{},"的":{"docs":{},"印":{"docs":{},"象":{"docs":{},":":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"到":{"docs":{},"底":{"docs":{},"是":{"docs":{},"由":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"部":{"docs":{},"分":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"部":{"docs":{},"分":{"docs":{},"又":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"作":{"docs":{},"用":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"技":{"docs":{},"术":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"规":{"docs":{},"定":{"docs":{},"整":{"docs":{},"数":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"可":{"docs":{},"以":{"docs":{},"简":{"docs":{},"单":{"docs":{},"理":{"docs":{},"解":{"docs":{},"成":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"办":{"docs":{},"法":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"3":{"2":{"docs":{},"位":{"docs":{},"整":{"docs":{},"数":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"截":{"docs":{},"断":{"docs":{},"高":{"docs":{},"于":{"3":{"2":{"docs":{},"位":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"请":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"对":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"化":{"docs":{},"进":{"docs":{},"行":{"docs":{},"简":{"docs":{},"单":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"和":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"看":{"docs":{},"p":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"是":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"由":{"docs":{},"一":{"docs":{},"个":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"组":{"docs":{},"成":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"就":{"docs":{},"是":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"忽":{"docs":{},"略":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"缩":{"docs":{},"进":{"docs":{},"表":{"docs":{},"示":{"docs":{},"树":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},"知":{"docs":{},"道":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"里":{"docs":{},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},"的":{"docs":{},"树":{"docs":{},"状":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"最":{"docs":{},"典":{"docs":{},"型":{"docs":{},"的":{"docs":{},"就":{"docs":{},"是":{"docs":{},",":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"过":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"文":{"docs":{},"法":{"docs":{},"解":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"。":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"生":{"docs":{},"成":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"整":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"。":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"“":{"docs":{},"除":{"docs":{},"数":{"docs":{},"为":{"docs":{},"零":{"docs":{},"的":{"docs":{},"除":{"docs":{},"法":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"”":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"即":{"docs":{},"使":{"docs":{},"除":{"docs":{},"法":{"docs":{},"的":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"采":{"docs":{},"用":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"把":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"(":{"docs":{},"如":{"docs":{},":":{"2":{"0":{"2":{"4":{"docs":{},"、":{"1":{"docs":{},")":{"docs":{},"变":{"docs":{},"成":{"docs":{},"单":{"docs":{},"目":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"如":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"划":{"docs":{},"分":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"分":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"发":{"docs":{},"现":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},"加":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}},"对":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"条":{"docs":{},"件":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}}}},"的":{"docs":{},"是":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"语":{"docs":{},"法":{"docs":{},"改":{"docs":{},"动":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},":":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"函":{"docs":{},"数":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"即":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"以":{"docs":{},"只":{"docs":{},"有":{"docs":{},"声":{"docs":{},"明":{"docs":{},"没":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"评":{"docs":{},"测":{"docs":{},"性":{"docs":{},"能":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"读":{"docs":{},"入":{"docs":{},"数":{"docs":{},"据":{"docs":{},"和":{"docs":{},"打":{"docs":{},"印":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"会":{"docs":{},"把":{"docs":{},"你":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"一":{"docs":{},"个":{"docs":{},"外":{"docs":{},"部":{"docs":{},"库":{"docs":{},"进":{"docs":{},"行":{"docs":{},"链":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"语":{"docs":{},"法":{"docs":{},"写":{"docs":{},"法":{"docs":{},"可":{"docs":{},"能":{"docs":{},"比":{"docs":{},"较":{"docs":{},"繁":{"docs":{},"琐":{"docs":{},",":{"docs":{},"但":{"docs":{},"它":{"docs":{},"有":{"docs":{},"几":{"docs":{},"个":{"docs":{},"好":{"docs":{},"处":{"docs":{},":":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"已":{"docs":{},"经":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"额":{"docs":{},"外":{"docs":{},"定":{"docs":{},"义":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"了":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"按":{"docs":{},"照":{"docs":{},"本":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"确":{"docs":{},"实":{"docs":{},"只":{"docs":{},"能":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"我":{"docs":{},"们":{"docs":{},"期":{"docs":{},"望":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"首":{"docs":{},"先":{"docs":{},"来":{"docs":{},"看":{"docs":{},"本":{"docs":{},"节":{"docs":{},"指":{"docs":{},"导":{"docs":{},"用":{"docs":{},"例":{"docs":{},"所":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"人":{"docs":{},"为":{"docs":{},"规":{"docs":{},"定":{"docs":{},":":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}},"目":{"docs":{},"前":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},":":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}},"推":{"docs":{},"荐":{"docs":{},"大":{"docs":{},"家":{"docs":{},"按":{"docs":{},"照":{"docs":{},"以":{"docs":{},"下":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"前":{"docs":{},"中":{"docs":{},"端":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"中":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"很":{"docs":{},"多":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"比":{"docs":{},"较":{"docs":{},"熟":{"docs":{},"悉":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"着":{"docs":{},"重":{"docs":{},"关":{"docs":{},"注":{"docs":{},"后":{"docs":{},"端":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"暂":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"不":{"docs":{},"包":{"docs":{},"含":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}},"对":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},"不":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"要":{"docs":{},"求":{"docs":{},"或":{"docs":{},"限":{"docs":{},"定":{"docs":{},";":{"docs":{},"但":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"能":{"docs":{},"有":{"docs":{},"同":{"docs":{},"名":{"docs":{},"的":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"固":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"即":{"docs":{},"在":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"中":{"docs":{},",":{"docs":{},"其":{"docs":{},"长":{"docs":{},"度":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"正":{"docs":{},"整":{"docs":{},"数":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"换":{"docs":{},"一":{"docs":{},"种":{"docs":{},"角":{"docs":{},"度":{"docs":{},"去":{"docs":{},"思":{"docs":{},"考":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"什":{"docs":{},"么":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"?":{"docs":{},"当":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"同":{"docs":{},"时":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"时":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"分":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"一":{"docs":{},"对":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"相":{"docs":{},"干":{"docs":{},"的":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"说":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"继":{"docs":{},"承":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"为":{"docs":{},"所":{"docs":{},"有":{"docs":{},"指":{"docs":{},"令":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"类":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{},"令":{"docs":{},"牌":{"docs":{},"流":{"docs":{},"上":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"该":{"docs":{},"输":{"docs":{},"入":{"docs":{},"上":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},"来":{"docs":{},"组":{"docs":{},"织":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"思":{"docs":{},"考":{"docs":{},"一":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"完":{"docs":{},"整":{"docs":{},"描":{"docs":{},"述":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"?":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"要":{"docs":{},"这":{"docs":{},"样":{"docs":{},"做":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"注":{"docs":{},"意":{"docs":{},"到":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"上":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}},"令":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"集":{"docs":{},"文":{"docs":{},"档":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"其":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"所":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"思":{"docs":{},"路":{"docs":{},"是":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"简":{"docs":{},"洁":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"多":{"docs":{},"条":{"docs":{},"简":{"docs":{},"单":{"docs":{},"指":{"docs":{},"令":{"docs":{},"代":{"docs":{},"替":{"docs":{},",":{"docs":{},"如":{"docs":{},"相":{"docs":{},"等":{"docs":{},"、":{"docs":{},"大":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"与":{"docs":{},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"等":{"docs":{},"等":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"实":{"docs":{},"现":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"每":{"docs":{},"条":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},"比":{"docs":{},"较":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"每":{"docs":{},"条":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"上":{"docs":{},"述":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"操":{"docs":{},"作":{"docs":{},"码":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"(":{"docs":{},"最":{"docs":{},"多":{"3":{"docs":{},"个":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"除":{"docs":{},"外":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"严":{"docs":{},"格":{"docs":{},"的":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"反":{"docs":{},"而":{"docs":{},"会":{"docs":{},"使":{"docs":{},"得":{"docs":{},"函":{"docs":{},"数":{"docs":{},"一":{"docs":{},"节":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"为":{"docs":{},"复":{"docs":{},"杂":{"docs":{},")":{"docs":{},"构":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"为":{"docs":{},"复":{"docs":{},"杂":{"docs":{},")":{"docs":{},"构":{"docs":{},"成":{"docs":{},"。":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"标":{"docs":{},"签":{"docs":{},"(":{"docs":{},"可":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}},"不":{"docs":{},"过":{"docs":{},"为":{"docs":{},"了":{"docs":{},"实":{"docs":{},"现":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"仔":{"docs":{},"细":{"docs":{},"地":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"来":{"docs":{},"支":{"docs":{},"持":{"docs":{},"加":{"docs":{},"载":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"完":{"docs":{},"成":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"选":{"docs":{},"择":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"关":{"docs":{},"的":{"docs":{},"窥":{"docs":{},"孔":{"docs":{},"优":{"docs":{},"化":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"必":{"docs":{},"要":{"docs":{},"时":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"增":{"docs":{},"加":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"等":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"即":{"docs":{},"所":{"docs":{},"有":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"都":{"docs":{},"已":{"docs":{},"经":{"docs":{},"分":{"docs":{},"配":{"docs":{},"好":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},")":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"部":{"docs":{},"分":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"部":{"docs":{},"分":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"频":{"docs":{},"繁":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"内":{"docs":{},"存":{"docs":{},"将":{"docs":{},"导":{"docs":{},"致":{"docs":{},"严":{"docs":{},"重":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"由":{"docs":{},"此":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"插":{"docs":{},"入":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"只":{"docs":{},"要":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"一":{"docs":{},"定":{"docs":{},"要":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"合":{"docs":{},"(":{"docs":{},"说":{"docs":{},"出":{"docs":{},"两":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}},"语":{"docs":{},"法":{"docs":{},"是":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"顺":{"docs":{},"序":{"docs":{},"对":{"docs":{},"结":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"影":{"docs":{},"响":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"位":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"不":{"docs":{},"是":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"为":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"链":{"docs":{},"接":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"r":{"docs":{},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"w":{"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"在":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"加":{"docs":{},"上":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},"得":{"docs":{},"到":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},",":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"每":{"docs":{},"次":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"应":{"docs":{},"当":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"同":{"docs":{},"时":{"docs":{},"支":{"docs":{},"持":{"docs":{},"并":{"docs":{},"行":{"docs":{},"执":{"docs":{},"行":{"docs":{},"(":{"docs":{},"即":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"地":{"docs":{},"构":{"docs":{},"建":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}},"显":{"docs":{},"式":{"docs":{},"地":{"docs":{},"读":{"docs":{},"写":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"使":{"docs":{},"用":{"docs":{},"上":{"docs":{},"述":{"docs":{},"方":{"docs":{},"案":{"docs":{},"编":{"docs":{},"写":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"改":{"docs":{},"写":{"docs":{},",":{"docs":{},"以":{"docs":{},"保":{"docs":{},"证":{"docs":{},"程":{"docs":{},"序":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"指":{"docs":{},"令":{"docs":{},"后":{"docs":{},",":{"docs":{},"维":{"docs":{},"护":{"docs":{},"该":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"后":{"docs":{},"继":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"度":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"在":{"docs":{},"不":{"docs":{},"影":{"docs":{},"响":{"docs":{},"指":{"docs":{},"令":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},"调":{"docs":{},"整":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"目":{"docs":{},"的":{"docs":{},"之":{"docs":{},"一":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"现":{"docs":{},"代":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},"提":{"docs":{},"升":{"docs":{},"指":{"docs":{},"令":{"docs":{},"级":{"docs":{},"并":{"docs":{},"行":{"docs":{},"度":{"docs":{},"。":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"调":{"docs":{},"度":{"docs":{},"首":{"docs":{},"先":{"docs":{},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},"构":{"docs":{},"造":{"docs":{},"d":{"docs":{},"a":{"docs":{},"g":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"利":{"docs":{},"用":{"docs":{},"关":{"docs":{},"键":{"docs":{},"路":{"docs":{},"径":{"docs":{},"长":{"docs":{},"度":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"压":{"docs":{},"力":{"docs":{},"、":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"发":{"docs":{},"射":{"docs":{},"宽":{"docs":{},"度":{"docs":{},"等":{"docs":{},"因":{"docs":{},"素":{"docs":{},"结":{"docs":{},"合":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"功":{"docs":{},"能":{"docs":{},"单":{"docs":{},"元":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"模":{"docs":{},"型":{"docs":{},"依":{"docs":{},"次":{"docs":{},"决":{"docs":{},"定":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"料":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"每":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"w":{"docs":{},"/":{"docs":{},"c":{"docs":{},"/":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{},"它":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},"语":{"docs":{},"言":{"docs":{},"是":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"子":{"docs":{},"集":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"这":{"docs":{},"张":{"docs":{},"表":{"docs":{},"格":{"docs":{},"也":{"docs":{},"足":{"docs":{},"够":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"底":{"docs":{},",":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"顶":{"docs":{},",":{"docs":{},"f":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"栈":{"docs":{},"顶":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"父":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"时":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"间":{"docs":{},"安":{"docs":{},"排":{"docs":{},"及":{"docs":{},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{},"请":{"docs":{},"看":{"docs":{},"实":{"docs":{},"验":{"docs":{},"进":{"docs":{},"度":{"docs":{},"安":{"docs":{},"排":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"要":{"docs":{},"输":{"docs":{},"入":{"docs":{},"完":{"docs":{},"整":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"请":{"docs":{},"用":{"docs":{},"完":{"docs":{},"整":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"就":{"docs":{},"处":{"docs":{},"理":{"docs":{},"了":{"docs":{},"?":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"希":{"docs":{},"望":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"能":{"docs":{},"在":{"docs":{},"一":{"docs":{},"定":{"docs":{},"程":{"docs":{},"度":{"docs":{},"上":{"docs":{},"与":{"docs":{},"平":{"docs":{},"台":{"docs":{},"无":{"docs":{},"关":{"docs":{},"(":{"docs":{},"不":{"docs":{},"同":{"docs":{},"后":{"docs":{},"端":{"docs":{},"目":{"docs":{},"标":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"可":{"docs":{},"能":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"大":{"docs":{},"差":{"docs":{},"异":{"docs":{},")":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"能":{"docs":{},"力":{"docs":{},"能":{"docs":{},"简":{"docs":{},"化":{"docs":{},"整":{"docs":{},"体":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"其":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}},"与":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}},"或":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"应":{"docs":{},"终":{"docs":{},"止":{"docs":{},"执":{"docs":{},"行":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}},"从":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"查":{"docs":{},"找":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"机":{"docs":{},"制":{"docs":{},"来":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}},"遍":{"docs":{},"历":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"对":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"计":{"docs":{},"算":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"中":{"docs":{},"的":{"docs":{},"支":{"docs":{},"配":{"docs":{},"关":{"docs":{},"系":{"docs":{},"和":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"支":{"docs":{},"配":{"docs":{},"边":{"docs":{},"界":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"在":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"选":{"docs":{},"择":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"子":{"docs":{},"句":{"docs":{},";":{"docs":{},"当":{"docs":{},"控":{"docs":{},"制":{"docs":{},"条":{"docs":{},"件":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"求":{"docs":{},"得":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"求":{"docs":{},"得":{"docs":{},"的":{"docs":{},"值":{"docs":{},";":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"非":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"行":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"下":{"docs":{},"标":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"地":{"docs":{},"址":{"docs":{},"计":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"并":{"docs":{},"不":{"docs":{},"困":{"docs":{},"难":{"docs":{},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"能":{"docs":{},"比":{"docs":{},"较":{"docs":{},"繁":{"docs":{},"琐":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"现":{"docs":{},"时":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"快":{"docs":{},"速":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}},"是":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"很":{"docs":{},"像":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"与":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"根":{"docs":{},"据":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"其":{"docs":{},"声":{"docs":{},"明":{"docs":{},"发":{"docs":{},"生":{"docs":{},"在":{"docs":{},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"求":{"docs":{},"值":{"docs":{},"之":{"docs":{},"前":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"其":{"docs":{},"求":{"docs":{},"值":{"docs":{},"会":{"docs":{},"在":{"docs":{},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"求":{"docs":{},"值":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"b":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"a":{"docs":{},"[":{"docs":{},"b":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},"强":{"docs":{},"大":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"根":{"docs":{},"据":{"docs":{},"给":{"docs":{},"定":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"则":{"docs":{},"其":{"docs":{},"所":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"所":{"docs":{},"属":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"是":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"测":{"docs":{},"试":{"docs":{},"前":{"docs":{},"会":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"准":{"docs":{},"备":{"docs":{},"脚":{"docs":{},"本":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"安":{"docs":{},"装":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"(":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"想":{"docs":{},"添":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"或":{"docs":{},"者":{"docs":{},"修":{"docs":{},"改":{"docs":{},"编":{"docs":{},"译":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{},"此":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"某":{"docs":{},"个":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"否":{"docs":{},"成":{"docs":{},"功":{"docs":{},"安":{"docs":{},"装":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"正":{"docs":{},"确":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"知":{"docs":{},"道":{"docs":{},":":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}},"如":{"docs":{},"何":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{},"t":{"docs":{},"_":{"docs":{},"开":{"docs":{},"头":{"docs":{},"。":{"docs":{},"如":{"docs":{},"t":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{},"这":{"docs":{},"一":{"docs":{},"条":{"docs":{},"规":{"docs":{},"则":{"docs":{},"对":{"docs":{},"于":{"docs":{},"后":{"docs":{},"续":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}},",":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{},"意":{"docs":{},"思":{"docs":{},"就":{"docs":{},"是":{"docs":{},"你":{"docs":{},"想":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"处":{"docs":{},"理":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"全":{"docs":{},"部":{"docs":{},"默":{"docs":{},"认":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"docs":{},"结":{"docs":{},"合":{"docs":{},"的":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"1":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}},"docs":{}}}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"真":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"命":{"docs":{},"名":{"docs":{},"它":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"把":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"本":{"docs":{},"身":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"从":{"docs":{},"后":{"docs":{},"往":{"docs":{},"前":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"便":{"docs":{},"可":{"docs":{},"以":{"docs":{},"求":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"样":{"docs":{},"处":{"docs":{},"理":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"单":{"docs":{},"。":{"docs":{},"比":{"docs":{},"较":{"docs":{},"理":{"docs":{},"想":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"可":{"docs":{},"能":{"docs":{},"带":{"docs":{},"来":{"docs":{},"一":{"docs":{},"些":{"docs":{},"边":{"docs":{},"角":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"谨":{"docs":{},"慎":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"段":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},".":{"docs":{},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"传":{"docs":{},"参":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"申":{"docs":{},"请":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"需":{"docs":{},"要":{"docs":{},"计":{"docs":{},"算":{"docs":{},"数":{"docs":{},"组":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},",":{"docs":{},"不":{"docs":{},"用":{"docs":{},"担":{"docs":{},"心":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"稍":{"docs":{},"后":{"docs":{},"会":{"docs":{},"看":{"docs":{},"到":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"对":{"docs":{},"大":{"docs":{},"小":{"docs":{},"写":{"docs":{},"敏":{"docs":{},"感":{"docs":{},"的":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"次":{"docs":{},"触":{"docs":{},"发":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},",":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"将":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"改":{"docs":{},"为":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"将":{"docs":{},"右":{"docs":{},"边":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"值":{"docs":{},"存":{"docs":{},"入":{"docs":{},"左":{"docs":{},"边":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"左":{"docs":{},"边":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"终":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"工":{"docs":{},"具":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"没":{"docs":{},"法":{"docs":{},"做":{"docs":{},"到":{"docs":{},"点":{"docs":{},"一":{"docs":{},"下":{"docs":{},"就":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"己":{"docs":{},"判":{"docs":{},"断":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"某":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"其":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"以":{"docs":{},"上":{"docs":{},"的":{"docs":{},"这":{"docs":{},"些":{"docs":{},"“":{"docs":{},"指":{"docs":{},"令":{"docs":{},"”":{"docs":{},"展":{"docs":{},"开":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"可":{"docs":{},"以":{"docs":{},"保":{"docs":{},"守":{"docs":{},"地":{"docs":{},"展":{"docs":{},"开":{"docs":{},"为":{"docs":{},"以":{"docs":{},"下":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"学":{"docs":{},"期":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"清":{"docs":{},"华":{"docs":{},"大":{"docs":{},"学":{"docs":{},"代":{"docs":{},"码":{"docs":{},"托":{"docs":{},"管":{"docs":{},"服":{"docs":{},"务":{"docs":{},"(":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{},")":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"多":{"docs":{},"次":{"docs":{},"“":{"docs":{},"思":{"docs":{},"考":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"一":{"docs":{},"共":{"docs":{},"设":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}},"地":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}},"步":{"docs":{},"骤":{"docs":{},"主":{"docs":{},"要":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"为":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"和":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"中":{"docs":{},"其":{"docs":{},"他":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"和":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{},"取":{"docs":{},"负":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"实":{"docs":{},"现":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"和":{"docs":{},"按":{"docs":{},"位":{"docs":{},"非":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"能":{"docs":{},"够":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"快":{"docs":{},"速":{"docs":{},"上":{"docs":{},"手":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"加":{"docs":{},"法":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"二":{"docs":{},"元":{"docs":{},"加":{"docs":{},"法":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"实":{"docs":{},"现":{"docs":{},"其":{"docs":{},"他":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"实":{"docs":{},"现":{"docs":{},"其":{"docs":{},"他":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"无":{"docs":{},"须":{"docs":{},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"没":{"docs":{},"有":{"docs":{},"特":{"docs":{},"别":{"docs":{},"需":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"增":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"调":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"但":{"docs":{},"要":{"docs":{},"求":{"docs":{},"声":{"docs":{},"明":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},")":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},"维":{"docs":{},"护":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"引":{"docs":{},"入":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}},"节":{"docs":{},"指":{"docs":{},"导":{"docs":{},"用":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"就":{"docs":{},"是":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"后":{"docs":{},"面":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"论":{"docs":{},"文":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}},"章":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{},"几":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"如":{"docs":{},"何":{"docs":{},"做":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"将":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"些":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{},",":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"学":{"docs":{},"习":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"仅":{"docs":{},"供":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"自":{"docs":{},"己":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"和":{"docs":{},"i":{"docs":{},"r":{"docs":{},"进":{"docs":{},"行":{"docs":{},"调":{"docs":{},"整":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"7":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"会":{"docs":{},"先":{"docs":{},"对":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"再":{"docs":{},"根":{"docs":{},"据":{"docs":{},"其":{"docs":{},"值":{"docs":{},"选":{"docs":{},"择":{"docs":{},"计":{"docs":{},"算":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"或":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"。":{"docs":{},"当":{"docs":{},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}},"边":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"。":{"docs":{},"这":{"docs":{},"时":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"点":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"机":{"docs":{},"选":{"docs":{},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"其":{"docs":{},"他":{"docs":{},"信":{"docs":{},"息":{"docs":{},"来":{"docs":{},"优":{"docs":{},"化":{"docs":{},"你":{"docs":{},"的":{"docs":{},"选":{"docs":{},"择":{"docs":{},")":{"docs":{},",":{"docs":{},"把":{"docs":{},"它":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"来":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"图":{"docs":{},"中":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"重":{"docs":{},"复":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"标":{"docs":{},"记":{"docs":{},"为":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},",":{"docs":{},"把":{"docs":{},"它":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"来":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"图":{"docs":{},"中":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{},"重":{"docs":{},"复":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"直":{"docs":{},"到":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"少":{"docs":{},"于":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"任":{"docs":{},"意":{"docs":{},"两":{"docs":{},"个":{"docs":{},"有":{"docs":{},"边":{"docs":{},"直":{"docs":{},"接":{"docs":{},"相":{"docs":{},"连":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"总":{"docs":{},"能":{"docs":{},"为":{"docs":{},"它":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"使":{"docs":{},"之":{"docs":{},"不":{"docs":{},"和":{"docs":{},"相":{"docs":{},"邻":{"docs":{},"的":{"docs":{},"最":{"docs":{},"多":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"分":{"docs":{},"支":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"手":{"docs":{},"动":{"docs":{},"更":{"docs":{},"新":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"判":{"docs":{},"断":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"结":{"docs":{},"点":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"说":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"点":{"docs":{},"其":{"docs":{},"实":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"已":{"docs":{},"经":{"docs":{},"被":{"docs":{},"语":{"docs":{},"法":{"docs":{},"保":{"docs":{},"证":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"其":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"用":{"docs":{},"标":{"docs":{},"签":{"docs":{},",":{"docs":{},"以":{"docs":{},"此":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"标":{"docs":{},"签":{"docs":{},"区":{"docs":{},"分":{"docs":{},"开":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"管":{"docs":{},"理":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"当":{"docs":{},"处":{"docs":{},"理":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"如":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},")":{"docs":{},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{},"新":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"储":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"或":{"docs":{},"者":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"编":{"docs":{},"号":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"记":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"当":{"docs":{},"然":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"要":{"docs":{},"求":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"docs":{},"式":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"报":{"docs":{},"告":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"报":{"docs":{},"告":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"步":{"docs":{},"骤":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"的":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"出":{"docs":{},"度":{"docs":{},"都":{"docs":{},"是":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}},"一":{"docs":{},"条":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"(":{"docs":{},"定":{"docs":{},"义":{"docs":{},")":{"docs":{},"指":{"docs":{},"定":{"docs":{},"了":{"docs":{},"对":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"的":{"docs":{},"解":{"docs":{},"释":{"docs":{},"和":{"docs":{},"属":{"docs":{},"性":{"docs":{},"。":{"docs":{},"当":{"docs":{},"变":{"docs":{},"量":{"docs":{},"被":{"docs":{},"定":{"docs":{},"义":{"docs":{},"时":{"docs":{},",":{"docs":{},"应":{"docs":{},"当":{"docs":{},"有":{"docs":{},"一":{"docs":{},"块":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"所":{"docs":{},"保":{"docs":{},"留":{"docs":{},"。":{"docs":{},"当":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"若":{"docs":{},"与":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"作":{"docs":{},"为":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"时":{"docs":{},",":{"docs":{},"其":{"docs":{},"就":{"docs":{},"应":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"进":{"docs":{},"而":{"docs":{},"深":{"docs":{},"入":{"docs":{},"理":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"和":{"docs":{},"相":{"docs":{},"关":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"具":{"docs":{},"备":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"技":{"docs":{},"术":{"docs":{},"开":{"docs":{},"发":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"解":{"docs":{},"决":{"docs":{},"编":{"docs":{},"译":{"docs":{},"技":{"docs":{},"术":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"面":{"docs":{},"依":{"docs":{},"次":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"上":{"docs":{},"述":{"docs":{},"编":{"docs":{},"译":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"文":{"docs":{},"档":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"其":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"选":{"docs":{},"择":{"docs":{},"在":{"docs":{},"这":{"docs":{},"次":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"退":{"docs":{},"出":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"退":{"docs":{},"出":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"第":{"docs":{},"八":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"3":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"将":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"扩":{"docs":{},"大":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"变":{"docs":{},"成":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}},"里":{"docs":{},"面":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"般":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"大":{"docs":{},"的":{"docs":{},"差":{"docs":{},"别":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"直":{"docs":{},"接":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"困":{"docs":{},"难":{"docs":{},"的":{"docs":{},"。":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"所":{"docs":{},"采":{"docs":{},"取":{"docs":{},"的":{"docs":{},"做":{"docs":{},"法":{"docs":{},",":{"docs":{},"是":{"docs":{},"首":{"docs":{},"先":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"一":{"docs":{},"种":{"docs":{},"相":{"docs":{},"对":{"docs":{},"接":{"docs":{},"近":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"从":{"docs":{},"这":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},"的":{"docs":{},"所":{"docs":{},"带":{"docs":{},"来":{"docs":{},"的":{"docs":{},"优":{"docs":{},"势":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"有":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"对":{"docs":{},"应":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"的":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"标":{"docs":{},"签":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"课":{"docs":{},"上":{"docs":{},"应":{"docs":{},"该":{"docs":{},"讲":{"docs":{},"过":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"中":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}},"的":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"中":{"docs":{},"看":{"docs":{},"到":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"你":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"用":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"起":{"docs":{},"走":{"docs":{},"过":{"docs":{},"它":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},"知":{"docs":{},"识":{"docs":{},"都":{"docs":{},"比":{"docs":{},"较":{"docs":{},"初":{"docs":{},"级":{"docs":{},",":{"docs":{},"随":{"docs":{},"着":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"深":{"docs":{},"入":{"docs":{},",":{"docs":{},"将":{"docs":{},"会":{"docs":{},"循":{"docs":{},"序":{"docs":{},"渐":{"docs":{},"进":{"docs":{},"地":{"docs":{},"引":{"docs":{},"入":{"docs":{},"各":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"文":{"docs":{},"档":{"docs":{},"对":{"docs":{},"相":{"docs":{},"关":{"docs":{},"技":{"docs":{},"术":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"实":{"docs":{},"现":{"docs":{},"相":{"docs":{},"关":{"docs":{},"编":{"docs":{},"译":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"实":{"docs":{},"验":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"之":{"docs":{},"间":{"docs":{},"相":{"docs":{},"互":{"docs":{},"学":{"docs":{},"习":{"docs":{},"和":{"docs":{},"指":{"docs":{},"导":{"docs":{},"是":{"docs":{},"提":{"docs":{},"倡":{"docs":{},"的":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"更":{"docs":{},"新":{"docs":{},",":{"docs":{},"在":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"之":{"docs":{},"后":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"主":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},")":{"docs":{},"和":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"时":{"docs":{},"刻":{"docs":{},"只":{"docs":{},"能":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"为":{"docs":{},"了":{"docs":{},"把":{"docs":{},"若":{"docs":{},"干":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"塞":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"各":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"别":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"以":{"docs":{},"后":{"docs":{},"不":{"docs":{},"会":{"docs":{},"再":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"(":{"docs":{},"以":{"docs":{},"便":{"docs":{},"腾":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"占":{"docs":{},"用":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"给":{"docs":{},"别":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"只":{"docs":{},"含":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"其":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"里":{"docs":{},"所":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"都":{"docs":{},"未":{"docs":{},"在":{"docs":{},"该":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"经":{"docs":{},"过":{"docs":{},"定":{"docs":{},"值":{"docs":{},",":{"docs":{},"其":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"的":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"和":{"docs":{},"i":{"docs":{},"r":{"docs":{},"设":{"docs":{},"计":{"docs":{},"不":{"docs":{},"尽":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"本":{"docs":{},"部":{"docs":{},"分":{"docs":{},"仅":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"些":{"docs":{},"重":{"docs":{},"点":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"思":{"docs":{},"路":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"示":{"docs":{},"例":{"docs":{},",":{"docs":{},"结":{"docs":{},"合":{"docs":{},"小":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"食":{"docs":{},"用":{"docs":{},"效":{"docs":{},"果":{"docs":{},"更":{"docs":{},"佳":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"没":{"docs":{},"有":{"docs":{},"新":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"除":{"docs":{},"非":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"应":{"docs":{},"该":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"可":{"docs":{},"以":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}},"体":{"docs":{},"的":{"docs":{},"存":{"docs":{},"在":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"多":{"docs":{},"次":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"上":{"docs":{},"述":{"docs":{},"写":{"docs":{},"法":{"docs":{},"并":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"的":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"里":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"无":{"docs":{},"法":{"docs":{},"像":{"docs":{},"我":{"docs":{},"们":{"docs":{},"之":{"docs":{},"前":{"docs":{},"接":{"docs":{},"触":{"docs":{},"到":{"docs":{},"的":{"docs":{},"常":{"docs":{},"规":{"docs":{},"指":{"docs":{},"令":{"docs":{},"一":{"docs":{},"样":{"docs":{},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"实":{"docs":{},"际":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"必":{"docs":{},"须":{"docs":{},"生":{"docs":{},"成":{"docs":{},"额":{"docs":{},"外":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"保":{"docs":{},"存":{"docs":{},"、":{"docs":{},"参":{"docs":{},"数":{"docs":{},"传":{"docs":{},"递":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"以":{"docs":{},"符":{"docs":{},"合":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"操":{"docs":{},"作":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"周":{"docs":{},"围":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"之":{"docs":{},"为":{"docs":{},"“":{"docs":{},"(":{"docs":{},"生":{"docs":{},"成":{"docs":{},")":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"或":{"docs":{},"“":{"docs":{},"对":{"docs":{},"于":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"可":{"docs":{},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"短":{"docs":{},"路":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"思":{"docs":{},"考":{"docs":{},"如":{"docs":{},"何":{"docs":{},"新":{"docs":{},"增":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"进":{"docs":{},"行":{"docs":{},"学":{"docs":{},"习":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},",":{"docs":{},"上":{"docs":{},"述":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"只":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"了":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{},"满":{"docs":{},"足":{"docs":{},"了":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"可":{"docs":{},"以":{"docs":{},"改":{"docs":{},"写":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"的":{"3":{"2":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"有":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.010309278350515464},"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.02304147465437788},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"子":{"docs":{},"集":{"docs":{},",":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"了":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"等":{"docs":{},"预":{"docs":{},"处":{"docs":{},"理":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"多":{"docs":{},"文":{"docs":{},"件":{"docs":{},"编":{"docs":{},"译":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"/":{"docs":{},"指":{"docs":{},"针":{"docs":{},"等":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"有":{"docs":{},"额":{"docs":{},"外":{"docs":{},"扣":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"现":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"帐":{"docs":{},"号":{"docs":{},"名":{"docs":{},"后":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"会":{"docs":{},"给":{"docs":{},"每":{"docs":{},"个":{"docs":{},"人":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"私":{"docs":{},"有":{"docs":{},"的":{"docs":{},"仓":{"docs":{},"库":{"docs":{},",":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"绩":{"docs":{},"并":{"docs":{},"替":{"docs":{},"代":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{},"对":{"docs":{},"应":{"docs":{},"权":{"docs":{},"重":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"完":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"对":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}},"自":{"docs":{},"动":{"docs":{},"化":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"都":{"docs":{},"将":{"docs":{},"以":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"组":{"docs":{},"织":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}},"法":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"今":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"就":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"前":{"docs":{},"端":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"。":{"docs":{},"参":{"docs":{},"加":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"可":{"docs":{},"以":{"docs":{},"替":{"docs":{},"代":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"法":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"截":{"docs":{},"止":{"docs":{},"时":{"docs":{},"间":{"docs":{},";":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},";":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}},"候":{"docs":{},"选":{"docs":{},"择":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"f":{"docs":{},"t":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"对":{"docs":{},"悬":{"docs":{},"挂":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"进":{"docs":{},"行":{"docs":{},"就":{"docs":{},"近":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"释":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"提":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"提":{"docs":{},"示":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"不":{"docs":{},"可":{"docs":{},"达":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"无":{"docs":{},"须":{"docs":{},"为":{"docs":{},"它":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":3.333333333333333}},"和":{"docs":{},"运":{"docs":{},"行":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"总":{"docs":{},"结":{"docs":{},"了":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},",":{"docs":{},"支":{"docs":{},"持":{"docs":{},"基":{"docs":{},"于":{"docs":{},"属":{"docs":{},"性":{"docs":{},"文":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"制":{"docs":{},"导":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"计":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"对":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"个":{"docs":{},"纯":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"源":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},",":{"docs":{},"附":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}},"法":{"docs":{},",":{"docs":{},"了":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"自":{"docs":{},"动":{"docs":{},"构":{"docs":{},"造":{"docs":{},"工":{"docs":{},"具":{"docs":{},"的":{"docs":{},"特":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"结":{"docs":{},"合":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"理":{"docs":{},"解":{"docs":{},"正":{"docs":{},"规":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"、":{"docs":{},"自":{"docs":{},"动":{"docs":{},"机":{"docs":{},"、":{"docs":{},"l":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"容":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"上":{"docs":{},"面":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"简":{"docs":{},"化":{"docs":{},"版":{"docs":{},"本":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"细":{"docs":{},"微":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"码":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}}}}}}}},"那":{"docs":{},"个":{"docs":{},"值":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"请":{"docs":{},"保":{"docs":{},"证":{"docs":{},"你":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"性":{"docs":{},",":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},"会":{"docs":{},"在":{"docs":{},"软":{"docs":{},"件":{"docs":{},"工":{"docs":{},"程":{"docs":{},"课":{"docs":{},"上":{"docs":{},"讲":{"docs":{},"述":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"也":{"docs":{},"自":{"docs":{},"行":{"docs":{},"查":{"docs":{},"阅":{"docs":{},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"料":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"里":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"以":{"docs":{},"及":{"docs":{},"附":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"为":{"docs":{},"其":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"子":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"以":{"docs":{},"下":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"在":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"主":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"同":{"docs":{},"时":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"子":{"docs":{},"模":{"docs":{},"块":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"会":{"docs":{},"详":{"docs":{},"细":{"docs":{},"梳":{"docs":{},"理":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"当":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"某":{"docs":{},"部":{"docs":{},"分":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"(":{"docs":{},"如":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},")":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"的":{"docs":{},"讲":{"docs":{},"解":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"形":{"docs":{},"式":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"k":{"docs":{},"表":{"docs":{},"示":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"编":{"docs":{},"号":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"由":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"无":{"docs":{},"需":{"docs":{},"关":{"docs":{},"心":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"定":{"docs":{},"为":{"docs":{},"存":{"docs":{},"放":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{},"返":{"docs":{},"回":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"则":{"docs":{},"是":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125}}}}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"额":{"docs":{},"外":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"结":{"docs":{},"合":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"来":{"docs":{},"快":{"docs":{},"速":{"docs":{},"上":{"docs":{},"手":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"入":{"docs":{},"门":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"对":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"次":{"docs":{},"遍":{"docs":{},"历":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"某":{"docs":{},"种":{"docs":{},"检":{"docs":{},"查":{"docs":{},"或":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"称":{"docs":{},"为":{"docs":{},"遍":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"想":{"docs":{},"到":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"现":{"docs":{},"代":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"是":{"docs":{},"由":{"docs":{},"很":{"docs":{},"多":{"docs":{},"遍":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"如":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"都":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"经":{"docs":{},"过":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"去":{"docs":{},"看":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"与":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"注":{"docs":{},"释":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"了":{"docs":{},"解":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"会":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"docs":{}}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}},"(":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{},"《":{"docs":{},"高":{"docs":{},"级":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"设":{"docs":{},"计":{"docs":{},"与":{"docs":{},"实":{"docs":{},"现":{"docs":{},"》":{"docs":{},"(":{"docs":{},"鲸":{"docs":{},"书":{"docs":{},")":{"docs":{},")":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"记":{"docs":{},"号":{"docs":{},":":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"图":{"docs":{},"标":{"docs":{},",":{"docs":{},"代":{"docs":{},"表":{"docs":{},"当":{"docs":{},"前":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"或":{"docs":{},"者":{"docs":{},"在":{"docs":{},"网":{"docs":{},"页":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"选":{"docs":{},"择":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"从":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},"程":{"docs":{},"序":{"docs":{},"是":{"docs":{},"有":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"的":{"docs":{},"。":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}},"左":{"docs":{},"侧":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"画":{"docs":{},"圈":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"左":{"docs":{},"值":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}},"边":{"docs":{},"只":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"再":{"docs":{},"要":{"docs":{},"求":{"docs":{},"其":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"已":{"docs":{},"经":{"docs":{},"声":{"docs":{},"明":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"方":{"docs":{},"式":{"docs":{},"更":{"docs":{},"符":{"docs":{},"合":{"docs":{},"你":{"docs":{},"的":{"docs":{},"直":{"docs":{},"觉":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"点":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"进":{"docs":{},"行":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"将":{"docs":{},"结":{"docs":{},"果":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"该":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}},"是":{"docs":{},"其":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"反":{"docs":{},"码":{"docs":{},"(":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"结":{"docs":{},"果":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"位":{"docs":{},"是":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"反":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"乘":{"docs":{},"积":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"和":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"减":{"docs":{},"去":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{},"差":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}},"除":{"docs":{},"以":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{},"余":{"docs":{},"数":{"docs":{},"。":{"docs":{},"在":{"docs":{},"两":{"docs":{},"种":{"docs":{},"操":{"docs":{},"作":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"为":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}},"商":{"docs":{},"的":{"docs":{},"整":{"docs":{},"数":{"docs":{},"部":{"docs":{},"分":{"docs":{},"(":{"docs":{},"即":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"“":{"docs":{},"向":{"docs":{},"零":{"docs":{},"取":{"docs":{},"整":{"docs":{},"”":{"docs":{},")":{"docs":{},",":{"docs":{},"二":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"是":{"docs":{},"未":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"(":{"docs":{},"待":{"docs":{},"我":{"docs":{},"们":{"docs":{},"加":{"docs":{},"上":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},"才":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"真":{"docs":{},"正":{"docs":{},"切":{"docs":{},"实":{"docs":{},"的":{"docs":{},"影":{"docs":{},"响":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"使":{"docs":{},"用":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"减":{"docs":{},"去":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"加":{"docs":{},"上":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"存":{"docs":{},"储":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"去":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"都":{"docs":{},"指":{"docs":{},"向":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"赋":{"docs":{},"给":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"栈":{"docs":{},"中":{"docs":{},",":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"写":{"docs":{},"法":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"为":{"0":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"docs":{},"真":{"docs":{},"(":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"0":{"docs":{},")":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"应":{"docs":{},"当":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"docs":{}}}}}}},"作":{"docs":{},"为":{"docs":{},"参":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"含":{"docs":{},"义":{"docs":{},"与":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"改":{"docs":{},"动":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"并":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"它":{"docs":{},"的":{"docs":{},"布":{"docs":{},"局":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}},"“":{"docs":{},"替":{"docs":{},"身":{"docs":{},"”":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"当":{"docs":{},"作":{"docs":{},"“":{"docs":{},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"使":{"docs":{},"用":{"docs":{},"”":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"这":{"docs":{},"并":{"docs":{},"不":{"docs":{},"产":{"docs":{},"生":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"由":{"docs":{},"于":{"docs":{},"本":{"docs":{},"节":{"docs":{},"还":{"docs":{},"无":{"docs":{},"需":{"docs":{},"支":{"docs":{},"持":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"不":{"docs":{},"用":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"这":{"docs":{},"一":{"docs":{},"点":{"docs":{},",":{"docs":{},"只":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"维":{"docs":{},"护":{"docs":{},"层":{"docs":{},"次":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"了":{"docs":{},"它":{"docs":{},"的":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}},"底":{"docs":{},"层":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"新":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{},",":{"docs":{},"并":{"docs":{},"按":{"docs":{},"照":{"docs":{},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},":":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"外":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"其":{"docs":{},"他":{"docs":{},"文":{"docs":{},"件":{"docs":{},"以":{"docs":{},"适":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"看":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"求":{"docs":{},"值":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"每":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"知":{"docs":{},"道":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"特":{"docs":{},"别":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"建":{"docs":{},"议":{"docs":{},"的":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"式":{"docs":{},"为":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"根":{"docs":{},"据":{"docs":{},"地":{"docs":{},"址":{"docs":{},"来":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"定":{"docs":{},"义":{"docs":{},"两":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"值":{"docs":{},"的":{"docs":{},"加":{"docs":{},"载":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"直":{"docs":{},"接":{"docs":{},"给":{"docs":{},"出":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"方":{"docs":{},"式":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"和":{"docs":{},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"论":{"docs":{},"文":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}},"中":{"docs":{},",":{"docs":{},"提":{"docs":{},"到":{"docs":{},"了":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{},"即":{"docs":{},"对":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"它":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"具":{"docs":{},"有":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"以":{"docs":{},"后":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"它":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"看":{"docs":{},"上":{"docs":{},"述":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"流":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"发":{"docs":{},"现":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"点":{"docs":{},"不":{"docs":{},"是":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"通":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"情":{"docs":{},"况":{"docs":{},"评":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"合":{"docs":{},"并":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"吗":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}}}}},"颜":{"docs":{},"色":{"docs":{},"和":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"得":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"简":{"docs":{},"易":{"docs":{},"、":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"分":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{},"现":{"docs":{},"有":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"重":{"docs":{},"构":{"docs":{},"实":{"docs":{},"现":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},"反":{"docs":{},"而":{"docs":{},"在":{"docs":{},"一":{"docs":{},"定":{"docs":{},"程":{"docs":{},"度":{"docs":{},"上":{"docs":{},"限":{"docs":{},"制":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"有":{"docs":{},"一":{"docs":{},"点":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{},"编":{"docs":{},"译":{"docs":{},"链":{"docs":{},"接":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"整":{"docs":{},"流":{"docs":{},"程":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"最":{"docs":{},"小":{"docs":{},"版":{"docs":{},"本":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"节":{"docs":{},"点":{"docs":{},"通":{"docs":{},"常":{"docs":{},"只":{"docs":{},"包":{"docs":{},"含":{"docs":{},"与":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"去":{"docs":{},"除":{"docs":{},"了":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"测":{"docs":{},"例":{"docs":{},"并":{"docs":{},"报":{"docs":{},"告":{"docs":{},"编":{"docs":{},"译":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"包":{"docs":{},"括":{"docs":{},"符":{"docs":{},"号":{"docs":{},"解":{"docs":{},"析":{"docs":{},"(":{"docs":{},"名":{"docs":{},"称":{"docs":{},"绑":{"docs":{},"定":{"docs":{},")":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"以":{"docs":{},"保":{"docs":{},"证":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"等":{"docs":{},"符":{"docs":{},"号":{"docs":{},"被":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"定":{"docs":{},"义":{"docs":{},"、":{"docs":{},"引":{"docs":{},"用":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"之":{"docs":{},"上":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"是":{"docs":{},"不":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}},"组":{"docs":{},"合":{"docs":{},"。":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}},"针":{"docs":{},"对":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"生":{"docs":{},"成":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},",":{"docs":{},"且":{"docs":{},"避":{"docs":{},"免":{"docs":{},"了":{"docs":{},"繁":{"docs":{},"琐":{"docs":{},"地":{"docs":{},"构":{"docs":{},"造":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"因":{"docs":{},"为":{"docs":{},"其":{"docs":{},"中":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"阶":{"docs":{},"乘":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"博":{"docs":{},"文":{"docs":{},",":{"docs":{},"其":{"docs":{},"与":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"源":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"信":{"docs":{},"息":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"的":{"docs":{},"解":{"docs":{},"释":{"docs":{},"和":{"docs":{},"详":{"docs":{},"细":{"docs":{},"说":{"docs":{},"明":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}}}}}}}}}}}},"比":{"docs":{},"于":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"同":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}},"即":{"docs":{},"“":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}},"从":{"docs":{},"而":{"docs":{},"意":{"docs":{},"外":{"docs":{},"地":{"docs":{},"和":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"导":{"docs":{},"致":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"各":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"干":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"硬":{"docs":{},"件":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"上":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"随":{"docs":{},"着":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"一":{"docs":{},"步":{"docs":{},"步":{"docs":{},"推":{"docs":{},"进":{"docs":{},",":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"译":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"里":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"下":{"docs":{},"面":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"统":{"docs":{},"一":{"docs":{},"用":{"docs":{},"一":{"docs":{},"种":{"docs":{},"具":{"docs":{},"有":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"来":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"使":{"docs":{},"用":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"好":{"docs":{},"处":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"是":{"docs":{},"无":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"说":{"docs":{},"它":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"3":{"2":{"docs":{},"位":{"docs":{},"(":{"4":{"docs":{},"字":{"docs":{},"节":{"docs":{},")":{"docs":{},"整":{"docs":{},"数":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"指":{"docs":{},"令":{"docs":{},"构":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"报":{"docs":{},"错":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"所":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"并":{"docs":{},"非":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"细":{"docs":{},"节":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"只":{"docs":{},"表":{"docs":{},"示":{"docs":{},"其":{"docs":{},"树":{"docs":{},"形":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"点":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"生":{"docs":{},"成":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"只":{"docs":{},"能":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"现":{"docs":{},"在":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"允":{"docs":{},"许":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"作":{"docs":{},"为":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"起":{"docs":{},"始":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},",":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"代":{"docs":{},"码":{"docs":{},"贴":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"启":{"docs":{},"用":{"docs":{},"优":{"docs":{},"化":{"docs":{},"选":{"docs":{},"项":{"docs":{},"编":{"docs":{},"译":{"docs":{},"时":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"产":{"docs":{},"生":{"docs":{},"意":{"docs":{},"料":{"docs":{},"之":{"docs":{},"外":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"分":{"docs":{},"支":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"开":{"docs":{},"始":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"了":{"docs":{},"。":{"docs":{},"在":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"入":{"docs":{},"口":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"解":{"docs":{},"析":{"docs":{},"为":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{},"对":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"0":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},"docs":{}}}}}}}}}},"种":{"docs":{},"(":{"docs":{},"即":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"中":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{},"第":{"docs":{},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"六":{"docs":{},"(":{"1":{"0":{"docs":{},".":{"1":{"9":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"环":{"docs":{},"境":{"docs":{},"准":{"docs":{},"备":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}},"三":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"9":{"docs":{},".":{"2":{"9":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{},"第":{"docs":{},"十":{"docs":{},"二":{"docs":{},"周":{"docs":{},"周":{"docs":{},"六":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"2":{"3":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"方":{"docs":{},"库":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"八":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"3":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"0":{"docs":{},".":{"2":{"0":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}},"十":{"docs":{},"五":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"2":{"2":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"2":{"9":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"1":{"7":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}},"四":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"1":{"5":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}},"四":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},"(":{"1":{"0":{"docs":{},".":{"6":{"docs":{},")":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},"(":{"docs":{},"期":{"docs":{},"末":{"docs":{},"检":{"docs":{},"查":{"docs":{},")":{"docs":{},":":{"docs":{},"第":{"docs":{},"十":{"docs":{},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"末":{"docs":{},"(":{"1":{"2":{"docs":{},".":{"2":{"9":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"二":{"docs":{},"种":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}},"次":{"docs":{},"进":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},"(":{"docs":{},"中":{"docs":{},"期":{"docs":{},"检":{"docs":{},"查":{"docs":{},")":{"docs":{},":":{"docs":{},"第":{"docs":{},"八":{"docs":{},"周":{"docs":{},"周":{"docs":{},"六":{"docs":{},"(":{"1":{"1":{"docs":{},".":{"2":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"编":{"docs":{},"写":{"docs":{},"与":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"简":{"docs":{},"要":{"docs":{},"叙":{"docs":{},"述":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"说":{"docs":{},",":{"docs":{},"狭":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"成":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"把":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"给":{"docs":{},"编":{"docs":{},"码":{"docs":{},"到":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"链":{"docs":{},"接":{"docs":{},"器":{"docs":{},"变":{"docs":{},"成":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"由":{"docs":{},"加":{"docs":{},"载":{"docs":{},"器":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"织":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"各":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"任":{"docs":{},"意":{"docs":{},"两":{"docs":{},"个":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},"实":{"docs":{},"验":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}},"分":{"docs":{},"为":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"包":{"docs":{},"含":{"docs":{},"所":{"docs":{},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},"程":{"docs":{},"序":{"docs":{},"来":{"docs":{},"了":{"docs":{},"解":{"docs":{},"如":{"docs":{},"何":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"到":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}},"到":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}},"器":{"docs":{},"前":{"docs":{},"端":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"个":{"docs":{},"子":{"docs":{},"任":{"docs":{},"务":{"docs":{},",":{"docs":{},"一":{"docs":{},"是":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"二":{"docs":{},"是":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"是":{"docs":{},"从":{"docs":{},"左":{"docs":{},"到":{"docs":{},"右":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"致":{"docs":{},"划":{"docs":{},"分":{"docs":{},"为":{"docs":{},"三":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"前":{"docs":{},"端":{"docs":{},"、":{"docs":{},"中":{"docs":{},"端":{"docs":{},"、":{"docs":{},"后":{"docs":{},"端":{"docs":{},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"前":{"docs":{},"端":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"读":{"docs":{},"入":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":5.002824858757062}}}},"的":{"docs":{},"构":{"docs":{},"造":{"docs":{},"中":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"很":{"docs":{},"多":{"docs":{},"设":{"docs":{},"计":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"接":{"docs":{},"受":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}},"标":{"docs":{},"志":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"没":{"docs":{},"有":{"docs":{},"额":{"docs":{},"外":{"docs":{},"添":{"docs":{},"加":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"包":{"docs":{},"含":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"如":{"docs":{},"整":{"docs":{},"型":{"docs":{},"、":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"型":{"docs":{},"、":{"docs":{},"布":{"docs":{},"尔":{"docs":{},"型":{"docs":{},"等":{"docs":{},")":{"docs":{},"和":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"如":{"docs":{},"指":{"docs":{},"针":{"docs":{},"、":{"docs":{},"数":{"docs":{},"组":{"docs":{},"、":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"器":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"些":{"docs":{},"类":{"docs":{},"型":{"docs":{},"系":{"docs":{},"统":{"docs":{},"对":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"、":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"进":{"docs":{},"行":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"功":{"docs":{},"能":{"docs":{},"是":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"即":{"docs":{},"将":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"是":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"后":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"原":{"docs":{},"理":{"docs":{},"经":{"docs":{},"典":{"docs":{},"书":{"docs":{},"籍":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"写":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"前":{"docs":{},"端":{"docs":{},"、":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"g":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"使":{"docs":{},"用":{"docs":{},"循":{"docs":{},"环":{"docs":{},"计":{"docs":{},"算":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"计":{"docs":{},"算":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}},"评":{"docs":{},"分":{"docs":{},"会":{"docs":{},"以":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"标":{"docs":{},"准":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}},"方":{"docs":{},"法":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"测":{"docs":{},"将":{"docs":{},"会":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"上":{"docs":{},"进":{"docs":{},"行":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}},"诚":{"docs":{},"信":{"docs":{},"守":{"docs":{},"则":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}},"语":{"docs":{},"言":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"与":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}},"将":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"变":{"docs":{},"得":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"都":{"docs":{},"会":{"docs":{},"增":{"docs":{},"加":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"支":{"docs":{},"持":{"docs":{},"相":{"docs":{},"关":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"结":{"docs":{},"构":{"docs":{},"或":{"docs":{},"程":{"docs":{},"序":{"docs":{},"(":{"docs":{},"如":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"方":{"docs":{},"法":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"法":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"是":{"docs":{},"采":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"完":{"docs":{},"整":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"把":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"边":{"docs":{},"界":{"docs":{},"情":{"docs":{},"况":{"docs":{},"很":{"docs":{},"多":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"通":{"docs":{},"过":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"正":{"docs":{},"例":{"docs":{},"与":{"docs":{},"负":{"docs":{},"例":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"回":{"docs":{},"过":{"docs":{},"头":{"docs":{},"看":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"从":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"为":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"等":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"又":{"docs":{},"引":{"docs":{},"入":{"docs":{},"控":{"docs":{},"制":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"实":{"docs":{},"现":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"逐":{"docs":{},"渐":{"docs":{},"变":{"docs":{},"得":{"docs":{},"功":{"docs":{},"能":{"docs":{},"齐":{"docs":{},"全":{"docs":{},"。":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"特":{"docs":{},"性":{"docs":{},"都":{"docs":{},"带":{"docs":{},"来":{"docs":{},"了":{"docs":{},"新":{"docs":{},"的":{"docs":{},"挑":{"docs":{},"战":{"docs":{},",":{"docs":{},"而":{"docs":{},"你":{"docs":{},"通":{"docs":{},"过":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"智":{"docs":{},"慧":{"docs":{},",":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"解":{"docs":{},"决":{"docs":{},"了":{"docs":{},"这":{"docs":{},"些":{"docs":{},"挑":{"docs":{},"战":{"docs":{},"。":{"docs":{},"顺":{"docs":{},"利":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"后":{"docs":{},",":{"docs":{},"相":{"docs":{},"信":{"docs":{},"你":{"docs":{},"对":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"也":{"docs":{},"有":{"docs":{},"了":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"特":{"docs":{},"的":{"docs":{},"理":{"docs":{},"解":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"流":{"docs":{},"行":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},",":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"都":{"docs":{},"是":{"docs":{},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"。":{"docs":{},"为":{"docs":{},"何":{"docs":{},"这":{"docs":{},"一":{"docs":{},"特":{"docs":{},"性":{"docs":{},"广":{"docs":{},"受":{"docs":{},"欢":{"docs":{},"迎":{"docs":{},"?":{"docs":{},"你":{"docs":{},"认":{"docs":{},"为":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"这":{"docs":{},"一":{"docs":{},"特":{"docs":{},"性":{"docs":{},"会":{"docs":{},"给":{"docs":{},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"带":{"docs":{},"来":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"的":{"docs":{},"好":{"docs":{},"处":{"docs":{},"?":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"数":{"docs":{},"学":{"docs":{},"运":{"docs":{},"算":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"比":{"docs":{},"较":{"docs":{},"运":{"docs":{},"算":{"docs":{},"了":{"docs":{},",":{"docs":{},"成":{"docs":{},"就":{"docs":{},"感":{"docs":{},"满":{"docs":{},"满":{"docs":{},"!":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"你":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},"还":{"docs":{},"只":{"docs":{},"能":{"docs":{},"支":{"docs":{},"持":{"docs":{},"常":{"docs":{},"量":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"这":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"了":{"docs":{},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"体":{"docs":{},"验":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"思":{"docs":{},"路":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"能":{"docs":{},"给":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"写":{"docs":{},"法":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}},",":{"docs":{},"注":{"docs":{},"意":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"只":{"docs":{},"比":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"高":{"docs":{},"。":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}},"中":{"docs":{},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"都":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"更":{"docs":{},"加":{"docs":{},"底":{"docs":{},"层":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"规":{"docs":{},"定":{"docs":{},"只":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"才":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"允":{"docs":{},"许":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"可":{"docs":{},"变":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"子":{"docs":{},"集":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"程":{"docs":{},"序":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"器":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"检":{"docs":{},"查":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"程":{"docs":{},"序":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{},"在":{"docs":{},"大":{"docs":{},"作":{"docs":{},"业":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"作":{"docs":{},"用":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"检":{"docs":{},"测":{"docs":{},"出":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"计":{"docs":{},"算":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"了":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{},"才":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"检":{"docs":{},"查":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},"、":{"docs":{},"检":{"docs":{},"查":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"和":{"docs":{},"形":{"docs":{},"参":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"树":{"docs":{},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"可":{"docs":{},"以":{"docs":{},"说":{"docs":{},"明":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"字":{"docs":{},"符":{"docs":{},"流":{"docs":{},"按":{"docs":{},"照":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"后":{"docs":{},"续":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},",":{"docs":{},"而":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"将":{"docs":{},"标":{"docs":{},"记":{"docs":{},"(":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"规":{"docs":{},"范":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"上":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}},"docs":{}}}}}},"我":{"docs":{},"们":{"docs":{},"继":{"docs":{},"续":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}},"改":{"docs":{},"动":{"docs":{},"不":{"docs":{},"大":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}},"的":{"docs":{},"改":{"docs":{},"动":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"改":{"docs":{},"动":{"docs":{},",":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}},"改":{"docs":{},"动":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},"改":{"docs":{},"为":{"docs":{},"了":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"要":{"docs":{},"求":{"docs":{},"从":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"定":{"docs":{},"义":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{},"声":{"docs":{},"明":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"识":{"docs":{},"别":{"docs":{},"语":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"关":{"docs":{},"键":{"docs":{},"字":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"语":{"docs":{},"法":{"docs":{},"名":{"docs":{},"称":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"和":{"docs":{},"包":{"docs":{},"含":{"docs":{},"这":{"docs":{},"个":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{},"名":{"docs":{},"完":{"docs":{},"全":{"docs":{},"相":{"docs":{},"同":{"docs":{},"(":{"docs":{},"甚":{"docs":{},"至":{"docs":{},"包":{"docs":{},"括":{"docs":{},"大":{"docs":{},"小":{"docs":{},"写":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"定":{"docs":{},"义":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"句":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"并":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"是":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},"到":{"docs":{},"作":{"docs":{},"为":{"docs":{},"叶":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"而":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}},"结":{"docs":{},"束":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"跳":{"docs":{},"过":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"便":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"没":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"是":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"步":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"?":{"docs":{},"报":{"docs":{},"的":{"docs":{},"是":{"docs":{},"什":{"docs":{},"么":{"docs":{},"错":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"为":{"docs":{},"之":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"再":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"将":{"docs":{},"支":{"docs":{},"持":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仅":{"docs":{},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"两":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"docs":{},"示":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"和":{"docs":{},"无":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"应":{"docs":{},"当":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"此":{"docs":{},"处":{"docs":{},",":{"docs":{},"执":{"docs":{},"行":{"docs":{},"循":{"docs":{},"环":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"至":{"docs":{},"该":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}},"终":{"docs":{},"止":{"docs":{},"该":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"控":{"docs":{},"制":{"docs":{},"权":{"docs":{},"交":{"docs":{},"还":{"docs":{},"给":{"docs":{},"调":{"docs":{},"用":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"接":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"上":{"docs":{},"才":{"docs":{},"是":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"能":{"docs":{},"见":{"docs":{},"到":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"进":{"docs":{},"入":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"。":{"docs":{},"继":{"docs":{},"续":{"docs":{},"向":{"docs":{},"下":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"值":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"带":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"块":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"和":{"docs":{},"可":{"docs":{},"选":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"是":{"docs":{},"否":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"docs":{},"内":{"docs":{},"。":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"不":{"docs":{},"给":{"docs":{},"任":{"docs":{},"何":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"值":{"docs":{},",":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"总":{"docs":{},"是":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"分":{"docs":{},"别":{"docs":{},"看":{"docs":{},"成":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"则":{"docs":{},"不":{"docs":{},"难":{"docs":{},"想":{"docs":{},"像":{"docs":{},",":{"docs":{},"前":{"docs":{},"面":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"有":{"docs":{},"效":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"之":{"docs":{},"处":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"给":{"docs":{},"对":{"docs":{},"应":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"值":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"任":{"docs":{},"何":{"docs":{},"非":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"其":{"docs":{},"后":{"docs":{},"继":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},";":{"docs":{},"对":{"docs":{},"于":{"docs":{},"以":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"其":{"docs":{},"后":{"docs":{},"继":{"docs":{},"含":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"条":{"docs":{},"件":{"docs":{},"为":{"docs":{},"真":{"docs":{},"和":{"docs":{},"假":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"想":{"docs":{},"像":{"docs":{},",":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"的":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"环":{"docs":{},"路":{"docs":{},"都":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"该":{"docs":{},"图":{"docs":{},"给":{"docs":{},"出":{"docs":{},"程":{"docs":{},"序":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"的":{"docs":{},"各":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"也":{"docs":{},"称":{"docs":{},"为":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"点":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"和":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"又":{"docs":{},"称":{"docs":{},"三":{"docs":{},"元":{"docs":{},"/":{"docs":{},"三":{"docs":{},"目":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"其":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"请":{"docs":{},"注":{"docs":{},"意":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"既":{"docs":{},"可":{"docs":{},"以":{"docs":{},"带":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"时":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"应":{"docs":{},"当":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"当":{"docs":{},"控":{"docs":{},"制":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}},"必":{"docs":{},"须":{"docs":{},"位":{"docs":{},"于":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"内":{"docs":{},"部":{"docs":{},"才":{"docs":{},"合":{"docs":{},"法":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"记":{"docs":{},"录":{"docs":{},"当":{"docs":{},"前":{"docs":{},"结":{"docs":{},"点":{"docs":{},"位":{"docs":{},"于":{"docs":{},"多":{"docs":{},"少":{"docs":{},"重":{"docs":{},"循":{"docs":{},"环":{"docs":{},"内":{"docs":{},"。":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"动":{"docs":{},"态":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"相":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"请":{"docs":{},"额":{"docs":{},"外":{"docs":{},"注":{"docs":{},"意":{"docs":{},"以":{"docs":{},"下":{"docs":{},"两":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"何":{"docs":{},"处":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"这":{"docs":{},"儿":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"变":{"docs":{},"量":{"docs":{},"处":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"独":{"docs":{},"自":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"。":{"docs":{},"这":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"内":{"docs":{},"部":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"把":{"docs":{},"示":{"docs":{},"例":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},":":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"最":{"docs":{},"小":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}},"要":{"docs":{},"么":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"里":{"docs":{},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"其":{"docs":{},"就":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"不":{"docs":{},"要":{"docs":{},"将":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"托":{"docs":{},"管":{"docs":{},"至":{"docs":{},"任":{"docs":{},"何":{"docs":{},"公":{"docs":{},"开":{"docs":{},"的":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"上":{"docs":{},"(":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},",":{"docs":{},"诚":{"docs":{},"信":{"docs":{},"守":{"docs":{},"则":{"docs":{},"是":{"docs":{},"参":{"docs":{},"加":{"docs":{},"本":{"docs":{},"课":{"docs":{},"程":{"docs":{},"的":{"docs":{},"学":{"docs":{},"生":{"docs":{},"应":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"的":{"docs":{},"道":{"docs":{},"德":{"docs":{},"行":{"docs":{},"为":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"生":{"docs":{},"成":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"、":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"、":{"docs":{},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"按":{"docs":{},"照":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"严":{"docs":{},"格":{"docs":{},"杜":{"docs":{},"绝":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"代":{"docs":{},"码":{"docs":{},"查":{"docs":{},"重":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"发":{"docs":{},"现":{"docs":{},"有":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"者":{"docs":{},"与":{"docs":{},"主":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"信":{"docs":{},"息":{"docs":{},"的":{"docs":{},"被":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"者":{"docs":{},"将":{"docs":{},"被":{"docs":{},"记":{"docs":{},"为":{"0":{"docs":{},"分":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"它":{"docs":{},"合":{"docs":{},"并":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"计":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"将":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"以":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},"你":{"docs":{},"的":{"docs":{},"作":{"docs":{},"业":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"分":{"docs":{},"支":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}},"整":{"docs":{},"个":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"问":{"docs":{},"是":{"docs":{},"后":{"docs":{},"端":{"docs":{},"实":{"docs":{},"现":{"docs":{},"上":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"还":{"docs":{},"是":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"本":{"docs":{},"来":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"我":{"docs":{},"们":{"docs":{},"自":{"docs":{},"己":{"docs":{},"修":{"docs":{},"改":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"载":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}},"务":{"docs":{},"必":{"docs":{},"注":{"docs":{},"意":{"docs":{},"上":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}},"画":{"docs":{},"出":{"docs":{},"下":{"docs":{},"面":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"课":{"docs":{},"程":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"为":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"它":{"docs":{},"以":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"为":{"docs":{},"单":{"docs":{},"位":{"docs":{},",":{"docs":{},"在":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"结":{"docs":{},"束":{"docs":{},"处":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"会":{"docs":{},"全":{"docs":{},"部":{"docs":{},"被":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"。":{"docs":{},"你":{"docs":{},"会":{"docs":{},"发":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"算":{"docs":{},"法":{"docs":{},"显":{"docs":{},"得":{"docs":{},"比":{"docs":{},"较":{"docs":{},"愚":{"docs":{},"蠢":{"docs":{},",":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"大":{"docs":{},"量":{"docs":{},"实":{"docs":{},"际":{"docs":{},"无":{"docs":{},"用":{"docs":{},"的":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"和":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"“":{"docs":{},"全":{"docs":{},"局":{"docs":{},"”":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"它":{"docs":{},"应":{"docs":{},"当":{"docs":{},"能":{"docs":{},"够":{"docs":{},"跨":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"“":{"docs":{},"全":{"docs":{},"局":{"docs":{},"”":{"docs":{},"通":{"docs":{},"常":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"粒":{"docs":{},"度":{"docs":{},")":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"重":{"docs":{},"提":{"docs":{},"一":{"docs":{},"下":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}},")":{"docs":{},"测":{"docs":{},"试":{"docs":{},"是":{"docs":{},"否":{"docs":{},"能":{"docs":{},"正":{"docs":{},"常":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.003436426116838488},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338},"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"于":{"docs":{},"一":{"docs":{},"些":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"数":{"docs":{},"字":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"时":{"docs":{},",":{"docs":{},"应":{"docs":{},"当":{"docs":{},"为":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"个":{"docs":{},"成":{"docs":{},"员":{"docs":{},",":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"程":{"docs":{},"的":{"docs":{},"直":{"docs":{},"观":{"docs":{},"意":{"docs":{},"义":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}},"问":{"docs":{},"题":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"思":{"docs":{},"路":{"docs":{},"相":{"docs":{},"比":{"docs":{},"代":{"docs":{},"码":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"好":{"docs":{},"处":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"“":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"求":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"相":{"docs":{},"反":{"docs":{},"数":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"其":{"docs":{},"分":{"docs":{},"开":{"docs":{},"处":{"docs":{},"理":{"docs":{},"则":{"docs":{},"会":{"docs":{},"增":{"docs":{},"加":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"中":{"docs":{},"加":{"docs":{},"入":{"docs":{},"对":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"要":{"docs":{},"求":{"docs":{},"数":{"docs":{},"组":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"(":{"docs":{},"即":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"堆":{"docs":{},"上":{"docs":{},"的":{"docs":{},"动":{"docs":{},"态":{"docs":{},"内":{"docs":{},"存":{"docs":{},"申":{"docs":{},"请":{"docs":{},",":{"docs":{},"如":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"等":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"它":{"docs":{},")":{"docs":{},",":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"现":{"docs":{},"有":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"做":{"docs":{},"出":{"docs":{},"那":{"docs":{},"些":{"docs":{},"改":{"docs":{},"动":{"docs":{},"?":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"但":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"模":{"docs":{},"式":{"docs":{},"在":{"docs":{},"数":{"docs":{},"组":{"docs":{},"访":{"docs":{},"问":{"docs":{},"中":{"docs":{},"较":{"docs":{},"为":{"docs":{},"常":{"docs":{},"见":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"8":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"中":{"docs":{},"的":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"。":{"docs":{},"在":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"还":{"docs":{},"要":{"docs":{},"维":{"docs":{},"护":{"docs":{},"好":{"docs":{},"循":{"docs":{},"环":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"标":{"docs":{},"签":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"分":{"docs":{},"支":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"文":{"docs":{},"法":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"要":{"docs":{},"看":{"docs":{},"懂":{"docs":{},"文":{"docs":{},"法":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"注":{"docs":{},"意":{"docs":{},"看":{"docs":{},"这":{"docs":{},"条":{"docs":{},"生":{"docs":{},"成":{"docs":{},"规":{"docs":{},"则":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"中":{"docs":{},"端":{"docs":{},"的":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"了":{"docs":{},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},",":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"输":{"docs":{},"出":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"小":{"docs":{},"写":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"取":{"docs":{},"了":{"1":{"1":{"docs":{},"位":{"docs":{},"以":{"docs":{},"后":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"输":{"docs":{},"出":{"docs":{},"为":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"参":{"docs":{},"考":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"_":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"_":{"docs":{},"_":{"docs":{},"函":{"docs":{},"数":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"后":{"docs":{},"续":{"docs":{},"希":{"docs":{},"望":{"docs":{},"添":{"docs":{},"加":{"docs":{},"其":{"docs":{},"他":{"docs":{},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"时":{"docs":{},",":{"docs":{},"你":{"docs":{},"应":{"docs":{},"该":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},"中":{"docs":{},"增":{"docs":{},"加":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"同":{"docs":{},"名":{"docs":{},"的":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"中":{"docs":{},"的":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"类":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"中":{"docs":{},"的":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"类":{"docs":{},"和":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"中":{"docs":{},"的":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"类":{"docs":{},"。":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"获":{"docs":{},"取":{"docs":{},"到":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"和":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},";":{"docs":{},"同":{"docs":{},"时":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"准":{"docs":{},"确":{"docs":{},"无":{"docs":{},"误":{"docs":{},"地":{"docs":{},"返":{"docs":{},"回":{"docs":{},"到":{"docs":{},"调":{"docs":{},"用":{"docs":{},"处":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"一":{"docs":{},"种":{"docs":{},"经":{"docs":{},"典":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"只":{"docs":{},"提":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"思":{"docs":{},"路":{"docs":{},":":{"docs":{},"看":{"docs":{},"上":{"docs":{},"面":{"docs":{},"我":{"docs":{},"们":{"docs":{},"分":{"docs":{},"析":{"docs":{},"时":{"docs":{},"列":{"docs":{},"出":{"docs":{},"的":{"docs":{},"表":{"docs":{},"格":{"docs":{},",":{"docs":{},"先":{"docs":{},"列":{"docs":{},"举":{"docs":{},"出":{"docs":{},"每":{"docs":{},"一":{"docs":{},"步":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"两":{"docs":{},"两":{"docs":{},"连":{"docs":{},"边":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},"一":{"docs":{},"种":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}},"举":{"docs":{},"几":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"最":{"docs":{},"少":{"docs":{},"数":{"docs":{},"量":{"docs":{},"的":{"docs":{},"额":{"docs":{},"外":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"正":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"所":{"docs":{},"期":{"docs":{},"望":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"交":{"docs":{},"换":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"前":{"docs":{},"两":{"docs":{},"条":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},"提":{"docs":{},"示":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"合":{"docs":{},"并":{"docs":{},"x":{"docs":{},"和":{"docs":{},"a":{"0":{"docs":{},"、":{"docs":{},"y":{"docs":{},"和":{"docs":{},"a":{"1":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"可":{"docs":{},"行":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"前":{"docs":{},"两":{"docs":{},"条":{"docs":{},"无":{"docs":{},"用":{"docs":{},"m":{"docs":{},"v":{"docs":{},"被":{"docs":{},"消":{"docs":{},"去":{"docs":{},"。":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"注":{"docs":{},"意":{"docs":{},"到":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"与":{"docs":{},"a":{"1":{"docs":{},"相":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"(":{"docs":{},"指":{"docs":{},"令":{"4":{"docs":{},"的":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"集":{"docs":{},"合":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"3":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"包":{"docs":{},"含":{"docs":{},"a":{"1":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"在":{"docs":{},"指":{"docs":{},"令":{"3":{"docs":{},"的":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"a":{"1":{"docs":{},";":{"docs":{},"同":{"docs":{},"时":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"也":{"docs":{},"与":{"docs":{},"a":{"0":{"docs":{},"相":{"docs":{},"干":{"docs":{},"涉":{"docs":{},"(":{"docs":{},"指":{"docs":{},"令":{"6":{"docs":{},"的":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"指":{"docs":{},"令":{"5":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"包":{"docs":{},"含":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{},"a":{"0":{"docs":{},"在":{"docs":{},"指":{"docs":{},"令":{"5":{"docs":{},"的":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},")":{"docs":{},",":{"docs":{},"最":{"docs":{},"终":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"t":{"0":{"docs":{},"。":{"docs":{},"而":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"可":{"docs":{},"以":{"docs":{},"安":{"docs":{},"全":{"docs":{},"地":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"a":{"1":{"docs":{},",":{"docs":{},"故":{"docs":{},"指":{"docs":{},"令":{"4":{"docs":{},"被":{"docs":{},"视":{"docs":{},"作":{"docs":{},"无":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"消":{"docs":{},"除":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"举":{"docs":{},"几":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}},"一":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"函":{"docs":{},"数":{"docs":{},"里":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"则":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"应":{"docs":{},"语":{"docs":{},"法":{"docs":{},"制":{"docs":{},"导":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"计":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"就":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"我":{"docs":{},"们":{"docs":{},"终":{"docs":{},"于":{"docs":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}}}}}}}}}}}}}},"节":{"docs":{},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"也":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}},"句":{"docs":{},"比":{"docs":{},"较":{"docs":{},"直":{"docs":{},"接":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"能":{"docs":{},"较":{"docs":{},"为":{"docs":{},"容":{"docs":{},"易":{"docs":{},"的":{"docs":{},"想":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"计":{"docs":{},"算":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"下":{"docs":{},"标":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"产":{"docs":{},"生":{"docs":{},"式":{"docs":{},"中":{"docs":{},"的":{"docs":{},"相":{"docs":{},"应":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"句":{"docs":{},"后":{"docs":{},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"其":{"docs":{},"定":{"docs":{},"义":{"docs":{},")":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"先":{"docs":{},"把":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"奇":{"docs":{},"怪":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"索":{"docs":{},"引":{"docs":{},"运":{"docs":{},"算":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"仔":{"docs":{},"细":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"一":{"docs":{},"下":{"docs":{},"如":{"docs":{},"何":{"docs":{},"处":{"docs":{},"理":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"时":{"docs":{},"对":{"docs":{},"值":{"docs":{},"类":{"docs":{},"别":{"docs":{},"的":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"清":{"docs":{},"零":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"通":{"docs":{},"常":{"docs":{},"自":{"docs":{},"带":{"docs":{},"一":{"docs":{},"个":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"这":{"docs":{},"里":{"docs":{},"采":{"docs":{},"用":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{},"命":{"docs":{},"名":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{},"中":{"docs":{},"把":{"docs":{},"仅":{"docs":{},"因":{"docs":{},"复":{"docs":{},"制":{"docs":{},"(":{"docs":{},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{},"指":{"docs":{},"令":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"一":{"docs":{},"对":{"docs":{},"点":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"连":{"docs":{},"边":{"docs":{},"标":{"docs":{},"记":{"docs":{},"成":{"docs":{},"虚":{"docs":{},"线":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"如":{"docs":{},"果":{"docs":{},"它":{"docs":{},"们":{"docs":{},"最":{"docs":{},"终":{"docs":{},"染":{"docs":{},"同":{"docs":{},"一":{"docs":{},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"删":{"docs":{},"去":{"docs":{},"这":{"docs":{},"条":{"docs":{},"边":{"docs":{},"然":{"docs":{},"后":{"docs":{},"合":{"docs":{},"并":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"。":{"docs":{},"这":{"docs":{},"有":{"docs":{},"助":{"docs":{},"于":{"docs":{},"把":{"docs":{},"上":{"docs":{},"述":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"从":{"docs":{},"步":{"docs":{},"骤":{"2":{"docs":{},"删":{"docs":{},"去":{"docs":{},"的":{"docs":{},"点":{"docs":{},"挪":{"docs":{},"到":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"删":{"docs":{},"去":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},"是":{"docs":{},"否":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"原":{"docs":{},"本":{"docs":{},"就":{"docs":{},"在":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"主":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{},"如":{"docs":{},"何":{"docs":{},"在":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"再":{"docs":{},"提":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"最":{"docs":{},"少":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"多":{"docs":{},"少":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"完":{"docs":{},"成":{"docs":{},"上":{"docs":{},"面":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"候":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"篇":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"论":{"docs":{},"文":{"docs":{},"的":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}},"里":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"为":{"docs":{},"准":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"也":{"docs":{},"是":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}}}}},"面":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"它":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"对":{"docs":{},"其":{"docs":{},"进":{"docs":{},"行":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"现":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"型":{"docs":{},"不":{"docs":{},"只":{"docs":{},"是":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}},"额":{"docs":{},"外":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{},"传":{"docs":{},"参":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"即":{"docs":{},":":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"重":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{},"”":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"一":{"docs":{},"步":{"docs":{},"步":{"docs":{},"实":{"docs":{},"现":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"到":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"包":{"docs":{},"括":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"内":{"docs":{},"部":{"docs":{},"声":{"docs":{},"明":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"(":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},"外":{"docs":{},"部":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"不":{"docs":{},"相":{"docs":{},"交":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"重":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"一":{"docs":{},"下":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"复":{"docs":{},"上":{"docs":{},"述":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"不":{"docs":{},"再":{"docs":{},"增":{"docs":{},"加":{"docs":{},"为":{"docs":{},"止":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}},"一":{"docs":{},"步":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"不":{"docs":{},"再":{"docs":{},"变":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},",":{"docs":{},"其":{"docs":{},"次":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"以":{"docs":{},"一":{"docs":{},"个":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"解":{"docs":{},"压":{"docs":{},"文":{"docs":{},"件":{"docs":{},"夹":{"docs":{},"所":{"docs":{},"在":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"修":{"docs":{},"改":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{},"文":{"docs":{},"件":{"docs":{},"后":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"后":{"docs":{},"端":{"docs":{},"中":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"了":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"中":{"docs":{},"和":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"最":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"还":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},",":{"docs":{},"带":{"docs":{},"有":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"两":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"合":{"docs":{},"并":{"docs":{},"为":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"但":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"可":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"性":{"docs":{},"更":{"docs":{},"好":{"docs":{},"些":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"重":{"docs":{},"构":{"docs":{},"进":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}},"申":{"docs":{},"请":{"docs":{},"更":{"docs":{},"大":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}},",":{"docs":{},"将":{"docs":{},"作":{"docs":{},"业":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"那":{"docs":{},"个":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.003436426116838488}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"“":{"docs":{},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"”":{"docs":{},"以":{"docs":{},"及":{"docs":{},"“":{"docs":{},"启":{"docs":{},"用":{"docs":{},"子":{"docs":{},"系":{"docs":{},"统":{"docs":{},"功":{"docs":{},"能":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"并":{"docs":{},"处":{"docs":{},"理":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"每":{"docs":{},"一":{"docs":{},"种":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"专":{"docs":{},"门":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"种":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"和":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"又":{"docs":{},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"同":{"docs":{},"理":{"docs":{},",":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"没":{"docs":{},"读":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"章":{"docs":{},"节":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"快":{"docs":{},"速":{"docs":{},"看":{"docs":{},"看":{"docs":{},"这":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}},"并":{"docs":{},"且":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"加":{"docs":{},"载":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"现":{"docs":{},"在":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"指":{"docs":{},"令":{"docs":{},"就":{"docs":{},"是":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"数":{"docs":{},"组":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"起":{"docs":{},"来":{"docs":{},")":{"docs":{},"。":{"docs":{},"至":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"出":{"docs":{},"了":{"docs":{},"第":{"docs":{},"一":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"将":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"看":{"docs":{},"她":{"docs":{},"们":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"换":{"docs":{},"成":{"docs":{},"新":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"使":{"docs":{},"得":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"不":{"docs":{},"额":{"docs":{},"外":{"docs":{},"扣":{"docs":{},"分":{"docs":{},"。":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"继":{"docs":{},"续":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"不":{"docs":{},"做":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"至":{"docs":{},"少":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"书":{"docs":{},"面":{"docs":{},"作":{"docs":{},"业":{"docs":{},"和":{"docs":{},"日":{"docs":{},"常":{"docs":{},"成":{"docs":{},"绩":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}}}}}}}}},"期":{"docs":{},"末":{"docs":{},"成":{"docs":{},"绩":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}}}}}},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"k":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0423728813559322}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"你":{"docs":{},"编":{"docs":{},"写":{"docs":{},"任":{"docs":{},"何":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}},"出":{"docs":{},"意":{"docs":{},"外":{"docs":{},"你":{"docs":{},"会":{"docs":{},"获":{"docs":{},"得":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}},"建":{"docs":{},"议":{"docs":{},"阅":{"docs":{},"读":{"docs":{},",":{"docs":{},"太":{"docs":{},"过":{"docs":{},"冗":{"docs":{},"长":{"docs":{},",":{"docs":{},"这":{"docs":{},"对":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"知":{"docs":{},"识":{"docs":{},"提":{"docs":{},"升":{"docs":{},"非":{"docs":{},"常":{"docs":{},"有":{"docs":{},"限":{"docs":{},"。":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"样":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"支":{"docs":{},"持":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"负":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"整":{"docs":{},"数":{"docs":{},"不":{"docs":{},"在":{"docs":{},"此":{"docs":{},"范":{"docs":{},"围":{"docs":{},"内":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{},"引":{"docs":{},"入":{"docs":{},"负":{"docs":{},"号":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"看":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}},"同":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"主":{"docs":{},"要":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}},"知":{"docs":{},"道":{"docs":{},"这":{"docs":{},"点":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}},"为":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"常":{"docs":{},"量":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}},"论":{"docs":{},"选":{"docs":{},"择":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"去":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"都":{"docs":{},"必":{"docs":{},"须":{"docs":{},"首":{"docs":{},"先":{"docs":{},"计":{"docs":{},"算":{"docs":{},"完":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"才":{"docs":{},"能":{"docs":{},"开":{"docs":{},"始":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"或":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"计":{"docs":{},"算":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"外":{"docs":{},"。":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}}}}}}},"算":{"docs":{},"做":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"至":{"docs":{},"少":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},"一":{"docs":{},"次":{"docs":{},")":{"docs":{},",":{"docs":{},"请":{"docs":{},"评":{"docs":{},"价":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"种":{"docs":{},"更":{"docs":{},"好":{"docs":{},"?":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}},"允":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}},"可":{"docs":{},"以":{"docs":{},"。":{"docs":{},"如":{"docs":{},"下":{"docs":{},"图":{"docs":{},"所":{"docs":{},"示":{"docs":{},",":{"docs":{},"j":{"docs":{},",":{"docs":{},"b":{"docs":{},"因":{"docs":{},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"j":{"docs":{},",":{"docs":{},"f":{"docs":{},"因":{"docs":{},"其":{"docs":{},"他":{"docs":{},"指":{"docs":{},"令":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"但":{"docs":{},"b":{"docs":{},",":{"docs":{},"f":{"docs":{},"之":{"docs":{},"间":{"docs":{},"没":{"docs":{},"有":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"涂":{"docs":{},"色":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"把":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"再":{"docs":{},"要":{"docs":{},"求":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"以":{"docs":{},"后":{"docs":{},"再":{"docs":{},"进":{"docs":{},"行":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},"设":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}},"在":{"docs":{},"经":{"docs":{},"过":{"docs":{},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"成":{"docs":{},"功":{"docs":{},"将":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"某":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"下":{"docs":{},"图":{"docs":{},"给":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"如":{"docs":{},"图":{"docs":{},"所":{"docs":{},"示":{"docs":{},",":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"由":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"、":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"及":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"三":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"组":{"docs":{},"成":{"docs":{},",":{"docs":{},"f":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"若":{"docs":{},"干":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"次":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"如":{"docs":{},"你":{"docs":{},"的":{"docs":{},"账":{"docs":{},"号":{"docs":{},"为":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}},"定":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"远":{"docs":{},"端":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"意":{"docs":{},"地":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"汇":{"docs":{},"编":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"的":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"一":{"docs":{},"分":{"docs":{},"为":{"docs":{},"二":{"docs":{},",":{"docs":{},"缩":{"docs":{},"小":{"docs":{},"调":{"docs":{},"试":{"docs":{},"范":{"docs":{},"围":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"有":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"了":{"docs":{},"此":{"docs":{},"处":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"发":{"docs":{},"现":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"中":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"了":{"docs":{},"m":{"docs":{},"v":{"docs":{},"的":{"docs":{},"成":{"docs":{},"员":{"docs":{},"函":{"docs":{},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"为":{"docs":{},"止":{"docs":{},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"上":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"底":{"docs":{},"和":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"目":{"docs":{},"前":{"docs":{},"为":{"docs":{},"止":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"更":{"docs":{},"接":{"docs":{},"近":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"还":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"是":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},"的":{"docs":{},",":{"docs":{},"问":{"docs":{},"题":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"载":{"docs":{},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{},"有":{"docs":{},"了":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"也":{"docs":{},"变":{"docs":{},"得":{"docs":{},"更":{"docs":{},"加":{"docs":{},"强":{"docs":{},"大":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"试":{"docs":{},"着":{"docs":{},"用":{"docs":{},"它":{"docs":{},"写":{"docs":{},"一":{"docs":{},"些":{"docs":{},"更":{"docs":{},"有":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"搜":{"docs":{},"索":{"docs":{},"路":{"docs":{},"径":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"反":{"docs":{},"复":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},"天":{"docs":{},"内":{"docs":{},"这":{"docs":{},"个":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},"必":{"docs":{},"做":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},":":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"测":{"docs":{},"试":{"docs":{},"你":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{},"配":{"docs":{},"置":{"docs":{},"好":{"docs":{},"了":{"docs":{},"环":{"docs":{},"境":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}},"须":{"docs":{},"是":{"8":{"docs":{},"的":{"docs":{},"整":{"docs":{},"数":{"docs":{},"倍":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}},"docs":{}}}},"截":{"docs":{},"止":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.11392405063291139}},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"所":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},"有":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}},"截":{"docs":{},"止":{"docs":{},"时":{"docs":{},"间":{"docs":{},"均":{"docs":{},"为":{"docs":{},"所":{"docs":{},"标":{"docs":{},"日":{"docs":{},"期":{"docs":{},"的":{"2":{"3":{"docs":{},":":{"5":{"9":{"docs":{},":":{"5":{"9":{"docs":{},"(":{"docs":{},"u":{"docs":{},"t":{"docs":{},"c":{"docs":{},"+":{"8":{"docs":{},")":{"docs":{},",":{"docs":{},"即":{"docs":{},"第":{"docs":{},"二":{"docs":{},"天":{"0":{"docs":{},"点":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"如":{"docs":{},"有":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"情":{"docs":{},"况":{"docs":{},"将":{"docs":{},"会":{"docs":{},"在":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"通":{"docs":{},"知":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"点":{"docs":{},"取":{"docs":{},"算":{"docs":{},"数":{"docs":{},"平":{"docs":{},"均":{"docs":{},"值":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"结":{"docs":{},"果":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}},"谓":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"假":{"docs":{},"设":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"数":{"docs":{},"量":{"docs":{},"是":{"docs":{},"无":{"docs":{},"限":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"导":{"docs":{},"致":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},"无":{"docs":{},"法":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"对":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"做":{"docs":{},"一":{"docs":{},"一":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"调":{"docs":{},"度":{"docs":{},"与":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"来":{"docs":{},"合":{"docs":{},"理":{"docs":{},"使":{"docs":{},"用":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"一":{"docs":{},"种":{"docs":{},"暴":{"docs":{},"力":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"细":{"docs":{},"节":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},"满":{"docs":{},"足":{"docs":{},"什":{"docs":{},"么":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"划":{"docs":{},"分":{"docs":{},"、":{"docs":{},"流":{"docs":{},"图":{"docs":{},"构":{"docs":{},"造":{"docs":{},"、":{"docs":{},"以":{"docs":{},"及":{"docs":{},"分":{"docs":{},"析":{"docs":{},"循":{"docs":{},"环":{"docs":{},"或":{"docs":{},"其":{"docs":{},"他":{"docs":{},"控":{"docs":{},"制":{"docs":{},"区":{"docs":{},"域":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{},"而":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"各":{"docs":{},"种":{"docs":{},"数":{"docs":{},"据":{"docs":{},"对":{"docs":{},"象":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},"中":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"以":{"docs":{},"后":{"docs":{},"是":{"docs":{},"否":{"docs":{},"还":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"等":{"docs":{},"。":{"docs":{},"依":{"docs":{},"据":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"等":{"docs":{},"相":{"docs":{},"关":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"需":{"docs":{},"的":{"docs":{},"底":{"docs":{},"层":{"docs":{},"类":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"无":{"docs":{},"法":{"docs":{},"用":{"docs":{},"字":{"docs":{},"面":{"docs":{},"量":{"docs":{},"表":{"docs":{},"示":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"变":{"docs":{},"长":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}}},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"分":{"docs":{},"配":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"和":{"docs":{},"保":{"docs":{},"存":{"docs":{},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"那":{"docs":{},"段":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"称":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"回":{"docs":{},"收":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"从":{"docs":{},"当":{"docs":{},"前":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"过":{"docs":{},"程":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"则":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"7":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}}}}},"流":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"图":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"有":{"docs":{},"向":{"docs":{},"图":{"docs":{},":":{"docs":{},"它":{"docs":{},"以":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"作":{"docs":{},"为":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"时":{"docs":{},"间":{"docs":{},"是":{"docs":{},"该":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}},"示":{"docs":{},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}},"发":{"docs":{},"生":{"docs":{},"越":{"docs":{},"界":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"计":{"docs":{},"算":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"再":{"docs":{},"像":{"docs":{},"现":{"docs":{},"在":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},"统":{"docs":{},"一":{"docs":{},"给":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"在":{"docs":{},"离":{"docs":{},"开":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},"统":{"docs":{},"一":{"docs":{},"释":{"docs":{},"放":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"供":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"下":{"docs":{},"面":{"docs":{},"两":{"docs":{},"种":{"docs":{},"安":{"docs":{},"装":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"的":{"docs":{},"任":{"docs":{},"意":{"docs":{},"一":{"docs":{},"种":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"与":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"声":{"docs":{},"明":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}},"足":{"docs":{},"够":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"来":{"docs":{},"构":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"理":{"docs":{},"解":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"特":{"docs":{},"定":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{},"这":{"docs":{},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"文":{"docs":{},"法":{"docs":{},"定":{"docs":{},"义":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"设":{"docs":{},"计":{"docs":{},"和":{"docs":{},"语":{"docs":{},"言":{"docs":{},"工":{"docs":{},"具":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"并":{"docs":{},"以":{"docs":{},"此":{"docs":{},"代":{"docs":{},"替":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},"。":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"大":{"docs":{},"家":{"docs":{},"完":{"docs":{},"整":{"docs":{},"读":{"docs":{},"一":{"docs":{},"遍":{"docs":{},"论":{"docs":{},"文":{"docs":{},",":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"论":{"docs":{},"文":{"docs":{},"作":{"docs":{},"者":{"docs":{},"的":{"docs":{},"讲":{"docs":{},"解":{"docs":{},"课":{"docs":{},"件":{"docs":{},",":{"docs":{},"(":{"docs":{},"如":{"docs":{},"果":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"链":{"docs":{},"接":{"docs":{},"失":{"docs":{},"效":{"docs":{},"了":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"打":{"docs":{},"开":{"docs":{},"这":{"docs":{},"个":{"docs":{},"链":{"docs":{},"接":{"docs":{},")":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"理":{"docs":{},"解":{"docs":{},"。":{"docs":{},"论":{"docs":{},"文":{"docs":{},"文":{"docs":{},"末":{"docs":{},"的":{"docs":{},"附":{"docs":{},"录":{"docs":{},"有":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"它":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"完":{"docs":{},"成":{"docs":{},"本":{"docs":{},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"日":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"讲":{"docs":{},"是":{"docs":{},"创":{"docs":{},"建":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"等":{"docs":{},"于":{"docs":{},"你":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}},"熟":{"docs":{},"悉":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"基":{"docs":{},"础":{"docs":{},"知":{"docs":{},"识":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}},"选":{"docs":{},"做":{"docs":{},"实":{"docs":{},"验":{"docs":{},"不":{"docs":{},"接":{"docs":{},"受":{"docs":{},"补":{"docs":{},"交":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}},"二":{"docs":{},"是":{"docs":{},"给":{"docs":{},"希":{"docs":{},"望":{"docs":{},"继":{"docs":{},"续":{"docs":{},"深":{"docs":{},"入":{"docs":{},"了":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"知":{"docs":{},"识":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},"具":{"docs":{},"有":{"docs":{},"较":{"docs":{},"大":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"请":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"依":{"docs":{},"据":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"安":{"docs":{},"排":{"docs":{},"情":{"docs":{},"况":{"docs":{},"决":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"选":{"docs":{},"做":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"并":{"docs":{},"非":{"docs":{},"为":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"改":{"docs":{},"动":{"docs":{},"部":{"docs":{},"分":{"docs":{},"可":{"docs":{},"能":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"你":{"docs":{},"对":{"docs":{},"框":{"docs":{},"架":{"docs":{},"有":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"了":{"docs":{},"解":{"docs":{},"再":{"docs":{},"开":{"docs":{},"始":{"docs":{},"实":{"docs":{},"验":{"docs":{},"。":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"以":{"docs":{},"报":{"docs":{},"告":{"docs":{},"评":{"docs":{},"分":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step13/readme.html":{"ref":"docs/step13/readme.html","tf":0.5}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"docs/step13/readme.html":{"ref":"docs/step13/readme.html","tf":0.5}}}}}}},"部":{"docs":{},"分":{"docs":{},"难":{"docs":{},"度":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"且":{"docs":{},"时":{"docs":{},"间":{"docs":{},"较":{"docs":{},"紧":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"前":{"docs":{},"一":{"docs":{},"些":{"docs":{},"开":{"docs":{},"始":{"docs":{},"才":{"docs":{},"能":{"docs":{},"保":{"docs":{},"证":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"二":{"docs":{},"说":{"docs":{},"明":{"docs":{"docs/step13/readme.html":{"ref":"docs/step13/readme.html","tf":10}}}}}},"项":{"docs":{},")":{"docs":{},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"一":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"二":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"分":{"docs":{},"别":{"docs":{},"用":{"docs":{},"于":{"docs":{},"禁":{"docs":{},"止":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"(":{"docs":{},"占":{"docs":{},"比":{"docs":{},":":{"0":{"docs":{},"%":{"docs":{},")":{"docs":{"docs/misc/schedule.html":{"ref":"docs/misc/schedule.html","tf":0.012658227848101266}}}}},"docs":{}}}},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},"设":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"不":{"docs":{},"用":{"docs":{},"系":{"docs":{},"统":{"docs":{},"自":{"docs":{},"带":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},")":{"docs":{},"、":{"docs":{},">":{"docs":{},"(":{"docs":{},"大":{"docs":{},"于":{"docs":{},")":{"docs":{},"、":{"docs":{},"(":{"docs":{},"小":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"和":{"docs":{},">":{"docs":{},"=":{"docs":{},"(":{"docs":{},"大":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"满":{"docs":{},"足":{"docs":{},"它":{"docs":{},"们":{"docs":{},"所":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"当":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"给":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"值":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"加":{"docs":{},"法":{"docs":{},"语":{"docs":{},"句":{"docs":{},"给":{"docs":{},"目":{"docs":{},"标":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"值":{"docs":{},"等":{"docs":{},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"保":{"docs":{},"存":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"称":{"docs":{},"作":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"数":{"docs":{},"目":{"docs":{},"不":{"docs":{},"受":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"不":{"docs":{},"够":{"docs":{},"用":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"t":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01694915254237288},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.023728813559322035},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.035326086956521736},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.017857142857142856},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.02956989247311828},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.06097560975609756},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.06818181818181818},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.024456521739130436},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"_":{"docs":{},"t":{"2":{"docs":{},",":{"docs":{},"_":{"docs":{},"t":{"3":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"docs":{}}}}},"docs":{}}}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"测":{"docs":{},"例":{"docs":{},"中":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},")":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"每":{"docs":{},"个":{"docs":{},"源":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"本":{"docs":{},"例":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"检":{"docs":{},"查":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"已":{"docs":{},"经":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"是":{"docs":{},",":{"docs":{},"则":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"把":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},";":{"docs":{},"对":{"docs":{},"于":{"docs":{},"目":{"docs":{},"标":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"本":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"[":{"docs":{},"i":{"3":{"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}}},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"的":{"docs":{},"值":{"docs":{},"是":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"将":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"的":{"docs":{},"值":{"docs":{},"分":{"docs":{},"别":{"docs":{},"存":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}},"docs":{}}}},"、":{"docs":{},"_":{"docs":{},"t":{"3":{"docs":{},"、":{"docs":{},"_":{"docs":{},"t":{"4":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}},"docs":{}}}}},"docs":{}}}}},"1":{"0":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"1":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}},"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.03614457831325301},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011299435028248588},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.011933174224343675},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.018475750577367205},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.020134228187919462},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.021739130434782608},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.021505376344086023},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.06097560975609756},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"下":{"docs":{},"面":{"docs":{},"是":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"输":{"docs":{},"出":{"docs":{},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"满":{"docs":{},"足":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},"翻":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"发":{"docs":{},"生":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"[":{"docs":{},"i":{"3":{"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}}},"、":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}},"docs":{}}}}},"2":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014124293785310734},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.025423728813559324},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.02348993288590604},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.021739130434782608},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.03225806451612903},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"为":{"docs":{},"其":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"将":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"为":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"之":{"docs":{},"间":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"种":{"docs":{},"关":{"docs":{},"联":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}}}},"3":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.010869565217391304},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.008928571428571428},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.02956989247311828},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.07954545454545454}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.012711864406779662}}},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}},")":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},",":{"docs":{},"(":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},",":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}},"docs":{}}}}}}},"4":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.013422818791946308},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.01881720430107527},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.06818181818181818}},"]":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"5":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.020134228187919462},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.036585365853658534}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"6":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.04878048780487805}}},"7":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796}}},"8":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"9":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"]":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"_":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"_":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},"l":{"0":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},",":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},"]":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}},"1":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012}}},")":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"初":{"docs":{},"次":{"docs":{},"进":{"docs":{},"入":{"docs":{},"循":{"docs":{},"环":{"docs":{},"时":{"docs":{},",":{"docs":{},"从":{"docs":{},"这":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"判":{"docs":{},"断":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{},"是":{"docs":{},"否":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"若":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"则":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"2":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"docs":{},"示":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},")":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"]":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}}}},"3":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},")":{"docs":{},"处":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"docs":{},"k":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.006711409395973154},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.024390243902439025},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.022727272727272728}}}}}}},"b":{"0":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}}}},"1":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"结":{"docs":{},"尾":{"docs":{},"都":{"docs":{},"是":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"、":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"3":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"三":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"docs":{},"示":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"、":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"和":{"docs":{},"i":{"docs":{},"f":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{},"_":{"docs":{},"b":{"0":{"docs":{},"的":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"_":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"入":{"docs":{},"口":{"docs":{},"、":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},"和":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{},"_":{"docs":{},"b":{"4":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"5":{"docs":{},"两":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{},"多":{"docs":{},"出":{"docs":{},"来":{"docs":{},"的":{"docs":{},"_":{"docs":{},"b":{"6":{"docs":{},"是":{"docs":{},"个":{"docs":{},"不":{"docs":{},"可":{"docs":{},"达":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"之":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"消":{"docs":{},"掉":{"docs":{},"。":{"docs":{},"(":{"docs":{},"思":{"docs":{},"考":{"docs":{},"一":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"要":{"docs":{},"生":{"docs":{},"成":{"docs":{},"_":{"docs":{},"b":{"6":{"docs":{},"?":{"docs":{},"提":{"docs":{},"示":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},";":{"docs":{},"语":{"docs":{},"句":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"d":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013856812933025405}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}},"u":{"docs":{},"m":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}},"\"":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"l":{"docs":{},"f":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.012135922330097087},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.01646090534979424}},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},",":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},",":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}},";":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.030927835051546393},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.1320754716981132},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.030927835051546393},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.0425531914893617},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.033783783783783786},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05405405405405406},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.03125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.03333333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.028455284552845527},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02702702702702703},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026923076923076925},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.034934497816593885},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.03292181069958848},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.01014370245139476},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},",":{"docs":{},"变":{"docs":{},"成":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"表":{"docs":{},"示":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.06666666666666667},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.023166023166023165},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.023076923076923078},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.026200873362445413},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.024691358024691357}}},")":{"docs":{},"。":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}}}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}}}}},".":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"u":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"e":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}}}}},"b":{"docs":{},"n":{"docs":{},"f":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.028169014084507043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.016260162601626018},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01646090534979424}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}},"e":{"docs":{},"。":{"docs":{},"e":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},")":{"docs":{},"。":{"docs":{},"假":{"docs":{},"设":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"u":{"docs":{},"c":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"分":{"docs":{},"支":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}},")":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"。":{"docs":{},"在":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"通":{"docs":{},"过":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"开":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"和":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}},"条":{"docs":{},"件":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"该":{"docs":{},"分":{"docs":{},"支":{"docs":{},"结":{"docs":{},"束":{"docs":{},"时":{"docs":{},",":{"docs":{},"用":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"在":{"docs":{},"递":{"docs":{},"归":{"docs":{},"到":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"请":{"docs":{},"先":{"docs":{},"判":{"docs":{},"断":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"和":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"需":{"docs":{},"要":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"而":{"docs":{},"非":{"docs":{},"声":{"docs":{},"明":{"docs":{},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"析":{"docs":{},"等":{"docs":{},"理":{"docs":{},"论":{"docs":{},"知":{"docs":{},"识":{"docs":{},"在":{"docs":{},"实":{"docs":{},"践":{"docs":{},"中":{"docs":{},"的":{"docs":{},"应":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"了":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"这":{"docs":{},"两":{"docs":{},"次":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"。":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"工":{"docs":{},"建":{"docs":{},"议":{"docs":{},":":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"后":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"总":{"docs":{},"评":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"前":{"docs":{},"就":{"docs":{},"被":{"docs":{},"释":{"docs":{},"放":{"docs":{},"了":{"docs":{},",":{"docs":{},"后":{"docs":{},"端":{"docs":{},"会":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"寻":{"docs":{},"找":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}},"端":{"docs":{},":":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"现":{"docs":{},"有":{"docs":{},"的":{"docs":{},"框":{"docs":{},"架":{"docs":{},"完":{"docs":{},"成":{"docs":{},"前":{"docs":{},"端":{"docs":{},"(":{"docs":{},"如":{"docs":{},":":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{},"、":{"docs":{},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"负":{"docs":{},"责":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"参":{"docs":{},"考":{"docs":{},"资":{"docs":{},"料":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"梗":{"docs":{},"概":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"将":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"和":{"docs":{},"中":{"docs":{},"端":{"docs":{},"设":{"docs":{},"计":{"docs":{},"密":{"docs":{},"不":{"docs":{},"可":{"docs":{},"分":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":10}}}},"预":{"docs":{},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"解":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"这":{"docs":{},"棵":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"依":{"docs":{},"据":{"docs":{},"你":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"保":{"docs":{},"证":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"将":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"用":{"docs":{},"你":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"表":{"docs":{},"示":{"docs":{},"出":{"docs":{},"来":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"推":{"docs":{},"荐":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"就":{"docs":{},"先":{"docs":{},"利":{"docs":{},"用":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":10.012048192771084}}}}},"命":{"docs":{},"令":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"确":{"docs":{},"安":{"docs":{},"装":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}},"未":{"docs":{},"必":{"docs":{},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}},"行":{"docs":{},"基":{"docs":{},"础":{"docs":{},"操":{"docs":{},"作":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"不":{"docs":{},"赘":{"docs":{},"述":{"docs":{},"了":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"在":{"docs":{},"网":{"docs":{},"上":{"docs":{},"查":{"docs":{},"找":{"docs":{},"资":{"docs":{},"料":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"修":{"docs":{},"改":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}},"安":{"docs":{},"装":{"docs":{},"下":{"docs":{},"文":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}},"将":{"docs":{},"它":{"docs":{},"们":{"docs":{},"加":{"docs":{},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{},"。":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"依":{"docs":{},"次":{"docs":{},"按":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"装":{"docs":{},"载":{"docs":{},"到":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"依":{"docs":{},"赖":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"并":{"docs":{},"且":{"docs":{},"不":{"docs":{},"会":{"docs":{},"找":{"docs":{},"到":{"docs":{},",":{"docs":{},"出":{"docs":{},"现":{"docs":{},"报":{"docs":{},"错":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}},"非":{"docs":{},"严":{"docs":{},"格":{"docs":{},"按":{"docs":{},"照":{"docs":{},"课":{"docs":{},"本":{"docs":{},"上":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"严":{"docs":{},"格":{"docs":{},"要":{"docs":{},"求":{"docs":{},"只":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"三":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"绝":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"指":{"docs":{},"令":{"docs":{},"均":{"docs":{},"可":{"docs":{},"以":{"docs":{},"仅":{"docs":{},"使":{"docs":{},"用":{"docs":{},"三":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"地":{"docs":{},"址":{"docs":{},"实":{"docs":{},"现":{"docs":{},"(":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"除":{"docs":{},"外":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"值":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"填":{"docs":{},"充":{"docs":{},"其":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"、":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"法":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"发":{"docs":{},"现":{"docs":{},"是":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"。":{"docs":{},"请":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"平":{"docs":{},"台":{"docs":{},"(":{"docs":{},"如":{"docs":{},"m":{"1":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"对":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"用":{"docs":{},"户":{"docs":{},"都":{"docs":{},"有":{"docs":{},"效":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"用":{"docs":{},"法":{"docs":{},"可":{"docs":{},"参":{"docs":{},"见":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"此":{"docs":{},"命":{"docs":{},"令":{"docs":{},"来":{"docs":{},"检":{"docs":{},"查":{"docs":{},"当":{"docs":{},"前":{"docs":{},"优":{"docs":{},"先":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"高":{"docs":{},"于":{"docs":{},"此":{"docs":{},"版":{"docs":{},"本":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"以":{"docs":{},"下":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"无":{"docs":{},"法":{"docs":{},"成":{"docs":{},"功":{"docs":{},"生":{"docs":{},"成":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"程":{"docs":{},"序":{"docs":{},"只":{"docs":{},"能":{"docs":{},"在":{"docs":{},"你":{"docs":{},"本":{"docs":{},"机":{"docs":{},"(":{"docs":{},"x":{"8":{"6":{"docs":{},")":{"docs":{},"上":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"可":{"docs":{},"能":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.003826530612244898}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"器":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"。":{"docs":{},"和":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"也":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"当":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"信":{"docs":{},"息":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"中":{"docs":{},"增":{"docs":{},"加":{"docs":{},"对":{"docs":{},"循":{"docs":{},"环":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"结":{"docs":{},"构":{"docs":{},"维":{"docs":{},"护":{"docs":{},"从":{"docs":{},"内":{"docs":{},"到":{"docs":{},"外":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"将":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"解":{"docs":{},"析":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}},"经":{"docs":{},"过":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"优":{"docs":{},"化":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"折":{"docs":{},"叠":{"docs":{},"优":{"docs":{},"化":{"docs":{},"后":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{},"可":{"docs":{},"以":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"本":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"测":{"docs":{},"例":{"docs":{},"(":{"docs":{},"不":{"docs":{},"过":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"你":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"在":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"构":{"docs":{},"。":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"想":{"docs":{},"要":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"对":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"点":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"的":{"docs":{},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}},"类":{"docs":{},"实":{"docs":{},"现":{"docs":{},"(":{"docs":{},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"适":{"docs":{},"当":{"docs":{},"的":{"docs":{},"简":{"docs":{},"略":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"依":{"docs":{},"次":{"docs":{},"检":{"docs":{},"查":{"docs":{},"该":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}},"不":{"docs":{},"要":{"docs":{},"忘":{"docs":{},"记":{"docs":{},"开":{"docs":{},"启":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}},"若":{"docs":{},"当":{"docs":{},"前":{"docs":{},"不":{"docs":{},"处":{"docs":{},"于":{"docs":{},"任":{"docs":{},"何":{"docs":{},"循":{"docs":{},"环":{"docs":{},"内":{"docs":{},",":{"docs":{},"则":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"、":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"最":{"docs":{},"终":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"或":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"合":{"docs":{},"性":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"面":{"docs":{},"两":{"docs":{},"种":{"docs":{},"理":{"docs":{},"解":{"docs":{},"中":{"docs":{},"只":{"docs":{},"有":{"docs":{},"前":{"docs":{},"者":{"docs":{},"合":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"尾":{"docs":{},",":{"docs":{},"则":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"边":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"与":{"docs":{},"所":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"加":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"条":{"docs":{},"件":{"docs":{},"成":{"docs":{},"立":{"docs":{},"与":{"docs":{},"不":{"docs":{},"成":{"docs":{},"立":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"分":{"docs":{},"别":{"docs":{},"加":{"docs":{},"入":{"docs":{},"一":{"docs":{},"条":{"docs":{},"有":{"docs":{},"向":{"docs":{},"边":{"docs":{},"(":{"docs":{},"共":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"中":{"docs":{},",":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.012048192771084338}}}}}}}}}}}}}}}}},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"!":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}},"x":{"docs":{},";":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"=":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"(":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},",":{"docs":{},"结":{"docs":{},"果":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"满":{"docs":{},"足":{"docs":{},"它":{"docs":{},"们":{"docs":{},"所":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"当":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"结":{"docs":{},"果":{"docs":{},"为":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"%":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"/":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.02247191011235955},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0338123415046492},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},"·":{"docs":{},"·":{"docs":{},"·":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"p":{"docs":{},"k":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"每":{"docs":{},"次":{"docs":{},"都":{"docs":{},"用":{"docs":{},"完":{"docs":{},"整":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"模":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}},"f":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"o":{"docs":{},"o":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"(":{"docs":{},"i":{"3":{"2":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}},"docs":{}},"docs":{},"n":{"docs":{},"t":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"_":{"docs":{},"t":{"2":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}},"t":{"1":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}},"a":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},".":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"s":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"加":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}},":":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"为":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"docs":{}}}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},")":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.05357142857142857}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"(":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"y":{"docs":{},":":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"、":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},"、":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"docs":{},"r":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},";":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"程":{"docs":{},"序":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"。":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},";":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},")":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"而":{"docs":{},"这":{"docs":{},"一":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"调":{"docs":{},"用":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"而":{"docs":{},"词":{"docs":{},"法":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}},"i":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"e":{"docs":{},"/":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},";":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},";":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"位":{"docs":{},"于":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},";":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"相":{"docs":{},"关":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.013071895424836602},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.00510204081632653}},"(":{"docs":{},"p":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"docs":{}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"p":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"docs":{}}}}}}}}},"每":{"docs":{},"个":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"*":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}},"s":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"(":{"1":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},")":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}},"{":{"docs":{},"i":{"docs":{},"f":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"n":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"当":{"docs":{},"新":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"旧":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"f":{"docs":{},"p":{"docs":{},")":{"docs":{},"保":{"docs":{},"存":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},"表":{"docs":{},"示":{"docs":{},"新":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"新":{"docs":{},"f":{"docs":{},"p":{"docs":{},")":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"新":{"docs":{},"老":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"是":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"及":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"是":{"docs":{},"可":{"docs":{},"知":{"docs":{},"的":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"期":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"得":{"docs":{},"出":{"docs":{},",":{"docs":{},"即":{"docs":{},"存":{"docs":{},"储":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"与":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"空":{"docs":{},"间":{"docs":{},"三":{"docs":{},"者":{"docs":{},"之":{"docs":{},"和":{"docs":{},"。":{"docs":{},"在":{"docs":{},"求":{"docs":{},"得":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"大":{"docs":{},"小":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"修":{"docs":{},"改":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"指":{"docs":{},"针":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},"的":{"docs":{},"值":{"docs":{},"来":{"docs":{},"分":{"docs":{},"配":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"v":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"docs":{}}}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"o":{"1":{"docs":{},"与":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}},"2":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"(":{"docs":{},"减":{"docs":{},"少":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"生":{"docs":{},"成":{"docs":{},")":{"docs":{},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"看":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"的":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"3":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.022222222222222223},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},"s":{"docs":{},"用":{"docs":{},"户":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"将":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{},"加":{"docs":{},"入":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"将":{"docs":{},"p":{"docs":{},"k":{"docs":{},"加":{"docs":{},"入":{"docs":{},"系":{"docs":{},"统":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{},"助":{"docs":{},"教":{"docs":{},"不":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}},"k":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}},"o":{"docs":{},"p":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"a":{"docs":{},"l":{"docs":{},"[":{"docs":{},"u":{"docs":{},"]":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"e":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.010869565217391304}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"n":{"docs":{},"j":{"docs":{},"d":{"docs":{},"k":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},"e":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},"就":{"docs":{},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"展":{"docs":{},"开":{"docs":{},",":{"docs":{},"也":{"docs":{},"许":{"docs":{},"要":{"docs":{},"在":{"docs":{},"更":{"docs":{},"早":{"docs":{},"的":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"引":{"docs":{},"入":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"并":{"docs":{},"将":{"docs":{},"其":{"docs":{},"变":{"docs":{},"换":{"docs":{},"为":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"和":{"docs":{},"一":{"docs":{},"条":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},":":{"docs":{},"将":{"docs":{},"t":{"0":{"docs":{},"中":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"计":{"docs":{},"算":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"处":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"将":{"docs":{},"结":{"docs":{},"果":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"t":{"0":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}}}}}},"b":{"docs":{},"j":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"x":{"1":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},"8":{"6":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.014563106796116505},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"_":{"6":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.009708737864077669}}},"docs":{}},"docs":{}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"docs":{}},"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.03341288782816229},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.09863945578231292},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.030508474576271188},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011547344110854504},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.0783132530120482},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.015267175572519083}},")":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},";":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},",":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}}},"(":{"docs":{},"然":{"docs":{},"后":{"docs":{},"回":{"docs":{},"车":{"docs":{},")":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"开":{"docs":{},"头":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"你":{"docs":{},"最":{"docs":{},"终":{"docs":{},"敲":{"docs":{},"到":{"docs":{},"终":{"docs":{},"端":{"docs":{},"里":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"于":{"docs":{},"是":{"docs":{},"向":{"docs":{},"下":{"docs":{},"继":{"docs":{},"续":{"docs":{},"查":{"docs":{},"找":{"docs":{},"。":{"docs":{},"在":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"但":{"docs":{},"随":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"开":{"docs":{},"启":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"中":{"docs":{},",":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"下":{"docs":{},"所":{"docs":{},"示":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"找":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"而":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"随":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"这":{"docs":{},"个":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}},"+":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"是":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"其":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"值":{"docs":{},"。":{"docs":{},"而":{"docs":{},"带":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.007633587786259542}}},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"只":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"正":{"docs":{},"确":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"关":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"就":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},"了":{"docs":{},":":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{},"若":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"即":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"加":{"docs":{},"入":{"docs":{},"对":{"docs":{},"应":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"v":{"docs":{},"i":{"docs":{},"的":{"docs":{},"值":{"docs":{},"不":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"。":{"docs":{},"(":{"docs":{},"思":{"docs":{},"考":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}},"docs":{}},"docs":{}},"i":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"将":{"docs":{},"全":{"docs":{},"部":{"docs":{},"x":{"docs":{},"i":{"docs":{},"移":{"docs":{},"入":{"docs":{},"t":{"docs":{},"i":{"docs":{},"中":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"再":{"docs":{},"生":{"docs":{},"成":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"1":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}},"2":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.008064516129032258}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007159904534606206},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.013440860215053764},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},")":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},";":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},".":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"\"":{"docs":{},")":{"docs":{},"代":{"docs":{},"表":{"docs":{},"了":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"点":{"docs":{},"是":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},",":{"docs":{},"而":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{},"p":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"即":{"docs":{},"三":{"docs":{},"个":{"docs":{},"引":{"docs":{},"号":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"并":{"docs":{},"非":{"docs":{},"注":{"docs":{},"释":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"简":{"docs":{},"称":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"均":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"到":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"搜":{"docs":{},"索":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}},"docs":{},"]":{"docs":{},";":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},"docs":{},"]":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"官":{"docs":{},"方":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}},"文":{"docs":{},"档":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"或":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011538461538461539},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"者":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.008928571428571428}}},"自":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"管":{"docs":{},"理":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"地":{"docs":{},"使":{"docs":{},"用":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"安":{"docs":{},"装":{"docs":{},"最":{"docs":{},"新":{"docs":{},"的":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"版":{"docs":{},"本":{"docs":{},",":{"docs":{},"安":{"docs":{},"装":{"docs":{},"好":{"docs":{},"之":{"docs":{},"后":{"docs":{},"使":{"docs":{},"用":{"docs":{},"p":{"docs":{},"i":{"docs":{},"p":{"docs":{},"安":{"docs":{},"装":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}},"把":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"右":{"docs":{},"边":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"选":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"信":{"docs":{},"息":{"docs":{},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"码":{"docs":{},"入":{"docs":{},"语":{"docs":{},"法":{"docs":{},"里":{"docs":{},",":{"docs":{},"见":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"转":{"docs":{},"化":{"docs":{},"成":{"docs":{},"类":{"docs":{},"似":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"样":{"docs":{},"“":{"docs":{},"更":{"docs":{},"模":{"docs":{},"糊":{"docs":{},"”":{"docs":{},",":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"我":{"docs":{},"们":{"docs":{},"相":{"docs":{},"信":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"向":{"docs":{},"的":{"docs":{},"转":{"docs":{},"化":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"容":{"docs":{},"易":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"图":{"docs":{},"中":{"docs":{},"当":{"docs":{},"前":{"docs":{},"所":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"至":{"docs":{},"少":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}},"比":{"docs":{},"如":{"5":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}},"docs":{}},"较":{"docs":{},"大":{"docs":{},"小":{"docs":{},"和":{"docs":{},"相":{"docs":{},"等":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},":":{"docs":{},"、":{"docs":{},"、":{"docs":{},">":{"docs":{},"=":{"docs":{},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},"此":{"docs":{},"处":{"docs":{},"不":{"docs":{},"要":{"docs":{},"直":{"docs":{},"接":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"计":{"docs":{},"算":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"式":{"docs":{},"子":{"docs":{"docs/ref/riscv.html":{"ref":"docs/ref/riscv.html","tf":0.011111111111111112}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"子":{"docs":{},"模":{"docs":{},"块":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}},"i":{"docs":{},"f":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}},"引":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"后":{"docs":{},",":{"docs":{},"左":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"一":{"docs":{},"定":{"docs":{},"是":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"都":{"docs":{},"参":{"docs":{},"加":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"是":{"docs":{},"用":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"是":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"各":{"docs":{},"种":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"运":{"docs":{},"算":{"docs":{},"规":{"docs":{},"则":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"用":{"docs":{},"统":{"docs":{},"一":{"docs":{},"的":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"节":{"docs":{},"点":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"再":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"种":{"docs":{},"类":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"目":{"docs":{},"前":{"docs":{},"还":{"docs":{},"在":{"docs":{},"完":{"docs":{},"善":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"不":{"docs":{},"断":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"更":{"docs":{},"新":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"对":{"docs":{},"于":{"docs":{},"评":{"docs":{},"分":{"docs":{},"部":{"docs":{},"分":{"docs":{},"有":{"docs":{},"更":{"docs":{},"新":{"docs":{},",":{"docs":{},"会":{"docs":{},"通":{"docs":{},"知":{"docs":{},"所":{"docs":{},"有":{"docs":{},"选":{"docs":{},"择":{"docs":{},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"#":{"2":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}},"]":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421},"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.04526748971193416},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01694915254237288},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02252252252252252},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0784313725490196},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011029411764705883},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.03695150115473441},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.024513947590870666},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.02348993288590604},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.016304347826086956},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.010752688172043012},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.04961832061068702}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00507185122569738}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"s":{"docs":{},"h":{"docs":{},"远":{"docs":{},"程":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},",":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"写":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"层":{"docs":{},"面":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"(":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}},"继":{"docs":{},"续":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"就":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"说":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"总":{"docs":{},"是":{"docs":{},"从":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"到":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"结":{"docs":{},"束":{"docs":{},"的":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"不":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"别":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"或":{"docs":{},"者":{"docs":{},"从":{"docs":{},"别":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"跳":{"docs":{},"进":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"很":{"docs":{},"多":{"docs":{},"写":{"docs":{},"法":{"docs":{},",":{"docs":{},"另":{"docs":{},"一":{"docs":{},"种":{"docs":{},"是":{"docs":{},"用":{"docs":{},"尖":{"docs":{},"括":{"docs":{},"号":{"docs":{},"表":{"docs":{},"示":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"多":{"docs":{},"次":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"规":{"docs":{},"定":{"docs":{},"新":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"会":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"同":{"docs":{},"名":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"请":{"docs":{},"问":{"docs":{},"在":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"查":{"docs":{},"找":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"做":{"docs":{},"怎":{"docs":{},"样":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"?":{"docs":{},"(":{"docs":{},"提":{"docs":{},"示":{"docs":{},":":{"docs":{},"如":{"docs":{},"何":{"docs":{},"区":{"docs":{},"分":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"不":{"docs":{},"同":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"?":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"如":{"docs":{},"上":{"docs":{},"改":{"docs":{},"动":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"免":{"docs":{},"密":{"docs":{},"登":{"docs":{},"录":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"大":{"docs":{},"家":{"docs":{},"使":{"docs":{},"用":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"上":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"里":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"为":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}},"建":{"docs":{},"议":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"立":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"连":{"docs":{},"接":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"环":{"docs":{},"境":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"、":{"docs":{},"账":{"docs":{},"号":{"docs":{},"和":{"docs":{},"密":{"docs":{},"码":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"发":{"docs":{},"给":{"docs":{},"大":{"docs":{},"家":{"docs":{},",":{"docs":{},"请":{"docs":{},"登":{"docs":{},"录":{"docs":{},"网":{"docs":{},"络":{"docs":{},"学":{"docs":{},"堂":{"docs":{},"查":{"docs":{},"收":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"登":{"docs":{},"陆":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"?":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}},"禁":{"docs":{},"止":{"docs":{},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"上":{"docs":{},"安":{"docs":{},"装":{"docs":{},"软":{"docs":{},"件":{"docs":{},"、":{"docs":{},"运":{"docs":{},"行":{"docs":{},"与":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"无":{"docs":{},"关":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"或":{"docs":{},"者":{"docs":{},"破":{"docs":{},"环":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},"将":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"受":{"docs":{},"到":{"docs":{},"惩":{"docs":{},"罚":{"docs":{},"。":{"docs":{"docs/step0/intro.html":{"ref":"docs/step0/intro.html","tf":0.02631578947368421}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"$":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.024271844660194174},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.0411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"让":{"docs":{},"你":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"一":{"docs":{},"行":{"docs":{},"是":{"docs":{},"上":{"docs":{},"一":{"docs":{},"条":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"输":{"docs":{},"出":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"我":{"docs":{},"们":{"docs":{},"特":{"docs":{},"别":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"行":{"docs":{},"是":{"docs":{},"你":{"docs":{},"要":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.01646090534979424}}},"{":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{},"_":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"}":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"docs":{}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"}":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"a":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},"&":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00422654268808115},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"&":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"{":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"t":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009237875288683603},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.011450381679389313}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.018018018018018018},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.018691588785046728},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.006928406466512702},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.04198473282442748}},"t":{"1":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"docs":{}}},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"t":{"1":{"docs":{},"、":{"docs":{},"t":{"0":{"docs":{},"进":{"docs":{},"行":{"docs":{},"或":{"docs":{},"操":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"再":{"docs":{},"判":{"docs":{},"断":{"docs":{},"其":{"docs":{},"值":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"1":{"docs":{},"。":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"不":{"docs":{},"在":{"docs":{},"产":{"docs":{},"生":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"成":{"docs":{},"立":{"docs":{},"为":{"1":{"docs":{},",":{"docs":{},"失":{"docs":{},"败":{"docs":{},"为":{"0":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"docs":{}}}}}},"docs":{}}}}}}},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"传":{"docs":{},"递":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"1":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.018072289156626505},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338}}},"和":{"docs":{},"t":{"2":{"docs":{},"作":{"docs":{},"为":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},",":{"docs":{},"而":{"docs":{},"调":{"docs":{},"用":{"docs":{},"后":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"t":{"0":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"2":{"docs":{},",":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{},"t":{"1":{"docs":{},",":{"docs":{},"t":{"2":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"docs":{}}}},"3":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"docs":{}}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"a":{"docs":{},"p":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.02824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02027027027027027},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.014705882352941176},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00954653937947494},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.02040816326530612},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.03225806451612903},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.012048192771084338},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.016304347826086956}},")":{"docs":{},"看":{"docs":{},"起":{"docs":{},"来":{"docs":{},"很":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"最":{"docs":{},"大":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},")":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"及":{"docs":{},"其":{"docs":{},"相":{"docs":{},"关":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"如":{"docs":{},"类":{"docs":{},"型":{"docs":{},"、":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"、":{"docs":{},"存":{"docs":{},"储":{"docs":{},"位":{"docs":{},"置":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"会":{"docs":{},"随":{"docs":{},"着":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"而":{"docs":{},"形":{"docs":{},"成":{"docs":{},"层":{"docs":{},"级":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"在":{"docs":{},"不":{"docs":{},"同":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"之":{"docs":{},"间":{"docs":{},"正":{"docs":{},"确":{"docs":{},"解":{"docs":{},"析":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}}}},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"(":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"与":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"解":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},".":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"最":{"docs":{},"终":{"docs":{},"把":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"把":{"docs":{},"一":{"docs":{},"个":{"docs":{},"看":{"docs":{},"似":{"docs":{},"被":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"地":{"docs":{},"组":{"docs":{},"织":{"docs":{},"起":{"docs":{},"来":{"docs":{},"的":{"docs":{},"文":{"docs":{},"本":{"docs":{},"转":{"docs":{},"化":{"docs":{},"成":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"“":{"docs":{},"树":{"docs":{},"”":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{},"其":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"提":{"docs":{},"取":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"更":{"docs":{},"加":{"docs":{},"精":{"docs":{},"简":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02027027027027027},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.012195121951219513},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.015444015444015444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.015384615384615385},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.017467248908296942},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0205761316872428},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"d":{"docs":{},")":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"在":{"docs":{},"语":{"docs":{},"言":{"docs":{},"设":{"docs":{},"计":{"docs":{},"之":{"docs":{},"初":{"docs":{},",":{"docs":{},"设":{"docs":{},"计":{"docs":{},"者":{"docs":{},"都":{"docs":{},"会":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"该":{"docs":{},"语":{"docs":{},"言":{"docs":{},"支":{"docs":{},"持":{"docs":{},"表":{"docs":{},"达":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"给":{"docs":{},"出":{"docs":{},"定":{"docs":{},"型":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01020408163265306},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}}}}}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},",":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}}}}}}}}}}}}}},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"开":{"docs":{},"头":{"docs":{},"。":{"docs":{},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"解":{"docs":{},"释":{"docs":{},"见":{"docs":{},"文":{"docs":{},"件":{"docs":{},"注":{"docs":{},"释":{"docs":{},"或":{"docs":{},"文":{"docs":{},"档":{"docs":{},"(":{"docs":{},"太":{"docs":{},"长":{"docs":{},"了":{"docs":{},"助":{"docs":{},"教":{"docs":{},"也":{"docs":{},"读":{"docs":{},"不":{"docs":{},"下":{"docs":{},"去":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.010067114093959731},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.01020408163265306}},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"2":{"docs":{},"n":{"docs":{},"条":{"docs":{},"m":{"docs":{},"v":{"docs":{},"指":{"docs":{},"令":{"docs":{},"形":{"docs":{},"成":{"docs":{},"了":{"docs":{},"两":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"内":{"docs":{},"部":{"docs":{},"的":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"重":{"docs":{},"要":{"docs":{},",":{"docs":{},"但":{"docs":{},"不":{"docs":{},"要":{"docs":{},"跨":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"移":{"docs":{},"动":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006756756756756757},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"来":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"它":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"中":{"docs":{},"通":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"正":{"docs":{},"则":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"以":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"整":{"docs":{},"数":{"docs":{},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"行":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"[":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"。":{"docs":{},"它":{"docs":{},"被":{"docs":{},"看":{"docs":{},"成":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"取":{"docs":{},"负":{"docs":{},"符":{"docs":{},"号":{"docs":{},"、":{"docs":{},"后":{"docs":{},"面":{"docs":{},"是":{"docs":{},"它":{"docs":{},"的":{"docs":{},"绝":{"docs":{},"对":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"'":{"1":{"9":{"9":{"6":{"docs":{},":":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00847457627118644}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}},"o":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.013071895424836602}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}},"e":{"docs":{},"n":{"docs":{},",":{"docs":{},"假":{"docs":{},"分":{"docs":{},"支":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},")":{"docs":{},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"2":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"z":{"0":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{},"s":{"docs":{},"h":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},",":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}},"_":{"docs":{},"]":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"a":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}}},"~":{"0":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}},"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}},"/":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{},"使":{"docs":{},"修":{"docs":{},"改":{"docs":{},"生":{"docs":{},"效":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"z":{"docs":{},"s":{"docs":{},"h":{"docs":{},"r":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"!":{"docs":{},"这":{"docs":{},"三":{"docs":{},"个":{"docs":{},"单":{"docs":{},"目":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"和":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"a":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"见":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"设":{"docs":{},"置":{"docs":{},"每":{"docs":{},"次":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}},"般":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"直":{"docs":{},"接":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"所":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"效":{"docs":{},"率":{"docs":{},"比":{"docs":{},"较":{"docs":{},"差":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"多":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"都":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"进":{"docs":{},"行":{"docs":{},"更":{"docs":{},"深":{"docs":{},"入":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"程":{"docs":{},"序":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"更":{"docs":{},"多":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"某":{"docs":{},"个":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"效":{"docs":{},"、":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"指":{"docs":{},"令":{"docs":{},"以":{"docs":{},"后":{"docs":{},"是":{"docs":{},"否":{"docs":{},"还":{"docs":{},"会":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},"、":{"docs":{},"当":{"docs":{},"前":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"都":{"docs":{},"能":{"docs":{},"够":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"来":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"中":{"docs":{},"某":{"docs":{},"些":{"docs":{},"代":{"docs":{},"码":{"docs":{},"是":{"docs":{},"否":{"docs":{},"能":{"docs":{},"够":{"docs":{},"提":{"docs":{},"出":{"docs":{},"到":{"docs":{},"循":{"docs":{},"环":{"docs":{},"外":{"docs":{},"面":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"次":{"docs":{},"数":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"已":{"docs":{},"知":{"docs":{},"的":{"docs":{},"常":{"docs":{},"数":{"docs":{},"等":{"docs":{},"等":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"优":{"docs":{},"化":{"docs":{},"离":{"docs":{},"不":{"docs":{},"开":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"求":{"docs":{},"解":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"或":{"docs":{},"多":{"docs":{},"次":{"docs":{},",":{"docs":{},"?":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}},"节":{"docs":{},"都":{"docs":{},"会":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"的":{"docs":{},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},"给":{"docs":{},"出":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"大":{"docs":{},"家":{"docs":{},"查":{"docs":{},"阅":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}},"栏":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"嘛":{"docs":{},",":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"必":{"docs":{},"要":{"docs":{},"吗":{"docs":{},"?":{"docs":{},"其":{"docs":{},"实":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"是":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"有":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"由":{"docs":{},"一":{"docs":{},"条":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"t":{"2":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"不":{"docs":{},"再":{"docs":{},"赘":{"docs":{},"述":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"如":{"docs":{},"取":{"docs":{},"负":{"docs":{},"、":{"docs":{},"取":{"docs":{},"位":{"docs":{},"反":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}},"个":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"例":{"docs":{},"子":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"任":{"docs":{},"意":{"docs":{},"多":{"docs":{},"条":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"是":{"docs":{},"活":{"docs":{},"的":{"docs":{},"(":{"docs":{},"也":{"docs":{},"叫":{"docs":{},"“":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"”":{"docs":{},"、":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"该":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"具":{"docs":{},"有":{"docs":{},"的":{"docs":{},"值":{"docs":{},"会":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"以":{"docs":{},"后":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"换":{"docs":{},"句":{"docs":{},"话":{"docs":{},"说":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"在":{"docs":{},"该":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"到":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"重":{"docs":{},"新":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"之":{"docs":{},"间":{"docs":{},"存":{"docs":{},"在":{"docs":{},"着":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"每":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"点":{"docs":{},"处":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"集":{"docs":{},"合":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"后":{"docs":{},"继":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"处":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"出":{"docs":{},"口":{"docs":{},"必":{"docs":{},"须":{"docs":{},"也":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{},"一":{"docs":{},"组":{"docs":{},"被":{"docs":{},"连":{"docs":{},"续":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{},"一":{"docs":{},"段":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"对":{"docs":{},"象":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"之":{"docs":{},"为":{"docs":{},"元":{"docs":{},"素":{"docs":{},"类":{"docs":{},"型":{"docs":{},")":{"docs":{},"。":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"包":{"docs":{},"含":{"docs":{},"两":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"元":{"docs":{},"素":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"长":{"docs":{},"度":{"docs":{},"(":{"docs":{},"即":{"docs":{},"元":{"docs":{},"素":{"docs":{},"数":{"docs":{},"量":{"docs":{},")":{"docs":{},"。":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"仅":{"docs":{},"能":{"docs":{},"参":{"docs":{},"与":{"docs":{},"下":{"docs":{},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"主":{"docs":{},"要":{"docs":{},"由":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"构":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"是":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"。":{"docs":{},"常":{"docs":{},"量":{"docs":{},"传":{"docs":{},"播":{"docs":{},"是":{"docs":{},"指":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"量":{"docs":{},"值":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"它":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"于":{"docs":{},"在":{"docs":{},"中":{"docs":{},"端":{"docs":{},"直":{"docs":{},"接":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"些":{"docs":{},"计":{"docs":{},"算":{"docs":{},"以":{"docs":{},"降":{"docs":{},"低":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"开":{"docs":{},"销":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"可":{"docs":{},"能":{"docs":{},"带":{"docs":{},"来":{"docs":{},"困":{"docs":{},"惑":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"定":{"docs":{},"能":{"docs":{},"找":{"docs":{},"到":{"docs":{},"一":{"docs":{},"种":{"docs":{},"不":{"docs":{},"和":{"docs":{},"周":{"docs":{},"围":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"点":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"上":{"docs":{},"图":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"之":{"docs":{},"类":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"后":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}},",":{"docs":{},"这":{"docs":{},"些":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"想":{"docs":{},"要":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"种":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}},"每":{"docs":{},"一":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"都":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},",":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"能":{"docs":{},"体":{"docs":{},"现":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"确":{"docs":{},"实":{"docs":{},"想":{"docs":{},"借":{"docs":{},"助":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},":":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"间":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"当":{"docs":{},"前":{"docs":{},"实":{"docs":{},"验":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{},"的":{"docs":{},"是":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"区":{"docs":{},"域":{"docs":{},",":{"docs":{},"正":{"docs":{},"是":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"区":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"为":{"docs":{},"腾":{"docs":{},"空":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"而":{"docs":{},"取":{"docs":{},"出":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"。":{"docs":{},"值":{"docs":{},"得":{"docs":{},"一":{"docs":{},"提":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"区":{"docs":{},"域":{"docs":{},"中":{"docs":{},"还":{"docs":{},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"处":{"docs":{},"仍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"关":{"docs":{},"于":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}},"甚":{"docs":{},"至":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}},"外":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}},"仓":{"docs":{},"库":{"docs":{},"链":{"docs":{},"接":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"下":{"docs":{},"载":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"库":{"docs":{},"或":{"docs":{},"者":{"docs":{},"自":{"docs":{},"己":{"docs":{},"编":{"docs":{},"译":{"docs":{},"安":{"docs":{},"装":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"官":{"docs":{},"方":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}},"位":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"支":{"docs":{},"持":{"docs":{},"存":{"docs":{},"在":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},",":{"docs":{},"而":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"请":{"docs":{},"使":{"docs":{},"用":{"docs":{},"我":{"docs":{},"们":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}},"值":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"将":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"值":{"docs":{},"放":{"docs":{},"入":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"到":{"docs":{},"指":{"docs":{},"定":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"有":{"docs":{},"符":{"docs":{},"号":{"docs":{},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"范":{"docs":{},"围":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0033812341504649195}},"时":{"docs":{},"记":{"docs":{},"得":{"docs":{},"加":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"默":{"docs":{},"认":{"docs":{},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}},"的":{"docs":{},"是":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"“":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"”":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"其":{"docs":{},"数":{"docs":{},"目":{"docs":{},"不":{"docs":{},"受":{"docs":{},"限":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"不":{"docs":{},"够":{"docs":{},"用":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"后":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"再":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{},"它":{"docs":{},"使":{"docs":{},"用":{"docs":{},"基":{"docs":{},"于":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"来":{"docs":{},"描":{"docs":{},"述":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"一":{"docs":{},"个":{"docs":{},"典":{"docs":{},"型":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"把":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"法":{"docs":{},"文":{"docs":{},"件":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"得":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仓":{"docs":{},"库":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}},"名":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"却":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"这":{"docs":{},"个":{"docs":{},"教":{"docs":{},"程":{"docs":{},"进":{"docs":{},"行":{"docs":{},"升":{"docs":{},"级":{"docs":{},",":{"docs":{},"升":{"docs":{},"级":{"docs":{},"时":{"docs":{},"注":{"docs":{},"意":{"docs":{},"备":{"docs":{},"份":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}},"尝":{"docs":{},"试":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}},"把":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"分":{"docs":{},"析":{"docs":{},"符":{"docs":{},"号":{"docs":{},"含":{"docs":{},"义":{"docs":{},"和":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{},"分":{"docs":{},"析":{"docs":{},"符":{"docs":{},"号":{"docs":{},"含":{"docs":{},"义":{"docs":{},"是":{"docs":{},"指":{"docs":{},"对":{"docs":{},"于":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"所":{"docs":{},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"主":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"索":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"是":{"docs":{},"否":{"docs":{},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"符":{"docs":{},"合":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"所":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"都":{"docs":{},"经":{"docs":{},"过":{"docs":{},"声":{"docs":{},"明":{"docs":{},"等":{"docs":{},"。":{"docs":{},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"其":{"docs":{},"语":{"docs":{},"义":{"docs":{},"未":{"docs":{},"必":{"docs":{},"正":{"docs":{},"确":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"未":{"docs":{},"必":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"含":{"docs":{},"义":{"docs":{},"在":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"使":{"docs":{},"得":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"无":{"docs":{},"法":{"docs":{},"确":{"docs":{},"定":{"docs":{},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"确":{"docs":{},"切":{"docs":{},"含":{"docs":{},"义":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"是":{"docs":{},"很":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"成":{"docs":{},"功":{"docs":{},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"则":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"对":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"来":{"docs":{},"说":{"docs":{},"是":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},"可":{"docs":{},"以":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"适":{"docs":{},"配":{"docs":{},"不":{"docs":{},"同":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"(":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"合":{"docs":{},"并":{"docs":{},"后":{"docs":{},"边":{"docs":{},"数":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"不":{"docs":{},"合":{"docs":{},"并":{"docs":{},"但":{"docs":{},"强":{"docs":{},"制":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"同":{"docs":{},"色":{"docs":{},"吗":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"合":{"docs":{},"并":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"点":{"docs":{},"吗":{"docs":{},"?":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}},"跟":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"产":{"docs":{},"生":{"docs":{},"出":{"docs":{},"连":{"docs":{},"接":{"docs":{},"许":{"docs":{},"多":{"docs":{},"边":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"反":{"docs":{},"而":{"docs":{},"使":{"docs":{},"得":{"docs":{},"后":{"docs":{},"续":{"docs":{},"染":{"docs":{},"色":{"docs":{},"困":{"docs":{},"难":{"docs":{},",":{"docs":{},"不":{"docs":{},"得":{"docs":{},"不":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"这":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"更":{"docs":{},"早":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"样":{"docs":{},"合":{"docs":{},"并":{"docs":{},"的":{"docs":{},"点":{"docs":{},"数":{"docs":{},"比":{"docs":{},"较":{"docs":{},"少":{"docs":{},",":{"docs":{},"优":{"docs":{},"化":{"docs":{},"效":{"docs":{},"果":{"docs":{},"差":{"docs":{},"。":{"docs":{},"这":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"更":{"docs":{},"早":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"了":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"更":{"docs":{},"多":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"化":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"进":{"docs":{},"而":{"docs":{},"简":{"docs":{},"化":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}},"发":{"docs":{},"现":{"docs":{},"问":{"docs":{},"题":{"docs":{},"在":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"强":{"docs":{},"行":{"docs":{},"把":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"生":{"docs":{},"命":{"docs":{},"周":{"docs":{},"期":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"在":{"docs":{},"了":{"docs":{},"一":{"docs":{},"起":{"docs":{},",":{"docs":{},"而":{"docs":{},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"只":{"docs":{},"要":{"docs":{},"求":{"docs":{},"在":{"docs":{},"传":{"docs":{},"参":{"docs":{},"时":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"位":{"docs":{},"于":{"docs":{},"指":{"docs":{},"定":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"其":{"docs":{},"它":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"也":{"docs":{},"管":{"docs":{},"不":{"docs":{},"着":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"到":{"docs":{},"底":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"反":{"docs":{},"驳":{"docs":{},":":{"docs":{},"我":{"docs":{},"们":{"docs":{},"其":{"docs":{},"实":{"docs":{},"也":{"docs":{},"关":{"docs":{},"心":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"让":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"有":{"docs":{},"助":{"docs":{},"于":{"docs":{},"减":{"docs":{},"少":{"docs":{},"无":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"没":{"docs":{},"错":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"可":{"docs":{},"以":{"docs":{},"交":{"docs":{},"给":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"和":{"docs":{},"后":{"docs":{},"续":{"docs":{},"优":{"docs":{},"化":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"我":{"docs":{},"们":{"docs":{},"更":{"docs":{},"关":{"docs":{},"注":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},",":{"docs":{},"应":{"docs":{},"当":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"传":{"docs":{},"参":{"docs":{},"时":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"合":{"docs":{},"并":{"docs":{},"为":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"b":{"docs":{},"n":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"最":{"docs":{},"后":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"链":{"docs":{},"接":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"能":{"docs":{},"会":{"docs":{},"用":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"&":{"docs":{},"&":{"docs":{},"和":{"docs":{},"|":{"docs":{},"|":{"docs":{},",":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"以":{"docs":{},"理":{"docs":{},"解":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"下":{"docs":{},"面":{"docs":{},"直":{"docs":{},"接":{"docs":{},"给":{"docs":{},"出":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"有":{"docs":{},"些":{"docs":{},"系":{"docs":{},"统":{"docs":{},"自":{"docs":{},"带":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}},"希":{"docs":{},"望":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"需":{"docs":{},"要":{"docs":{},"想":{"docs":{},"办":{"docs":{},"法":{"docs":{},"把":{"docs":{},"这":{"docs":{},"些":{"docs":{},"无":{"docs":{},"限":{"docs":{},"多":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"“":{"docs":{},"塞":{"docs":{},"”":{"docs":{},"到":{"docs":{},"有":{"docs":{},"限":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"使":{"docs":{},"用":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"把":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"当":{"docs":{},"前":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"不":{"docs":{},"到":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"上":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"测":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"不":{"docs":{},"能":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"标":{"docs":{},"识":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}},"上":{"docs":{},"述":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"可":{"docs":{},"以":{"docs":{},"等":{"docs":{},"价":{"docs":{},"地":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"指":{"docs":{},"令":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"便":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"优":{"docs":{},"化":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"中":{"docs":{},"只":{"docs":{},"操":{"docs":{},"作":{"docs":{},"了":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"docs":{}}}}}},"大":{"docs":{},"实":{"docs":{},"验":{"docs":{},"实":{"docs":{},"现":{"docs":{},"难":{"docs":{},"度":{"docs":{},"较":{"docs":{},"高":{"docs":{},"且":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"较":{"docs":{},"大":{"docs":{},",":{"docs":{},"优":{"docs":{},"化":{"docs":{},"目":{"docs":{},"标":{"docs":{},"可":{"docs":{},"能":{"docs":{},"相":{"docs":{},"对":{"docs":{},"难":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"两":{"docs":{},"种":{"docs":{},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"案":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"并":{"docs":{},"解":{"docs":{},"压":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"到":{"docs":{},"你":{"docs":{},"喜":{"docs":{},"欢":{"docs":{},"的":{"docs":{},"目":{"docs":{},"录":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},",":{"docs":{},"由":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"生":{"docs":{},"成":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"上":{"docs":{},"正":{"docs":{},"确":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"是":{"docs":{},"大":{"docs":{},"家":{"docs":{},"首":{"docs":{},"次":{"docs":{},"接":{"docs":{},"触":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},",":{"docs":{},"在":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"叙":{"docs":{},"述":{"docs":{},"了":{"docs":{},"安":{"docs":{},"装":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"应":{"docs":{},"用":{"docs":{},"商":{"docs":{},"店":{"docs":{},"可":{"docs":{},"以":{"docs":{},"很":{"docs":{},"容":{"docs":{},"易":{"docs":{},"地":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"该":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}},"等":{"docs":{},"于":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},"当":{"docs":{},"变":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"改":{"docs":{},"为":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}},"开":{"docs":{},"头":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"以":{"docs":{},"被":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"始":{"docs":{},",":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"上":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"各":{"docs":{},"种":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"结":{"docs":{},"点":{"docs":{},"。":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"。":{"docs":{},"简":{"docs":{},"而":{"docs":{},"言":{"docs":{},"之":{"docs":{},",":{"docs":{},"一":{"docs":{},"份":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"开":{"docs":{},"始":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"管":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"函":{"docs":{},"数":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}},"计":{"docs":{},"数":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"访":{"docs":{},"问":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"分":{"docs":{},"支":{"docs":{},"条":{"docs":{},"件":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"往":{"docs":{},"往":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"调":{"docs":{},"用":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"环":{"docs":{},"境":{"docs":{},"正":{"docs":{},"确":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"得":{"docs":{},"到":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"开":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},"o":{"docs":{},"f":{"docs":{},"t":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"完":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}},"一":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}}}},"汇":{"docs":{},"编":{"docs":{},"中":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"docs":{},"子":{"docs":{},"函":{"docs":{},"数":{"docs":{},"直":{"docs":{},"至":{"docs":{},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"按":{"docs":{},"照":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"本":{"docs":{},"文":{"docs":{},"档":{"docs":{},"的":{"docs":{},"前":{"docs":{},"几":{"docs":{},"节":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"上":{"docs":{},"文":{"docs":{},"说":{"docs":{},"的":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}},"这":{"docs":{},"个":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}},"汇":{"docs":{},"编":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}},"钮":{"docs":{},"的":{"docs":{},"下":{"docs":{},"方":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{},"的":{"docs":{},"逆":{"docs":{},"序":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"所":{"docs":{},"有":{"docs":{},"结":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},",":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},",":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"其":{"docs":{},"中":{"docs":{},"写":{"docs":{},"入":{"docs":{},"如":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"能":{"docs":{},"够":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"夹":{"docs":{},"下":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"docs":{}}}}}}},"中":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"(":{"docs":{},"强":{"docs":{},"烈":{"docs":{},"建":{"docs":{},"议":{"docs":{},")":{"docs":{},"。":{"docs":{},"出":{"docs":{},"于":{"docs":{},"方":{"docs":{},"便":{"docs":{},"考":{"docs":{},"虑":{"docs":{},",":{"docs":{},"我":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"文":{"docs":{},"件":{"docs":{},"实":{"docs":{},"例":{"docs":{},".":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"是":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"结":{"docs":{},"构":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},")":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"机":{"docs":{},"器":{"docs":{},"上":{"docs":{},"、":{"docs":{},"把":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"却":{"docs":{},"要":{"docs":{},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"安":{"docs":{},"装":{"docs":{},"成":{"docs":{},"功":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"有":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"和":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"匹":{"docs":{},"配":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"否":{"docs":{},"匹":{"docs":{},"配":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"模":{"docs":{},"拟":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"器":{"docs":{},"和":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"易":{"docs":{},"内":{"docs":{},"核":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"只":{"docs":{},"能":{"docs":{},"在":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"中":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"给":{"docs":{},"出":{"docs":{},"运":{"docs":{},"行":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"(":{"docs":{},"编":{"docs":{},"译":{"docs":{},"时":{"docs":{},"请":{"docs":{},"不":{"docs":{},"要":{"docs":{},"开":{"docs":{},"启":{"docs":{},"任":{"docs":{},"何":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},")":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"式":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"里":{"docs":{},"除":{"docs":{},"了":{"docs":{},"类":{"docs":{},"型":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"之":{"docs":{},"外":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"类":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"它":{"docs":{},"用":{"docs":{},"于":{"docs":{},"处":{"docs":{},"理":{"docs":{},"产":{"docs":{},"生":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"对":{"docs":{},"底":{"docs":{},"层":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{},"在":{"docs":{},"本":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"还":{"docs":{},"不":{"docs":{},"知":{"docs":{},"道":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"这":{"docs":{},"个":{"docs":{},"树":{"docs":{},"并":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"树":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"的":{"docs":{},"根":{"docs":{},"结":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"整":{"docs":{},"颗":{"docs":{},"树":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"针":{"docs":{},"对":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},"作":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"如":{"docs":{},"名":{"docs":{},"称":{"docs":{},"检":{"docs":{},"查":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"等":{"docs":{},"。":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"种":{"docs":{},"基":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"再":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"一":{"docs":{},"次":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"做":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"并":{"docs":{},"以":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},"进":{"docs":{},"行":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"得":{"docs":{},"结":{"docs":{},"构":{"docs":{},"清":{"docs":{},"晰":{"docs":{},"且":{"docs":{},"便":{"docs":{},"于":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"的":{"docs":{},"不":{"docs":{},"同":{"docs":{},"节":{"docs":{},"点":{"docs":{},"调":{"docs":{},"用":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"一":{"docs":{},"种":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}},"的":{"docs":{},"目":{"docs":{},"的":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"树":{"docs":{},"状":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"进":{"docs":{},"行":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"本":{"docs":{},"质":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"逐":{"docs":{},"个":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"结":{"docs":{},"点":{"docs":{},"处":{"docs":{},"理":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}},"速":{"docs":{},"成":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":5.003267973856209}}}},"有":{"docs":{},"所":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"假":{"docs":{},"设":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"知":{"docs":{},"道":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"该":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"。":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"取":{"docs":{},"负":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"查":{"docs":{},"找":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"步":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"不":{"docs":{},"安":{"docs":{},"装":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"。":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},":":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"上":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"有":{"docs":{},"效":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"理":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"。":{"docs":{},"了":{"docs":{},"解":{"docs":{},"程":{"docs":{},"序":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"称":{"docs":{},"为":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"。":{"docs":{},"本":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"重":{"docs":{},"点":{"docs":{},"是":{"docs":{},"掌":{"docs":{},"握":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"将":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"识":{"docs":{},"别":{"docs":{},"出":{"docs":{},"程":{"docs":{},"序":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"保":{"docs":{},"留":{"docs":{},"字":{"docs":{},"、":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"算":{"docs":{},"符":{"docs":{},"、":{"docs":{},"分":{"docs":{},"界":{"docs":{},"符":{"docs":{},"等":{"docs":{},"单":{"docs":{},"词":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"即":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"把":{"docs":{},"识":{"docs":{},"别":{"docs":{},"结":{"docs":{},"果":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"以":{"docs":{},"供":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"是":{"docs":{},"在":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"针":{"docs":{},"对":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"串":{"docs":{},"建":{"docs":{},"立":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},",":{"docs":{},"并":{"docs":{},"对":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"到":{"docs":{},"你":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"里":{"docs":{},",":{"docs":{},"并":{"docs":{},"为":{"docs":{},"你":{"docs":{},"的":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"这":{"docs":{},"里":{"docs":{},"上":{"docs":{},"下":{"docs":{},"载":{"docs":{},"我":{"docs":{},"们":{"docs":{},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"程":{"docs":{},"序":{"docs":{},"包":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}},"让":{"docs":{},"它":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}},",":{"2":{"1":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}},"docs":{},"以":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"标":{"docs":{},"记":{"docs":{},"对":{"docs":{},"这":{"docs":{},"种":{"docs":{},"对":{"docs":{},"计":{"docs":{},"算":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"有":{"docs":{},"贡":{"docs":{},"献":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"假":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"是":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"计":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"输":{"docs":{},"入":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"指":{"docs":{},"令":{"docs":{},"也":{"docs":{},"是":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":3.3357605177993523}},"和":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},")":{"docs":{},"配":{"docs":{},"置":{"docs":{},"好":{"docs":{},"实":{"docs":{},"验":{"docs":{},"环":{"docs":{},"境":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"安":{"docs":{},"装":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"(":{"docs":{},"如":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}},"用":{"docs":{},"户":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"指":{"docs":{},"南":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}},"安":{"docs":{},"装":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}},"】":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"栈":{"docs":{},"传":{"docs":{},"递":{"docs":{},"参":{"docs":{},"数":{"docs":{},"(":{"docs":{},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},":":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"规":{"docs":{},"定":{"docs":{},"a":{"0":{"docs":{},"至":{"docs":{},"a":{"7":{"docs":{},"存":{"docs":{},"放":{"docs":{},"不":{"docs":{},"下":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"递":{"docs":{},"(":{"docs":{},"为":{"docs":{},"了":{"docs":{},"降":{"docs":{},"低":{"docs":{},"大":{"docs":{},"家":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"超":{"docs":{},"过":{"8":{"docs":{},"个":{"docs":{},"的":{"docs":{},"传":{"docs":{},"参":{"docs":{},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"行":{"docs":{},"测":{"docs":{},"试":{"docs":{},")":{"docs":{},"。":{"docs":{},"若":{"docs":{},"参":{"docs":{},"数":{"docs":{},"v":{"docs":{},"i":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"x":{"docs":{},"j":{"docs":{},"中":{"docs":{},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"x":{"docs":{},"j":{"docs":{},"“":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"”":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},"任":{"docs":{},"选":{"docs":{},"一":{"docs":{},"个":{"docs":{},"a":{"0":{"docs":{},"~":{"docs":{},"a":{"7":{"docs":{},"之":{"docs":{},"外":{"docs":{},"的":{"docs":{},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"t":{"docs":{},"k":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"先":{"docs":{},"通":{"docs":{},"过":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"将":{"docs":{},"v":{"docs":{},"i":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"t":{"docs":{},"k":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"“":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"”":{"docs":{},"t":{"docs":{},"k":{"docs":{},"(":{"docs":{},"建":{"docs":{},"议":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"t":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"“":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"”":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"手":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"它":{"docs":{},"无":{"docs":{},"需":{"docs":{},"也":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{},"栈":{"docs":{},"指":{"docs":{},"针":{"docs":{},"s":{"docs":{},"p":{"docs":{},"。":{"docs":{},"在":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"后":{"docs":{},",":{"docs":{},"统":{"docs":{},"一":{"docs":{},"修":{"docs":{},"改":{"docs":{},"s":{"docs":{},"p":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}},"以":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"只":{"docs":{},"需":{"docs":{},"修":{"docs":{},"改":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},":":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"提":{"docs":{},"过":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"析":{"docs":{},"可":{"docs":{},"以":{"docs":{},"算":{"docs":{},"出":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}},"等":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"来":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"参":{"docs":{},"考":{"docs":{},"下":{"docs":{},"面":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},")":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"类":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}},"均":{"docs":{},"为":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"出":{"docs":{},"现":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"!":{"docs":{},"x":{"docs":{},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"时":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"(":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}},"价":{"docs":{},"于":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"将":{"docs":{},"其":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"非":{"docs":{},"零":{"docs":{},"常":{"docs":{},"数":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"而":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}},"是":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"不":{"docs":{},"是":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}},"看":{"docs":{},"到":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"时":{"docs":{},"只":{"docs":{},"能":{"docs":{},"选":{"docs":{},"择":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}},"非":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"后":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"元":{"docs":{},"素":{"docs":{},"值":{"docs":{},"是":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"时":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"的":{"docs":{},"元":{"docs":{},"素":{"docs":{},"个":{"docs":{},"数":{"docs":{},"比":{"docs":{},"数":{"docs":{},"组":{"docs":{},"大":{"docs":{},"小":{"docs":{},"少":{"docs":{},",":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"元":{"docs":{},"素":{"docs":{},"都":{"docs":{},"回":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"为":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}},"docs":{}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"虽":{"docs":{},"然":{"docs":{},"也":{"docs":{},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"语":{"docs":{},"义":{"docs":{},"不":{"docs":{},"难":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"把":{"docs":{},"多":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"组":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"块":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"是":{"docs":{},"一":{"docs":{},"条":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"记":{"docs":{},"得":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"去":{"docs":{},"掉":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"名":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"值":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"分":{"docs":{},"组":{"docs":{},",":{"docs":{},"|":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"选":{"docs":{},"择":{"docs":{},",":{"docs":{},"*":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"逻":{"docs":{},"辑":{"docs":{},"假":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}},"预":{"docs":{},"留":{"docs":{},"一":{"docs":{},"块":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"4":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}},"docs":{}}}}}}}}}}}},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514}},",":{"docs":{},"只":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"无":{"docs":{},"法":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"管":{"docs":{},"用":{"docs":{},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"把":{"docs":{},"它":{"docs":{},"放":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"试":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"标":{"docs":{},"志":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"(":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"计":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},",":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"跑":{"docs":{},"在":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},"输":{"docs":{},"出":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"比":{"docs":{},"看":{"docs":{},"什":{"docs":{},"么":{"docs":{},"文":{"docs":{},"档":{"docs":{},"都":{"docs":{},"有":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},",":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"是":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"入":{"docs":{},",":{"docs":{},"输":{"docs":{},"出":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":10.017857142857142}}}}}},"测":{"docs":{},"试":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"你":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"经":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}},"时":{"docs":{},"并":{"docs":{},"构":{"docs":{},"建":{"docs":{},"它":{"docs":{},",":{"docs":{},"你":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"很":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"因":{"docs":{},"为":{"docs":{},"网":{"docs":{},"络":{"docs":{},"等":{"docs":{},"问":{"docs":{},"题":{"docs":{},"而":{"docs":{},"失":{"docs":{},"败":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"难":{"docs":{},"以":{"docs":{},"解":{"docs":{},"决":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"库":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"是":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"所":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"链":{"docs":{},"接":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"算":{"docs":{},"符":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025}}}}},"通":{"docs":{},"过":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"把":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"例":{"docs":{},"子":{"docs":{},"学":{"docs":{},"习":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":10},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":10},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":10},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":10},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":10},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":10},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":10},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":10},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":10},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":10},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":10},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":10}},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"仅":{"docs":{},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"对":{"docs":{},"应":{"docs":{},"到":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"的":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},":":{"4":{"0":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"把":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"锅":{"docs":{},"甩":{"docs":{},"给":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"这":{"docs":{},"大":{"docs":{},"大":{"docs":{},"提":{"docs":{},"升":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"自":{"docs":{},"由":{"docs":{},"度":{"docs":{},",":{"docs":{},"属":{"docs":{},"于":{"docs":{},"合":{"docs":{},"理":{"docs":{},"分":{"docs":{},"锅":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"将":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"精":{"docs":{},"简":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"为":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"端":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"处":{"docs":{},"理":{"docs":{},"提":{"docs":{},"供":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"能":{"docs":{},"够":{"docs":{},"确":{"docs":{},"保":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"符":{"docs":{},"合":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"为":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"打":{"docs":{},"下":{"docs":{},"坚":{"docs":{},"实":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"确":{"docs":{},"保":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"出":{"docs":{},"现":{"docs":{},"不":{"docs":{},"可":{"docs":{},"预":{"docs":{},"知":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"解":{"docs":{},"析":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"它":{"docs":{},"们":{"docs":{},"在":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},";":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"写":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"常":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"包":{"docs":{},"含":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"调":{"docs":{},"度":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"是":{"docs":{},"指":{"docs":{},"选":{"docs":{},"用":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"如":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"章":{"docs":{},"节":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"里":{"docs":{},")":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"你":{"docs":{},"手":{"docs":{},"动":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}},"好":{"docs":{},"环":{"docs":{},"境":{"docs":{},"以":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"强":{"docs":{},"烈":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"你":{"docs":{},"构":{"docs":{},"建":{"docs":{},"运":{"docs":{},"行":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"初":{"docs":{},"始":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"预":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"较":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"对":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}}}}}}}}},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}},"首":{"docs":{},"先":{"docs":{},"把":{"docs":{},"文":{"docs":{},"件":{"docs":{},"夹":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"docs":{}},"docs":{}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"把":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"标":{"docs":{},"识":{"docs":{},"所":{"docs":{},"有":{"docs":{},"计":{"docs":{},"算":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},")":{"docs":{},"或":{"docs":{},"输":{"docs":{},"出":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"它":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"对":{"docs":{},"从":{"docs":{},"函":{"docs":{},"数":{"docs":{},"外":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"单":{"docs":{},"元":{"docs":{},"有":{"docs":{},"影":{"docs":{},"响":{"docs":{},"(":{"docs":{},"全":{"docs":{},"局":{"docs":{},"内":{"docs":{},"存":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"对":{"docs":{},"函":{"docs":{},"数":{"docs":{},"外":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},"访":{"docs":{},"问":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"参":{"docs":{},"考":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"新":{"docs":{},"增":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"有":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"分":{"docs":{},"配":{"docs":{},"给":{"docs":{},"当":{"docs":{},"前":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{},":":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"\"":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"f":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"i":{"2":{"docs":{},"p":{"0":{"docs":{},"_":{"docs":{},"m":{"2":{"docs":{},"p":{"0":{"docs":{},"\"":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"docs":{}}},"docs":{}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"u":{"docs":{},"n":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}},"(":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},")":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},";":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"代":{"docs":{},"表":{"docs":{},"分":{"docs":{},"号":{"docs":{},"被":{"docs":{},"解":{"docs":{},"析":{"docs":{},"以":{"docs":{},"后":{"docs":{},"会":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}},"=":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"_":{"docs":{},"t":{"docs":{},"k":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"\"":{"docs":{},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.009009009009009009},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747}}},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"4":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"docs":{}}}}}},"$":{"docs":{},"{":{"docs":{},"c":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"}":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"h":{"docs":{},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"h":{"docs":{},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"h":{"docs":{},"\"":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"@":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}},"【":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"o":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"后":{"docs":{},"就":{"docs":{},"能":{"docs":{},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"处":{"docs":{},"理":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"官":{"docs":{},"方":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"它":{"docs":{},"的":{"docs":{},"教":{"docs":{},"程":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"一":{"docs":{},"份":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}},"面":{"docs":{},"的":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"函":{"docs":{},"数":{"docs":{},"为":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"插":{"docs":{},"入":{"docs":{},"上":{"docs":{},"述":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"指":{"docs":{},"令":{"docs":{},"后":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"及":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"常":{"docs":{},"识":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}},"括":{"docs":{},"号":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"法":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}},"下":{"docs":{},"讲":{"docs":{},"述":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"中":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"器":{"docs":{},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}},"产":{"docs":{},"生":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"但":{"docs":{},"我":{"docs":{},"们":{"docs":{},"加":{"docs":{},"上":{"docs":{},"参":{"docs":{},"数":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}},"有":{"docs":{},"时":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"后":{"docs":{},"续":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"告":{"docs":{},"诉":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}},"是":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"是":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"确":{"docs":{},"实":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"了":{"docs":{},",":{"docs":{},"但":{"docs":{},"并":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{},"直":{"docs":{},"观":{"docs":{},":":{"docs":{},"我":{"docs":{},"们":{"docs":{},"一":{"docs":{},"开":{"docs":{},"始":{"docs":{},"学":{"docs":{},"习":{"docs":{},"c":{"docs":{},"或":{"docs":{},"者":{"docs":{},"别":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"讲":{"docs":{},"的":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"二":{"docs":{},"元":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"由":{"docs":{},"两":{"docs":{},"个":{"docs":{},"子":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"组":{"docs":{},"成":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},":":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"c":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}},"为":{"docs":{},"了":{"docs":{},"实":{"docs":{},"现":{"docs":{},"简":{"docs":{},"便":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"这":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"为":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"时":{"docs":{},"候":{"docs":{},"l":{"docs":{},"d":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"另":{"docs":{},"外":{"docs":{},"这":{"docs":{},"里":{"docs":{},"也":{"docs":{},"有":{"docs":{},"(":{"docs":{},"非":{"docs":{},"官":{"docs":{},"方":{"docs":{},"的":{"docs":{},")":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"法":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"方":{"docs":{},"案":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"并":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"块":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"是":{"docs":{},"指":{"docs":{},"一":{"docs":{},"段":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"序":{"docs":{},"列":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"的":{"docs":{},"划":{"docs":{},"分":{"docs":{},"算":{"docs":{},"法":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"单":{"docs":{},":":{"docs":{},"从":{"docs":{},"头":{"docs":{},"到":{"docs":{},"尾":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"当":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"情":{"docs":{},"况":{"docs":{},"时":{"docs":{},"结":{"docs":{},"束":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},",":{"docs":{},"并":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"建":{"docs":{},"立":{"docs":{},"过":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"便":{"docs":{},"捷":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{},"各":{"docs":{},"种":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"也":{"docs":{},"简":{"docs":{},"化":{"docs":{},"了":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"标":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}},"础":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"模":{"docs":{},"式":{"docs":{},"都":{"docs":{},"在":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}},"于":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"思":{"docs":{},"路":{"docs":{},":":{"docs":{},"针":{"docs":{},"对":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"三":{"docs":{},"个":{"docs":{},"特":{"docs":{},"点":{"docs":{},",":{"docs":{},"已":{"docs":{},"经":{"docs":{},"求":{"docs":{},"出":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}},"复":{"docs":{},"制":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"合":{"docs":{},"并":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"(":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"法":{"docs":{},")":{"docs":{},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"其":{"docs":{},"他":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"你":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}},"然":{"docs":{},"遵":{"docs":{},"循":{"docs":{},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},"据":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}},"助":{"docs":{},"教":{"docs":{},"在":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}},"强":{"docs":{},"烈":{"docs":{},"建":{"docs":{},"议":{"docs":{},"使":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"每":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"在":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"本":{"docs":{},"身":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}},"里":{"docs":{},"已":{"docs":{},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"如":{"docs":{},"何":{"docs":{},"进":{"docs":{},"行":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},"如":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}},"的":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425}}}}},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"作":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"但":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"号":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"必":{"docs":{},"须":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"左":{"docs":{},"值":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"检":{"docs":{},"查":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"号":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"只":{"docs":{},"能":{"docs":{},"是":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"。":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"内":{"docs":{},"部":{"docs":{},"除":{"docs":{},"了":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"进":{"docs":{},"入":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"加":{"docs":{},"进":{"docs":{},"该":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"举":{"docs":{},"例":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"示":{"docs":{},"例":{"docs":{},"改":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"对":{"docs":{},"应":{"docs":{},"框":{"docs":{},"架":{"docs":{},"源":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294}}}}}}}}}}}}},"阶":{"docs":{},"段":{"docs":{},"分":{"docs":{},"工":{"docs":{},"建":{"docs":{},"议":{"docs":{},":":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"前":{"docs":{},"端":{"docs":{},",":{"docs":{},"两":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"负":{"docs":{},"责":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"设":{"docs":{},"计":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"举":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"将":{"docs":{},"局":{"docs":{},"部":{"docs":{},"的":{"docs":{},"几":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{},"更":{"docs":{},"优":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"的":{"docs":{},"一":{"docs":{},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"并":{"docs":{},"非":{"docs":{},"特":{"docs":{},"指":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},"此":{"docs":{},"类":{"docs":{},"优":{"docs":{},"化":{"docs":{},"较":{"docs":{},"为":{"docs":{},"琐":{"docs":{},"碎":{"docs":{},",":{"docs":{},"建":{"docs":{},"议":{"docs":{},"按":{"docs":{},"需":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.00980392156862745}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"它":{"docs":{},"使":{"docs":{},"得":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"进":{"docs":{},"入":{"docs":{},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"钥":{"docs":{},"添":{"docs":{},"加":{"docs":{},"到":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}},",":{"docs":{},"将":{"docs":{},"对":{"docs":{},"我":{"docs":{},"们":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}},"当":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},",":{"docs":{},"由":{"docs":{},"此":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"并":{"docs":{},"压":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},",":{"docs":{},"将":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"栈":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"示":{"docs":{},"例":{"docs":{},",":{"docs":{},"讲":{"docs":{},"述":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},",":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"其":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"受":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"树":{"docs":{},"输":{"docs":{},"入":{"docs":{},",":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"账":{"docs":{},"号":{"docs":{},"上":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"将":{"docs":{},"其":{"docs":{},"克":{"docs":{},"隆":{"docs":{},"下":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}}}}},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"你":{"docs":{},"的":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}},"*":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.0211864406779661},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513},"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.03409090909090909}},"、":{"docs":{},"整":{"docs":{},"除":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}},"h":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},";":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"(":{"docs":{},"i":{"3":{"2":{"docs":{},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.015306122448979591}}},"[":{"3":{"docs":{},"]":{"docs":{},"*":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.007653061224489796}}}}},"docs":{}}},"docs":{}},"docs":{}}}},"|":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.03954802259887006},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.013513513513513514},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.029411764705882353},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.034782608695652174},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.07547169811320754},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.035398230088495575},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.056338028169014086},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.05319148936170213},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.07317073170731707},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.029411764705882353},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.08783783783783784},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05405405405405406},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.078125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.08888888888888889},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.08130081300813008},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0375},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.08494208494208494},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.08846153846153847},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.10480349344978165},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.102880658436214},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.006762468300929839},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.07718120805369127},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.12627551020408162}},"|":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}}}},"—":{"docs":{},"—":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.00847457627118644},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.005649717514124294},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},";":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"后":{"docs":{},"端":{"docs":{},"中":{"docs":{},",":{"docs":{},"将":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}},"种":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"类":{"docs":{},"型":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"对":{"docs":{},"应":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"成":{"docs":{},"员":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"的":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"“":{"docs":{},"相":{"docs":{},"互":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},":":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"的":{"docs":{},"是":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"存":{"docs":{},"就":{"docs":{},"行":{"docs":{},"。":{"docs":{},"这":{"docs":{},"篇":{"docs":{},"论":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"并":{"docs":{},"改":{"docs":{},"进":{"docs":{},"了":{"docs":{},"前":{"docs":{},"人":{"docs":{},"的":{"docs":{},"类":{"docs":{},"似":{"docs":{},"优":{"docs":{},"化":{"docs":{},"方":{"docs":{},"案":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"添":{"docs":{},"加":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"降":{"docs":{},"低":{"docs":{},"实":{"docs":{},"验":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"部":{"docs":{},"分":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"据":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"完":{"docs":{},"成":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"设":{"docs":{},"计":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"出":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},"加":{"docs":{},"法":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"载":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"操":{"docs":{},"作":{"docs":{},":":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"加":{"docs":{},"载":{"docs":{},"它":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"访":{"docs":{},"问":{"docs":{},"它":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"可":{"docs":{},"能":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"际":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"交":{"docs":{},"一":{"docs":{},"份":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"单":{"docs":{},"独":{"docs":{},"为":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"括":{"docs":{},"起":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"内":{"docs":{},"生":{"docs":{},"效":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}},"是":{"docs":{},"让":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"遵":{"docs":{},"循":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"还":{"docs":{},"不":{"docs":{},"够":{"docs":{},",":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"也":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"不":{"docs":{},"像":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"一":{"docs":{},"样":{"docs":{},"保":{"docs":{},"留":{"docs":{},"了":{"docs":{},"那":{"docs":{},"么":{"docs":{},"多":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"至":{"docs":{},"于":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"一":{"docs":{},"样":{"docs":{},"底":{"docs":{},"层":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"完":{"docs":{},"整":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},"可":{"docs":{},"能":{"docs":{},"长":{"docs":{},"这":{"docs":{},"样":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}},"将":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"完":{"docs":{},"成":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.013392857142857142}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"顶":{"docs":{},"向":{"docs":{},"下":{"docs":{},"地":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"够":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"(":{"docs":{},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"求":{"docs":{},"请":{"docs":{},"看":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"的":{"docs":{},"首":{"docs":{},"页":{"docs":{},")":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"回":{"docs":{},"顾":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},"后":{"docs":{},",":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"应":{"docs":{},"该":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"将":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}},"后":{"docs":{},"端":{"docs":{},"(":{"docs":{},"两":{"docs":{},"周":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}},"竞":{"docs":{},"赛":{"docs":{},"第":{"docs":{},"二":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"替":{"docs":{},"代":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"docs":{},"试":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}},"备":{"docs":{},"问":{"docs":{},"题":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}},"将":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"放":{"docs":{},"到":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"两":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"相":{"docs":{},"加":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"入":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},":":{"docs":{},"所":{"docs":{},"有":{"docs":{},"传":{"docs":{},"参":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"0":{"docs":{},"~":{"docs":{},"a":{"7":{"docs":{},")":{"docs":{},"都":{"docs":{},"是":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"放":{"docs":{},"到":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"中":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}},"每":{"docs":{},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"对":{"docs":{},"应":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"上":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"后":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"提":{"docs":{},"升":{"docs":{},"为":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"数":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"改":{"docs":{},"为":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"再":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"并":{"docs":{},"获":{"docs":{},"取":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"再":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"从":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"变":{"docs":{},"量":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"插":{"docs":{},"入":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"上":{"docs":{},"对":{"docs":{},"象":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},")":{"docs":{},"处":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}},",":{"docs":{},"届":{"docs":{},"时":{"docs":{},"再":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"其":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"法":{"docs":{},")":{"docs":{},"。":{"docs":{},"如":{"docs":{},"上":{"docs":{},"例":{"docs":{},"所":{"docs":{},"示":{"docs":{},",":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}},"知":{"docs":{},"道":{"docs":{},")":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"它":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"用":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}},"会":{"docs":{},"有":{"docs":{},"多":{"docs":{},"函":{"docs":{},"数":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{},"所":{"docs":{},"以":{"docs":{},"现":{"docs":{},"在":{"docs":{},"关":{"docs":{},"于":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"讨":{"docs":{},"论":{"docs":{},",":{"docs":{},"就":{"docs":{},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"标":{"docs":{},"签":{"docs":{},"(":{"docs":{},"可":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{},"地":{"docs":{},"址":{"docs":{},")":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"比":{"docs":{},"较":{"docs":{},"特":{"docs":{},"殊":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"二":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"符":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"在":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"经":{"docs":{},"历":{"docs":{},"中":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},"已":{"docs":{},"经":{"docs":{},"有":{"docs":{},"了":{"docs":{},"直":{"docs":{},"观":{"docs":{},"的":{"docs":{},"理":{"docs":{},"解":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"用":{"docs":{},"例":{"docs":{},"子":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"解":{"docs":{},"释":{"docs":{},"一":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"在":{"docs":{},"规":{"docs":{},"则":{"docs":{},"中":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"解":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"执":{"docs":{},"行":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"码":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"图":{"docs":{},"定":{"docs":{},"义":{"docs":{},"及":{"docs":{},"优":{"docs":{},"化":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}},"分":{"docs":{},"析":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":10.005102040816327}}}}},"段":{"docs":{},";":{"docs":{},".":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}},"组":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"在":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"1":{"docs":{},")":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"都":{"docs":{},"基":{"docs":{},"本":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"无":{"docs":{},"法":{"docs":{},"用":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"一":{"docs":{},"段":{"docs":{},"连":{"docs":{},"续":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"地":{"docs":{},"址":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{},"其":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"值":{"docs":{},"和":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"3":{"2":{"docs":{},"位":{"docs":{},"整":{"docs":{},"数":{"docs":{},"存":{"docs":{},"储":{"docs":{},",":{"docs":{},"故":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"的":{"docs":{},"下":{"docs":{},"标":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"分":{"docs":{},"为":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"参":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"是":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},",":{"docs":{},"回":{"docs":{},"想":{"docs":{},"函":{"docs":{},"数":{"docs":{},"一":{"docs":{},"节":{"docs":{},"的":{"docs":{},"传":{"docs":{},"参":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}},"标":{"docs":{},"签":{"docs":{},"用":{"docs":{},"来":{"docs":{},"标":{"docs":{},"记":{"docs":{},"一":{"docs":{},"段":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"从":{"docs":{},"底":{"docs":{},"层":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"角":{"docs":{},"度":{"docs":{},"来":{"docs":{},"看":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"本":{"docs":{},"质":{"docs":{},"上":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"且":{"docs":{},"往":{"docs":{},"往":{"docs":{},"是":{"docs":{},"某":{"docs":{},"一":{"docs":{},"段":{"docs":{},"连":{"docs":{},"续":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"标":{"docs":{},"签":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},":":{"docs":{},"作":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"如":{"docs":{},"上":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305}}},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}},"是":{"docs":{},"整":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{},"不":{"docs":{},"满":{"docs":{},"足":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"(":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.013824884792626729}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"准":{"docs":{},"草":{"docs":{},"案":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"保":{"docs":{},"持":{"docs":{},"一":{"docs":{},"致":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"中":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}},"为":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"正":{"docs":{},"式":{"docs":{},"发":{"docs":{},"布":{"docs":{},"前":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"版":{"docs":{},"草":{"docs":{},"案":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"者":{"docs":{},"之":{"docs":{},"一":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"相":{"docs":{},"比":{"docs":{},"只":{"docs":{},"有":{"docs":{},"表":{"docs":{},"述":{"docs":{},"上":{"docs":{},"的":{"docs":{},"差":{"docs":{},"异":{"docs":{},")":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}}}}}},"识":{"docs":{},"符":{"docs":{},"(":{"docs":{},"用":{"docs":{},"于":{"docs":{},"表":{"docs":{},"示":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"记":{"docs":{},"而":{"docs":{},"且":{"docs":{},"存":{"docs":{},"在":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"语":{"docs":{},"句":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"行":{"docs":{},"号":{"docs":{},"时":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"能":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"间":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}},"步":{"docs":{},"骤":{"docs":{},"是":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"再":{"docs":{},"一":{"docs":{},"次":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"并":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},"有":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"关":{"docs":{},"键":{"docs":{},"点":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"选":{"docs":{},"择":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}},"与":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}},"器":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"的":{"docs":{},"生":{"docs":{},"成":{"docs":{},"是":{"docs":{},"后":{"docs":{},"端":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"不":{"docs":{},"会":{"docs":{},"与":{"docs":{},"目":{"docs":{},"标":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"非":{"docs":{},"常":{"docs":{},"相":{"docs":{},"似":{"docs":{},",":{"docs":{},"一":{"docs":{},"方":{"docs":{},"面":{"docs":{},"它":{"docs":{},"们":{"docs":{},"所":{"docs":{},"用":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"不":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"另":{"docs":{},"外":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"也":{"docs":{},"会":{"docs":{},"省":{"docs":{},"略":{"docs":{},"掉":{"docs":{},"与":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"若":{"docs":{},"干":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{},"这":{"docs":{},"要":{"docs":{},"求":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"将":{"docs":{},"i":{"docs":{},"r":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"时":{"docs":{},"处":{"docs":{},"理":{"docs":{},"好":{"docs":{},"这":{"docs":{},"些":{"docs":{},"缺":{"docs":{},"失":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"架":{"docs":{},"构":{"docs":{},"相":{"docs":{},"关":{"docs":{},"优":{"docs":{},"化":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}},"录":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"中":{"docs":{},"输":{"docs":{},"出":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"到":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"搜":{"docs":{},"索":{"docs":{},"路":{"docs":{},"径":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"前":{"docs":{},"不":{"docs":{},"管":{"docs":{},"是":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"还":{"docs":{},"是":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"不":{"docs":{},"管":{"docs":{},"是":{"docs":{},"标":{"docs":{},"量":{"docs":{},"还":{"docs":{},"是":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{},"存":{"docs":{},"有":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"情":{"docs":{},"况":{"docs":{},"确":{"docs":{},"定":{"docs":{},"返":{"docs":{},"回":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"请":{"docs":{},"注":{"docs":{},"意":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},":":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913}}},"3":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}},"docs":{}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"构":{"docs":{},"建":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}},":":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"待":{"docs":{},"编":{"docs":{},"译":{"docs":{},"程":{"docs":{},"序":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"是":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"检":{"docs":{},"查":{"docs":{},"出":{"docs":{},"符":{"docs":{},"号":{"docs":{},"定":{"docs":{},"义":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"确":{"docs":{},"定":{"docs":{},"不":{"docs":{},"同":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"总":{"docs":{},"是":{"docs":{},"和":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},"、":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"等":{"docs":{},")":{"docs":{},"与":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"符":{"docs":{},"号":{"docs":{},"解":{"docs":{},"析":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{},"当":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"或":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"符":{"docs":{},"号":{"docs":{},"引":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"能":{"docs":{},"够":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"找":{"docs":{},"到":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"或":{"docs":{},"者":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"核":{"docs":{},"心":{"docs":{},"工":{"docs":{},"具":{"docs":{},"是":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"(":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"管":{"docs":{},"理":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"在":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"新":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},"(":{"docs":{},"如":{"docs":{},"函":{"docs":{},"数":{"docs":{},"、":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"退":{"docs":{},"出":{"docs":{},"该":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"它":{"docs":{},"。":{"docs":{},"在":{"docs":{},"解":{"docs":{},"析":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"确":{"docs":{},"保":{"docs":{},"每":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"在":{"docs":{},"其":{"docs":{},"可":{"docs":{},"见":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"内":{"docs":{},"被":{"docs":{},"正":{"docs":{},"确":{"docs":{},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"指":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"地":{"docs":{},",":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"时":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"测":{"docs":{},"例":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"型":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}},"检":{"docs":{},"查":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},":":{"docs":{},"各":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"否":{"docs":{},"类":{"docs":{},"型":{"docs":{},"正":{"docs":{},"确":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"确":{"docs":{},"保":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"在":{"docs":{},"算":{"docs":{},"术":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"会":{"docs":{},"确":{"docs":{},"保":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"作":{"docs":{},"用":{"docs":{},"于":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"效":{"docs":{},"避":{"docs":{},"免":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"如":{"docs":{},"对":{"docs":{},"整":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"除":{"docs":{},"以":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"有":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"与":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"加":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{},"时":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"整":{"docs":{},"数":{"docs":{},"提":{"docs":{},"升":{"docs":{},"为":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"数":{"docs":{},"。":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"隐":{"docs":{},"式":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"类":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"但":{"docs":{},"必":{"docs":{},"须":{"docs":{},"遵":{"docs":{},"循":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"具":{"docs":{},"体":{"docs":{},"指":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},",":{"docs":{},"但":{"docs":{},"可":{"docs":{},"以":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"达":{"docs":{},"到":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"这":{"docs":{},"里":{"docs":{},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"转":{"docs":{},"换":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"中":{"docs":{},"增":{"docs":{},"加":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"希":{"docs":{},"望":{"docs":{},"大":{"docs":{},"家":{"docs":{},"一":{"docs":{},"定":{"docs":{},"要":{"docs":{},"对":{"docs":{},"着":{"docs":{},"代":{"docs":{},"码":{"docs":{},"看":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"处":{"docs":{},"理":{"docs":{},"它":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"对":{"docs":{},"应":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}},"里":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"适":{"docs":{},"合":{"docs":{},"后":{"docs":{},"端":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"一":{"docs":{},"种":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"(":{"docs":{},"也":{"docs":{},"称":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"结":{"docs":{},"果":{"docs":{},"是":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"跟":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}},"器":{"docs":{},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"将":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"个":{"docs":{},"的":{"docs":{},"标":{"docs":{},"记":{"docs":{},"(":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"与":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"是":{"docs":{},"将":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"一":{"docs":{},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},")":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"代":{"docs":{},"表":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"小":{"docs":{},"单":{"docs":{},"位":{"docs":{},",":{"docs":{},"如":{"docs":{},"关":{"docs":{},"键":{"docs":{},"词":{"docs":{},"、":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"等":{"docs":{},"。":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"会":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"空":{"docs":{},"格":{"docs":{},"、":{"docs":{},"注":{"docs":{},"释":{"docs":{},"等":{"docs":{},"非":{"docs":{},"必":{"docs":{},"要":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"此":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"检":{"docs":{},"测":{"docs":{},"(":{"docs":{},"如":{"docs":{},"非":{"docs":{},"法":{"docs":{},"字":{"docs":{},"符":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}},"规":{"docs":{},"则":{"docs":{},":":{"docs":{},"定":{"docs":{},"义":{"docs":{},"词":{"docs":{},"法":{"docs":{},"单":{"docs":{},"元":{"docs":{},"(":{"docs":{},"如":{"docs":{},"关":{"docs":{},"键":{"docs":{},"字":{"docs":{},"、":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"符":{"docs":{},"号":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"讨":{"docs":{},"论":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}},"介":{"docs":{},"绍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"理":{"docs":{},"论":{"docs":{},"。":{"docs":{},"大":{"docs":{},"家":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"求":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"会":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"某":{"docs":{},"点":{"docs":{},"之":{"docs":{},"后":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"就":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"你":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"docs":{},"成":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"代":{"docs":{},"码":{"docs":{},"更":{"docs":{},"精":{"docs":{},"简":{"docs":{},",":{"docs":{},"更":{"docs":{},"易":{"docs":{},"于":{"docs":{},"调":{"docs":{},"试":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"一":{"docs":{},"个":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"化":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"进":{"docs":{},"行":{"docs":{},"两":{"docs":{},"遍":{"docs":{},"扫":{"docs":{},"描":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"完":{"docs":{},"成":{"docs":{},"以":{"docs":{},"下":{"docs":{},"的":{"docs":{},"检":{"docs":{},"查":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"把":{"docs":{},"带":{"docs":{},"有":{"docs":{},"类":{"docs":{},"型":{"docs":{},"标":{"docs":{},"注":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},";":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},"端":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"。":{"docs":{},"很":{"docs":{},"容":{"docs":{},"易":{"docs":{},"写":{"docs":{},"出":{"docs":{},"递":{"docs":{},"归":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},":":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"上":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"传":{"docs":{},"参":{"docs":{},",":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"后":{"docs":{},"把":{"docs":{},"s":{"docs":{},"p":{"docs":{},"改":{"docs":{},"回":{"docs":{},"来":{"docs":{},"(":{"docs":{},"清":{"docs":{},"除":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"传":{"docs":{},"递":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"修":{"docs":{},"改":{"docs":{},",":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"辟":{"docs":{},"出":{"docs":{},"一":{"docs":{},"块":{"docs":{},"连":{"docs":{},"续":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"这":{"docs":{},"块":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"返":{"docs":{},"回":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"后":{"docs":{},"续":{"docs":{},"如":{"docs":{},"有":{"docs":{},"对":{"docs":{},"数":{"docs":{},"组":{"docs":{},"中":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"基":{"docs":{},"于":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"操":{"docs":{},"作":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"隐":{"docs":{},"式":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"一":{"docs":{},"步":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"进":{"docs":{},"行":{"docs":{},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}},"地":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"实":{"docs":{},"现":{"docs":{},"符":{"docs":{},"合":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"要":{"docs":{},"求":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.002824858757062147},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"不":{"docs":{},"只":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"种":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},"函":{"docs":{},"数":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}},"已":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"特":{"docs":{},"性":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":10}}}}}}}}},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"特":{"docs":{},"性":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}},"成":{"docs":{},"为":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"着":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.04}}}}}}}}}}}}}}},"的":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.08}}}}},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"选":{"docs":{},"择":{"docs":{},"了":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"求":{"docs":{},"值":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"每":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"还":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}},"有":{"docs":{},"其":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"且":{"docs":{},"是":{"docs":{},"它":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"子":{"docs":{},"集":{"docs":{},"。":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"也":{"docs":{},"有":{"docs":{},"其":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"且":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"子":{"docs":{},"集":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"两":{"docs":{},"种":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}},"看":{"docs":{},"作":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"定":{"docs":{},"义":{"docs":{},"三":{"docs":{},"个":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"标":{"docs":{},"签":{"docs":{},":":{"docs":{},"b":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}},"要":{"docs":{},"自":{"docs":{},"带":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"在":{"docs":{},"示":{"docs":{},"例":{"docs":{},"里":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"反":{"docs":{},"复":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"即":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},")":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"其":{"docs":{},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"括":{"docs":{},"号":{"docs":{},"中":{"docs":{},"的":{"docs":{},"三":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"/":{"docs":{},"声":{"docs":{},"明":{"docs":{},"自":{"docs":{},"左":{"docs":{},"向":{"docs":{},"右":{"docs":{},"依":{"docs":{},"次":{"docs":{},"为":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}},"准":{"docs":{},"备":{"docs":{},"报":{"docs":{},"告":{"docs":{},"。":{"docs":{"docs/step1/intro.html":{"ref":"docs/step1/intro.html","tf":0.03125},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.016339869281045753},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.06741573033707865},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.030927835051546393},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.007352941176470588},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.075},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.043478260869565216},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.09278350515463918},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.04424778761061947},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.09154929577464789},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.06382978723404255},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.09146341463414634},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.058823529411764705},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.12162162162162163},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.04054054054054054},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.09375},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.07317073170731707},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.075},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.08108108108108109},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.08076923076923077},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.03076923076923077},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.09170305676855896},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.041666666666666664},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.08641975308641975},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.005917159763313609},"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},":":{"docs":{},"=":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"`":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"_":{"docs":{},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"_":{"docs":{},"_":{"docs":{},"`":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"_":{"docs":{},"`":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},"能":{"docs":{},"正":{"docs":{},"常":{"docs":{},"编":{"docs":{},"译":{"docs":{},"吗":{"docs":{},",":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"要":{"docs":{},"求":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"完":{"docs":{},"全":{"docs":{},"由":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"要":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"大":{"docs":{},"家":{"docs":{},"来":{"docs":{},"说":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"跳":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"和":{"docs":{},"挑":{"docs":{},"战":{"docs":{},"性":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"大":{"docs":{},"家":{"docs":{},"能":{"docs":{},"够":{"docs":{},"尽":{"docs":{},"早":{"docs":{},"开":{"docs":{},"始":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{},"左":{"docs":{},"值":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"是":{"docs":{},"指":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"左":{"docs":{},"值":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"其":{"docs":{},"求":{"docs":{},"值":{"docs":{},"在":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"每":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}}}}}}}}}}}}}}}}}}},"便":{"docs":{},"是":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}}}}},"为":{"docs":{},"满":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}},"向":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"插":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"全":{"docs":{},"局":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"并":{"docs":{},"被":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{},"将":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"绑":{"docs":{},"定":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"参":{"docs":{},"数":{"docs":{},"。":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"类":{"docs":{},"中":{"docs":{},"的":{"docs":{},"的":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"变":{"docs":{},"量":{"docs":{},"记":{"docs":{},"录":{"docs":{},"了":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},":":{"docs":{},"具":{"docs":{},"体":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"r":{"docs":{},"a":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"相":{"docs":{},"关":{"docs":{},"实":{"docs":{},"现":{"docs":{},"在":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"。":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"现":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"已":{"docs":{},"经":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"处":{"docs":{},"理":{"docs":{},"好":{"docs":{},"了":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"插":{"docs":{},"入":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"传":{"docs":{},"参":{"docs":{},",":{"docs":{},"而":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"传":{"docs":{},"参":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"又":{"docs":{},"和":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"在":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"的":{"docs":{},"传":{"docs":{},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},":":{"docs":{},"假":{"docs":{},"设":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"形":{"docs":{},"参":{"docs":{},"对":{"docs":{},"应":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"x":{"1":{"docs":{},"到":{"docs":{},"x":{"docs":{},"n":{"docs":{},"。":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"开":{"docs":{},"头":{"docs":{},"生":{"docs":{},"成":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}},"字":{"docs":{},"节":{"docs":{},"流":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}},"(":{"docs":{},"提":{"docs":{},"示":{"1":{"docs":{},":":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"由":{"docs":{},"高":{"docs":{},"地":{"docs":{},"址":{"docs":{},"向":{"docs":{},"低":{"docs":{},"地":{"docs":{},"址":{"docs":{},"延":{"docs":{},"伸":{"docs":{},";":{"docs":{},"提":{"docs":{},"示":{"2":{"docs":{},":":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"内":{"docs":{},"存":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"是":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"库":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"一":{"docs":{},"点":{"docs":{},"。":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}},"与":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"当":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"提":{"docs":{},"取":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"读":{"docs":{},"入":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"流":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"它":{"docs":{},"首":{"docs":{},"先":{"docs":{},"会":{"docs":{},"被":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"且":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"位":{"docs":{},"是":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"非":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}},"都":{"docs":{},"非":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"然":{"docs":{},",":{"docs":{},"它":{"docs":{},"是":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"的":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"只":{"docs":{},"有":{"docs":{},"这":{"docs":{},"些":{"docs":{},"产":{"docs":{},"生":{"docs":{},"式":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"解":{"docs":{},"析":{"docs":{},"成":{"docs":{},"正":{"docs":{},"确":{"docs":{},"或":{"docs":{},"者":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"所":{"docs":{},"以":{"docs":{},"如":{"docs":{},"果":{"docs":{},"想":{"docs":{},"基":{"docs":{},"于":{"docs":{},"这":{"docs":{},"个":{"docs":{},"规":{"docs":{},"范":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"就":{"docs":{},"必":{"docs":{},"须":{"docs":{},"告":{"docs":{},"诉":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"工":{"docs":{},"具":{"docs":{},"这":{"docs":{},"些":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"是":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"前":{"docs":{},"还":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"先":{"docs":{},"被":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}},"一":{"docs":{},"条":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"广":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"就":{"docs":{},"囊":{"docs":{},"括":{"docs":{},"了":{"docs":{},"这":{"docs":{},"所":{"docs":{},"有":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"的":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"更":{"docs":{},"清":{"docs":{},"晰":{"docs":{},"简":{"docs":{},"单":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"时":{"docs":{},",":{"docs":{},"“":{"docs":{},"不":{"docs":{},"可":{"docs":{},"以":{"docs":{},"定":{"docs":{},"义":{"docs":{},"新":{"docs":{},"变":{"docs":{},"量":{"docs":{},"a":{"docs":{},"”":{"docs":{},"就":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"当":{"docs":{},"前":{"docs":{},"“":{"docs":{},"可":{"docs":{},"以":{"docs":{},"获":{"docs":{},"取":{"docs":{},"变":{"docs":{},"量":{"docs":{},"a":{"docs":{},"的":{"docs":{},"值":{"docs":{},"”":{"docs":{},",":{"docs":{},"反":{"docs":{},"之":{"docs":{},"亦":{"docs":{},"然":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"“":{"docs":{},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},"和":{"docs":{},"“":{"docs":{},"获":{"docs":{},"取":{"docs":{},"变":{"docs":{},"量":{"docs":{},"”":{"docs":{},"的":{"docs":{},"检":{"docs":{},"查":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"遇":{"docs":{},"到":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"一":{"docs":{},"个":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"数":{"docs":{},"组":{"docs":{},"长":{"docs":{},"度":{"docs":{},"较":{"docs":{},"长":{"docs":{},"时":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"位":{"docs":{},"置":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"条":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"语":{"docs":{},"句":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"让":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"长":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"内":{"docs":{},"置":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"恢":{"docs":{},"复":{"docs":{},"一":{"docs":{},"个":{"docs":{},"从":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"删":{"docs":{},"除":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"当":{"docs":{},"前":{"docs":{},"它":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"少":{"docs":{},"于":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}},"2":{"docs":{},"删":{"docs":{},"除":{"docs":{},"的":{"docs":{},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"它":{"docs":{},"连":{"docs":{},"接":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"边":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"足":{"docs":{},"够":{"docs":{},"幸":{"docs":{},"运":{"docs":{},",":{"docs":{},"与":{"docs":{},"它":{"docs":{},"相":{"docs":{},"邻":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"点":{"docs":{},"没":{"docs":{},"有":{"docs":{},"用":{"docs":{},"完":{"docs":{},"所":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"以":{"docs":{},"上":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"函":{"docs":{},"数":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"不":{"docs":{},"变":{"docs":{},"时":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"未":{"docs":{},"标":{"docs":{},"记":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"认":{"docs":{},"为":{"docs":{},"是":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326},"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"之":{"docs":{},"后":{"docs":{},"用":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"2":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"先":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"简":{"docs":{},"单":{"docs":{},"了":{"docs":{},"解":{"docs":{},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.01358695652173913}}}}},"j":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},")":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"标":{"docs":{},"量":{"docs":{},"x":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"另":{"docs":{},"外":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"之":{"docs":{},"后":{"docs":{},"对":{"docs":{},"x":{"docs":{},"的":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"通":{"docs":{},"过":{"docs":{},"_":{"docs":{},"t":{"2":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"y":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{},"下":{"docs":{},"标":{"docs":{},"和":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"其":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"其":{"docs":{},"值":{"docs":{},"。":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"指":{"docs":{},"令":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"写":{"docs":{},"起":{"docs":{},"来":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"捷":{"docs":{},";":{"docs":{},"这":{"docs":{},"里":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"基":{"docs":{},"地":{"docs":{},"址":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{},"和":{"docs":{},"下":{"docs":{},"标":{"1":{"docs":{},",":{"docs":{},"构":{"docs":{},"造":{"docs":{},"出":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}},"docs":{}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"哪":{"docs":{},"怕":{"docs":{},"是":{"docs":{},"局":{"docs":{},"部":{"docs":{},"标":{"docs":{},"量":{"docs":{},",":{"docs":{},"也":{"docs":{},"要":{"docs":{},"用":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"指":{"docs":{},"令":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"就":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"来":{"docs":{},"对":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"进":{"docs":{},"行":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"快":{"docs":{},"速":{"docs":{},"入":{"docs":{},"门":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"思":{"docs":{},"考":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"题":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}},"方":{"docs":{},"法":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"内":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}},"中":{"docs":{},"先":{"docs":{},"将":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"加":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"底":{"docs":{},",":{"docs":{},"再":{"docs":{},"往":{"docs":{},"上":{"docs":{},"才":{"docs":{},"是":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"解":{"docs":{},"析":{"docs":{},"树":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"便":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}},"全":{"docs":{},"局":{"docs":{},"优":{"docs":{},"化":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"减":{"docs":{},"少":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"差":{"docs":{},"异":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"短":{"docs":{},"路":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"大":{"docs":{},"家":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"短":{"docs":{},"路":{"docs":{},"性":{"docs":{},"质":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"语":{"docs":{},"言":{"docs":{},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"多":{"docs":{},"次":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"段":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"这":{"docs":{},"四":{"docs":{},"个":{"docs":{},"集":{"docs":{},"合":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"中":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"满":{"docs":{},"足":{"docs":{},"的":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"述":{"docs":{},"两":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"定":{"docs":{},"义":{"docs":{},"指":{"docs":{},"令":{"docs":{},"了":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"指":{"docs":{},"令":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"o":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"码":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"标":{"docs":{},"记":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"1":{"docs":{},"和":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"2":{"docs":{},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"是":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"存":{"docs":{},"放":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"以":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"i":{"docs":{},"r":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"描":{"docs":{},"述":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"三":{"docs":{},"种":{"docs":{},"特":{"docs":{},"点":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"可":{"docs":{},"行":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},":":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}}},"个":{"docs":{},"原":{"docs":{},"因":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"求":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"从":{"docs":{},"头":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"力":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"将":{"docs":{},"原":{"docs":{},"先":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"更":{"docs":{},"好":{"docs":{},"的":{"docs":{},"解":{"docs":{},"决":{"docs":{},"方":{"docs":{},"案":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"两":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"结":{"docs":{},"合":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"优":{"docs":{},"化":{"docs":{},"等":{"docs":{},"级":{"docs":{},"不":{"docs":{},"同":{"docs":{},"会":{"docs":{},"有":{"docs":{},"数":{"docs":{},"百":{"docs":{},"个":{"docs":{},"不":{"docs":{},"等":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"更":{"docs":{},"新":{"docs":{},"的":{"docs":{},"办":{"docs":{},"法":{"docs":{},"求":{"docs":{},"出":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"原":{"docs":{},"则":{"docs":{},",":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"几":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"对":{"docs":{},"应":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"而":{"docs":{},"“":{"docs":{},"塞":{"docs":{},"不":{"docs":{},"下":{"docs":{},"”":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"里":{"docs":{},"面":{"docs":{},"(":{"docs":{},"因":{"docs":{},"为":{"docs":{},"访":{"docs":{},"问":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"比":{"docs":{},"访":{"docs":{},"问":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"多":{"docs":{},"得":{"docs":{},"多":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"应":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"一":{"docs":{},"直":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"不":{"docs":{},"要":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"都":{"docs":{},"属":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},":":{"docs":{},"文":{"docs":{},"件":{"docs":{},"级":{"docs":{},"和":{"docs":{},"块":{"docs":{},"级":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"在":{"docs":{},"块":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"则":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"其":{"docs":{},"声":{"docs":{},"明":{"docs":{},"所":{"docs":{},"属":{"docs":{},"的":{"docs":{},"块":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},";":{"docs":{},"否":{"docs":{},"则":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"在":{"docs":{},"文":{"docs":{},"件":{"docs":{},"级":{"docs":{},"(":{"docs":{},"全":{"docs":{},"局":{"docs":{},")":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"后":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"直":{"docs":{},"接":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"不":{"docs":{},"只":{"docs":{},"包":{"docs":{},"括":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"流":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"综":{"docs":{},"上":{"docs":{},"所":{"docs":{},"述":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"上":{"docs":{},"述":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}},"。":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"值":{"docs":{},"、":{"docs":{},"或":{"docs":{},"者":{"docs":{},"运":{"docs":{},"算":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"称":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"以":{"docs":{},"及":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"其":{"docs":{},"它":{"docs":{},"东":{"docs":{},"西":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"修":{"docs":{},"改":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"孩":{"docs":{},"子":{"docs":{},"类":{"docs":{},"型":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{},"原":{"docs":{},"先":{"docs":{},"表":{"docs":{},"示":{"docs":{},"整":{"docs":{},"个":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"单":{"docs":{},"独":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"类":{"docs":{},"节":{"docs":{},"点":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"类":{"docs":{},"似":{"docs":{},"地":{"docs":{},"实":{"docs":{},"现":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}},"读":{"docs":{},"内":{"docs":{},"容":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},"上":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"按":{"docs":{},"照":{"docs":{},"其":{"docs":{},"大":{"docs":{},"小":{"docs":{},"和":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},"了":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"函":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801}},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},"前":{"docs":{},":":{"docs":{},"假":{"docs":{},"设":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"实":{"docs":{},"参":{"docs":{},"位":{"docs":{},"于":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"x":{"1":{"docs":{},"至":{"docs":{},"x":{"docs":{},"n":{"docs":{},"中":{"docs":{},"。":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"新":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"t":{"1":{"docs":{},"到":{"docs":{},"t":{"docs":{},"n":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"按":{"docs":{},"照":{"docs":{},"m":{"docs":{},"v":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0045045045045045045}},"指":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"不":{"docs":{},"难":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"本":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}},"docs":{}},"docs":{}}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125}}}}}}}}}}}}}}},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"都":{"docs":{},"是":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0022522522522522522}}}},"逻":{"docs":{},"辑":{"docs":{},"真":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}},"其":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"段":{"docs":{},",":{"docs":{},"前":{"docs":{},"者":{"docs":{},"零":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"后":{"docs":{},"者":{"docs":{},"须":{"docs":{},"指":{"docs":{},"定":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"但":{"docs":{},"观":{"docs":{},"察":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"发":{"docs":{},"现":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"省":{"docs":{},"略":{"docs":{},"。":{"docs":{},"省":{"docs":{},"略":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"自":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.005434782608695652}}}}}},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}},"'":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.032679738562091505}}}},"(":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.044444444444444446},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02702702702702703},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026923076923076925},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03056768558951965},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02880658436213992},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.02127659574468085},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.044444444444444446},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.024390243902439025},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.025},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02702702702702703},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026923076923076925},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03056768558951965},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02880658436213992},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}}}},";":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.031914893617021274},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.02702702702702703},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.07777777777777778},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.032520325203252036},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.03088803088803089},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.03076923076923077},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.034934497816593885},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.037037037037037035},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"f":{"docs":{},"'":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"{":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"}":{"docs":{},"'":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"~":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}},"~":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}},"|":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}},"&":{"docs":{},"&":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}},"=":{"docs":{},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}},":":{"docs":{},"'":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"?":{"docs":{},"'":{"docs":{"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.022222222222222223},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.007722007722007722},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007692307692307693},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008733624454148471},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00823045267489712}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}},"]":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},")":{"docs":{},"*":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236}}},"+":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}},"?":{"docs":{},"(":{"docs":{},"(":{"docs":{},"'":{"docs":{},"[":{"docs":{},"'":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"'":{"docs":{},"]":{"docs":{},"'":{"docs":{},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"+":{"docs":{},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"/":{"docs":{},"'":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"成":{"docs":{},"员":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"方":{"docs":{},"法":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"绩":{"docs":{},"占":{"docs":{},"比":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}},"整":{"docs":{},"型":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"数":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"毕":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"就":{"docs":{},"成":{"docs":{},"功":{"docs":{},"建":{"docs":{},"立":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"又":{"docs":{},"是":{"docs":{},"由":{"docs":{},"多":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"和":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"程":{"docs":{},"序":{"docs":{},"定":{"docs":{},"义":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},":":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"体":{"docs":{},"思":{"docs":{},"路":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"节":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"进":{"docs":{},"行":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"先":{"docs":{},"根":{"docs":{},"据":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"的":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"再":{"docs":{},"填":{"docs":{},"充":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"考":{"docs":{},"虑":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"所":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}},"先":{"docs":{},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{},"。":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}},"时":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"参":{"docs":{},"数":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"常":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"将":{"docs":{},"其":{"docs":{},"全":{"docs":{},"部":{"docs":{},"加":{"docs":{},"入":{"docs":{},"常":{"docs":{},"量":{"docs":{},"表":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"把":{"docs":{},"这":{"docs":{},"些":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"封":{"docs":{},"装":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"类":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"就":{"docs":{},"得":{"docs":{},"到":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"加":{"docs":{},"法":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"下":{"docs":{},"标":{"docs":{},"对":{"docs":{},"应":{"docs":{},"到":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"地":{"docs":{},"址":{"docs":{},"?":{"docs":{},"对":{"docs":{},"一":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"下":{"docs":{},"标":{"docs":{},"的":{"docs":{},"常":{"docs":{},"数":{"docs":{},"倍":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"[":{"0":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"1":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"]":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"b":{"docs":{},"n":{"docs":{},"f":{"docs":{},"]":{"docs":{},"(":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"w":{"docs":{},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"/":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"u":{"docs":{},"s":{"docs":{},"%":{"docs":{},"e":{"2":{"docs":{},"%":{"8":{"0":{"docs":{},"%":{"9":{"3":{"docs":{},"n":{"docs":{},"a":{"docs":{},"u":{"docs":{},"r":{"docs":{},"_":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0016906170752324597}}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"1":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"3":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"6":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"7":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"docs":{}}},"r":{"0":{"docs":{},",":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}},"]":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{}}},"小":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"打":{"docs":{},"头":{"docs":{},"的":{"docs":{},"是":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}},"于":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028}}}},"就":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"成":{"docs":{},"新":{"docs":{},"的":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}},"是":{"docs":{},"指":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}},"一":{"docs":{},"种":{"docs":{},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}},"很":{"docs":{},"容":{"docs":{},"易":{"docs":{},"通":{"docs":{},"过":{"docs":{},"增":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"非":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},",":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"这":{"docs":{},"些":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}},"遗":{"docs":{},"憾":{"docs":{},",":{"docs":{},"上":{"docs":{},"述":{"docs":{},"程":{"docs":{},"序":{"docs":{},"并":{"docs":{},"不":{"docs":{},"符":{"docs":{},"合":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}},"范":{"docs":{},"围":{"docs":{},"内":{"docs":{},"的":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}},"非":{"docs":{},"负":{"docs":{},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"运":{"docs":{},"算":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"发":{"docs":{},"生":{"docs":{},"越":{"docs":{},"界":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"范":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":10.02247191011236},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":10.025},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":10.02061855670103},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":10.014084507042254},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":10.012195121951219},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":10.013513513513514},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":10.010416666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":10.008130081300813},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":10.007722007722007},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":10.007692307692308},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":10.008733624454148},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":10.008230452674898},"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}},"则":{"docs":{},":":{"docs":{},"定":{"docs":{},"义":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},"各":{"docs":{},"种":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"模":{"docs":{},"式":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}},"记":{"docs":{},"号":{"docs":{},"书":{"docs":{},"写":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"采":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}},"录":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"情":{"docs":{},"况":{"docs":{},"(":{"docs":{},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},":":{"docs":{},"你":{"docs":{},"也":{"docs":{},"许":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"中":{"docs":{},"记":{"docs":{},"录":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"调":{"docs":{},"用":{"docs":{},"过":{"docs":{},"其":{"docs":{},"它":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"减":{"docs":{},"少":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"r":{"docs":{},"a":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"零":{"docs":{},"或":{"docs":{},"一":{"docs":{},"次":{"docs":{},"。":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"多":{"docs":{},"次":{"docs":{},",":{"docs":{},"+":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"×":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787}}},"√":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.020618556701030927},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.017391304347826087},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.017699115044247787}}},"、":{"docs":{},"按":{"docs":{},"位":{"docs":{},"取":{"docs":{},"反":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}},"乘":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044}}}},"改":{"docs":{},"进":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"支":{"docs":{},"持":{"docs":{},"本":{"docs":{},"节":{"docs":{},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"测":{"docs":{},"试":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.013513513513513514},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.011111111111111112},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.0125},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.013888888888888888}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}},"稍":{"docs":{},"微":{"docs":{},"一":{"docs":{},"提":{"docs":{},",":{"docs":{},"关":{"docs":{},"于":{"docs":{},"按":{"docs":{},"位":{"docs":{},"取":{"docs":{},"反":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"补":{"docs":{},"码":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}}},"与":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"一":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"加":{"docs":{},"法":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"参":{"docs":{},"考":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"?":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}},"“":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},"”":{"docs":{},"?":{"docs":{},"举":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"已":{"docs":{},"知":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"a":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},"[":{"3":{"docs":{},"]":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"如":{"docs":{},"果":{"docs":{},"该":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"节":{"docs":{},"点":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"a":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{},",":{"docs":{},"则":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"是":{"docs":{},"a":{"docs":{},"、":{"docs":{},"a":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{},",":{"docs":{},"则":{"docs":{},"不":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"值":{"docs":{},"而":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"看":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"给":{"docs":{},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"分":{"docs":{},"支":{"docs":{},"入":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"前":{"docs":{},"端":{"docs":{},"变":{"docs":{},"量":{"docs":{},"到":{"docs":{},"i":{"docs":{},"r":{"docs":{},"的":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"表":{"docs":{},",":{"docs":{},"找":{"docs":{},"到":{"docs":{},"该":{"docs":{},"节":{"docs":{},"点":{"docs":{},"所":{"docs":{},"表":{"docs":{},"示":{"docs":{},"的":{"docs":{},"前":{"docs":{},"端":{"docs":{},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"再":{"docs":{},"看":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"带":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"举":{"docs":{},"一":{"docs":{},"个":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"。":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"的":{"docs":{},"访":{"docs":{},"存":{"docs":{},"指":{"docs":{},"令":{"docs":{},"支":{"docs":{},"持":{"docs":{},"基":{"docs":{},"址":{"docs":{},"+":{"docs":{},"索":{"docs":{},"引":{"docs":{},"*":{"4":{"docs":{},"的":{"docs":{},"寻":{"docs":{},"址":{"docs":{},"模":{"docs":{},"式":{"docs":{},"(":{"docs":{},"类":{"docs":{},"似":{"docs":{},"x":{"8":{"6":{"docs":{},")":{"docs":{},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"序":{"docs":{},"列":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"又":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},"含":{"docs":{},"义":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.00477326968973747},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.004618937644341801},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.013888888888888888}}}},"子":{"docs":{},"两":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},"为":{"docs":{},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}},"句":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"带":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"语":{"docs":{},"法":{"docs":{},"二":{"docs":{},"义":{"docs":{},"性":{"docs":{},":":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"作":{"docs":{},"为":{"docs":{},"子":{"docs":{},"项":{"docs":{},"目":{"docs":{},"进":{"docs":{},"行":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"的":{"docs":{},"新":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"名":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"便":{"docs":{},"起":{"docs":{},",":{"docs":{},"但":{"docs":{},"必":{"docs":{},"须":{"docs":{},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},",":{"docs":{},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"可":{"docs":{},"以":{"docs":{},"解":{"docs":{},"析":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"括":{"docs":{},"号":{"docs":{},"和":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"结":{"docs":{},"点":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"结":{"docs":{},"点":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"一":{"docs":{},"种":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"条":{"docs":{},"件":{"docs":{},"语":{"docs":{},"句":{"docs":{},"、":{"docs":{},"循":{"docs":{},"环":{"docs":{},"、":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"等":{"docs":{},"。":{"docs":{},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"怎":{"docs":{},"么":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"总":{"docs":{},"结":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}},"的":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"现":{"docs":{},"在":{"docs":{},"利":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"树":{"docs":{},",":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"我":{"docs":{},"们":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"。":{"docs":{},"至":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"从":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.0055147058823529415}}}}}},"我":{"docs":{},"们":{"docs":{},"开":{"docs":{},"始":{"docs":{},"正":{"docs":{},"式":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},"如":{"docs":{},"何":{"docs":{},"在":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"所":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"看":{"docs":{},"作":{"docs":{},"一":{"docs":{},"个":{"docs":{},"整":{"docs":{},"体":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"可":{"docs":{},"能":{"docs":{},"遇":{"docs":{},"到":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"将":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"这":{"docs":{},"里":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"好":{"docs":{},"奇":{"docs":{},",":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"这":{"docs":{},"里":{"docs":{},"多":{"docs":{},"了":{"docs":{},"如":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"吧":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.003676470588235294}},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"修":{"docs":{},"改":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}}}}}}}},"起":{"docs":{},"来":{"docs":{},"很":{"docs":{},"像":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"最":{"docs":{},"大":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"在":{"docs":{},"于":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"感":{"docs":{},"觉":{"docs":{},"很":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"办":{"docs":{},"?":{"docs":{},"没":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"急":{"docs":{},"着":{"docs":{},"往":{"docs":{},"后":{"docs":{},"学":{"docs":{},",":{"docs":{},"先":{"docs":{},"休":{"docs":{},"息":{"docs":{},"一":{"docs":{},"下":{"docs":{},",":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"用":{"docs":{},"到":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"继":{"docs":{},"续":{"docs":{},"看":{"docs":{},"上":{"docs":{},"述":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"先":{"docs":{},"关":{"docs":{},"注":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}}}}}}}}}}}}},"承":{"docs":{},"自":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.001838235294117647}}},"例":{"docs":{},"如":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045}},":":{"docs":{},"执":{"docs":{},"行":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.008130081300813009}}}}},"考":{"docs":{},"虑":{"docs":{},"下":{"docs":{},"面":{"docs":{},"这":{"docs":{},"段":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}},"对":{"docs":{},"于":{"docs":{},"如":{"docs":{},"下":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/contest/midend/cp.html":{"ref":"docs/contest/midend/cp.html","tf":0.012195121951219513}}}}}}}}}},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"转":{"docs":{},"化":{"docs":{},"为":{"docs":{},"i":{"docs":{},"r":{"docs":{},"后":{"docs":{},"可":{"docs":{},"能":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"i":{"docs":{},"r":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},":":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}},"的":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.002551020408163265}}}},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"也":{"docs":{},"都":{"docs":{},"适":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}},"灰":{"docs":{},"色":{"docs":{},"部":{"docs":{},"分":{"docs":{},"表":{"docs":{},"示":{"docs":{},"相":{"docs":{},"对":{"docs":{},"上":{"docs":{},"一":{"docs":{},"节":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0040650406504065045},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}},"新":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"、":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"、":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"和":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.008695652173913044},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}}}}}}}}}}}}}}}}},"“":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"”":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"了":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"”":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},"需":{"docs":{},"要":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"计":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"如":{"docs":{},"加":{"docs":{},"、":{"docs":{},"减":{"docs":{},"、":{"docs":{},"乘":{"docs":{},"、":{"docs":{},"除":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855}}}}}}},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}},"意":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.009009009009009009}}}}}}},"味":{"docs":{},"着":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"没":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}}}}}}}}}},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":10.018867924528301}}}}}},"是":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"关":{"docs":{},"系":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},"*":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"+":{"docs":{},"高":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"1":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"最":{"docs":{},"接":{"docs":{},"近":{"docs":{},"的":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}}}}}}}}},"化":{"docs":{},"器":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"非":{"docs":{},"特":{"docs":{},"别":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"子":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"求":{"docs":{},"值":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"是":{"docs":{},"未":{"docs":{},"规":{"docs":{},"定":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"语":{"docs":{},"句":{"docs":{},"外":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"不":{"docs":{},"含":{"docs":{},"任":{"docs":{},"何":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"出":{"docs":{},"口":{"docs":{},"语":{"docs":{},"句":{"docs":{},"外":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"不":{"docs":{},"含":{"docs":{},"任":{"docs":{},"何":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"了":{"docs":{},"分":{"docs":{},"配":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"如":{"docs":{},"何":{"docs":{},"访":{"docs":{},"问":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"与":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.008849557522123894}},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{},"。":{"docs":{},"可":{"docs":{},"详":{"docs":{},"见":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"4":{"docs":{},"。":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}},"docs":{}}}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"会":{"docs":{},"麻":{"docs":{},"烦":{"docs":{},"一":{"docs":{},"点":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004366812227074236},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856},"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.02028740490278952}},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.00253592561284869}},")":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"恭":{"docs":{},"喜":{"docs":{},"你":{"docs":{},"!":{"docs":{},"到":{"docs":{},"目":{"docs":{},"前":{"docs":{},"为":{"docs":{},"止":{"docs":{},",":{"docs":{},"你":{"docs":{},"已":{"docs":{},"经":{"docs":{},"成":{"docs":{},"功":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.011235955056179775}}}}}}}},"给":{"docs":{},"出":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.009345794392523364}}},"当":{"docs":{},"前":{"docs":{},"函":{"docs":{},"数":{"docs":{},"新":{"docs":{},"增":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"入":{"docs":{},"口":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"条":{"docs":{},"件":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"b":{"docs":{},"表":{"docs":{},"示":{"docs":{},"i":{"docs":{},"f":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"之":{"docs":{},"后":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"判":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"换":{"docs":{},"言":{"docs":{},"之":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"对":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"做":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"两":{"docs":{},"个":{"docs":{},"以":{"docs":{},"任":{"docs":{},"意":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},",":{"docs":{},"再":{"docs":{},"计":{"docs":{},"算":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"帧":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.010638297872340425},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"运":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"建":{"docs":{},"立":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"在":{"docs":{},"退":{"docs":{},"出":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"对":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"非":{"docs":{},"常":{"docs":{},"重":{"docs":{},"要":{"docs":{},"。":{"docs":{},"那":{"docs":{},"么":{"docs":{},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"如":{"docs":{},"何":{"docs":{},"建":{"docs":{},"立":{"docs":{},"和":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"呢":{"docs":{},"?":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"代":{"docs":{},"码":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"用":{"docs":{},"于":{"docs":{},"建":{"docs":{},"立":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"那":{"docs":{},"段":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"称":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"与":{"docs":{},"销":{"docs":{},"毁":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}},"概":{"docs":{},"念":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"区":{"docs":{},"域":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"于":{"docs":{},"存":{"docs":{},"储":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"需":{"docs":{},"要":{"docs":{},"模":{"docs":{},"仿":{"docs":{},"新":{"docs":{},"建":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"对":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"指":{"docs":{},"针":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"确":{"docs":{},"定":{"docs":{},"和":{"docs":{},"最":{"docs":{},"终":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714},"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}},",":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"配":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"位":{"docs":{},"于":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}},"了":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"均":{"docs":{},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.006802721088435374}},"(":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.013605442176870748}}}}}}}}}}},"无":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}},"法":{"docs":{},"找":{"docs":{},"到":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}},"貌":{"docs":{},"似":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"工":{"docs":{},"程":{"docs":{},"?":{"docs":{},"实":{"docs":{},"际":{"docs":{},"不":{"docs":{},"然":{"docs":{},",":{"docs":{},"确":{"docs":{},"定":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"维":{"docs":{},"护":{"docs":{},"好":{"docs":{},"两":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"为":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"所":{"docs":{},"指":{"docs":{},"派":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"个":{"docs":{},"结":{"docs":{},"果":{"docs":{},"本":{"docs":{},"身":{"docs":{},"并":{"docs":{},"非":{"docs":{},"左":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"问":{"docs":{},"题":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"归":{"docs":{},"约":{"docs":{},")":{"docs":{},",":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"对":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"含":{"docs":{},"有":{"docs":{},"大":{"docs":{},"量":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"获":{"docs":{},"得":{"docs":{},"最":{"docs":{},"优":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"方":{"docs":{},"案":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"将":{"docs":{},"耗":{"docs":{},"费":{"docs":{},"可":{"docs":{},"观":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"时":{"docs":{},"间":{"docs":{},"用":{"docs":{},"于":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"到":{"docs":{},"执":{"docs":{},"行":{"docs":{},"效":{"docs":{},"率":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"一":{"docs":{},"般":{"docs":{},"采":{"docs":{},"用":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"的":{"docs":{},"?":{"docs":{},"请":{"docs":{},"简":{"docs":{},"要":{"docs":{},"描":{"docs":{},"述":{"docs":{},"。":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"(":{"docs":{},"局":{"docs":{},"部":{"docs":{},")":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{},"代":{"docs":{},"码":{"docs":{},"不":{"docs":{},"同":{"docs":{},"地":{"docs":{},"方":{"docs":{},"可":{"docs":{},"能":{"docs":{},"标":{"docs":{},"识":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}}}},"随":{"docs":{},"之":{"docs":{},"而":{"docs":{},"来":{"docs":{},"一":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},"是":{"docs":{},":":{"docs":{},"不":{"docs":{},"同":{"docs":{},"变":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"重":{"docs":{},"名":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.014705882352941176}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}},"入":{"docs":{},"栈":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}},"则":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"内":{"docs":{},"层":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"里":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}}}}}}}}}}}}}},"空":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003401360544217687}},"集":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"划":{"docs":{},"分":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},"块":{"docs":{},"之":{"docs":{},"前":{"docs":{},"就":{"docs":{},"要":{"docs":{},"具":{"docs":{},"有":{"docs":{},"的":{"docs":{},"了":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"程":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"集":{"docs":{},"合":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"获":{"docs":{},"得":{"docs":{},"了":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}},"取":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"更":{"docs":{},"详":{"docs":{},"细":{"docs":{},"的":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"论":{"docs":{},"文":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"的":{"docs":{},"附":{"docs":{},"录":{"docs":{},"有":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"该":{"docs":{},"方":{"docs":{},"程":{"docs":{},"说":{"docs":{},"的":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"把":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"所":{"docs":{},"有":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}},"中":{"docs":{},"去":{"docs":{},"掉":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}},"以":{"docs":{},"后":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"地":{"docs":{},"计":{"docs":{},"算":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"每":{"docs":{},"个":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"源":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}},"是":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"其":{"docs":{},"所":{"docs":{},"有":{"docs":{},"后":{"docs":{},"继":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"在":{"docs":{},"定":{"docs":{},"值":{"docs":{},"前":{"docs":{},"就":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"了":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"中":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"到":{"docs":{},"但":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"定":{"docs":{},"值":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"被":{"docs":{},"定":{"docs":{},"值":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"的":{"docs":{},"定":{"docs":{},"值":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"前":{"docs":{},"提":{"docs":{},"下":{"docs":{},"我":{"docs":{},"们":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"从":{"docs":{},"后":{"docs":{},"往":{"docs":{},"前":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"每":{"docs":{},"条":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"指":{"docs":{},"令":{"docs":{},"求":{"docs":{},"出":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"上":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"并":{"docs":{},"集":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}},",":{"docs":{},"以":{"docs":{},"下":{"docs":{},"是":{"docs":{},"求":{"docs":{},"解":{"docs":{},"的":{"docs":{},"伪":{"docs":{},"代":{"docs":{},"码":{"docs":{},":":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}},":":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306}}}}}}}},"在":{"docs":{},"离":{"docs":{},"开":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"入":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"之":{"docs":{},"前":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"那":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"么":{"docs":{},"是":{"docs":{},"空":{"docs":{},"集":{"docs":{},",":{"docs":{},"要":{"docs":{},"么":{"docs":{},"只":{"docs":{},"含":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"仿":{"docs":{},"照":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"悬":{"docs":{},"吊":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"能":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"这":{"docs":{},"个":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"设":{"docs":{},"置":{"docs":{},"产":{"docs":{},"生":{"docs":{},"式":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"选":{"docs":{},"择":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"够":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"我":{"docs":{},"们":{"docs":{},"生":{"docs":{},"成":{"docs":{},"解":{"docs":{},"析":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"工":{"docs":{},"具":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"若":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}},"被":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"输":{"docs":{},"出":{"docs":{},"到":{"docs":{},"终":{"docs":{},"端":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"前":{"docs":{},",":{"docs":{},"经":{"docs":{},"历":{"docs":{},"了":{"docs":{},"第":{"docs":{},"二":{"docs":{},"次":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"确":{"docs":{},"定":{"docs":{},"这":{"docs":{},"一":{"docs":{},"关":{"docs":{},"系":{"docs":{},"并":{"docs":{},"不":{"docs":{},"容":{"docs":{},"易":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"经":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"了":{"docs":{},"两":{"docs":{},"次":{"docs":{},"。":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"写":{"docs":{},"法":{"docs":{},"应":{"docs":{},"该":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"_":{"docs":{},"l":{"2":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}},",":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"块":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}},"docs":{}}}},"目":{"docs":{},"标":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}},"语":{"docs":{},"句":{"docs":{},"应":{"docs":{},"该":{"docs":{},"怎":{"docs":{},"么":{"docs":{},"定":{"docs":{},"义":{"docs":{},"?":{"docs":{},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"用":{"docs":{},"于":{"docs":{},"实":{"docs":{},"现":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},",":{"docs":{},"如":{"docs":{},"循":{"docs":{},"环":{"docs":{},"和":{"docs":{},"条":{"docs":{},"件":{"docs":{},"跳":{"docs":{},"转":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"结":{"docs":{},"合":{"docs":{},"标":{"docs":{},"签":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.009216589861751152}}}}},"默":{"docs":{},"认":{"docs":{},"在":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}}}}},"初":{"docs":{},"始":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}},"双":{"docs":{},"目":{"docs":{},"标":{"docs":{},")":{"docs":{},"更":{"docs":{},"合":{"docs":{},"理":{"docs":{},"?":{"docs":{},"为":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"(":{"docs":{},"言":{"docs":{},"之":{"docs":{},"有":{"docs":{},"理":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},"分":{"docs":{},"离":{"docs":{},")":{"docs":{},"?":{"docs":{},"写":{"docs":{},"一":{"docs":{},"些":{"docs":{},"你":{"docs":{},"认":{"docs":{},"为":{"docs":{},"两":{"docs":{},"种":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"案":{"docs":{},"各":{"docs":{},"自":{"docs":{},"的":{"docs":{},"优":{"docs":{},"劣":{"docs":{},"之":{"docs":{},"处":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"妥":{"docs":{},"善":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},":":{"docs":{},"根":{"docs":{},"据":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"在":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"中":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"单":{"docs":{},"独":{"docs":{},"增":{"docs":{},"添":{"docs":{},"了":{"docs":{},"将":{"docs":{},"a":{"0":{"docs":{},"复":{"docs":{},"制":{"docs":{},"到":{"docs":{},"目":{"docs":{},"标":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"无":{"docs":{},"需":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"目":{"docs":{},"标":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"a":{"0":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"拿":{"docs":{},"到":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"一":{"docs":{},"直":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"一":{"docs":{},"直":{"docs":{},"都":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{},"我":{"docs":{},"们":{"docs":{},"自":{"docs":{},"己":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"会":{"docs":{},"看":{"docs":{},"到":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}},"造":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"常":{"docs":{},"用":{"docs":{},"的":{"docs":{},"算":{"docs":{},"法":{"docs":{},"是":{"docs":{},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"docs":{},"为":{"docs":{},":":{"docs":{},"插":{"docs":{},"入":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}},"称":{"docs":{},"为":{"docs":{},"调":{"docs":{},"用":{"docs":{},"序":{"docs":{},"列":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}}}}}}}}}},"要":{"docs":{},"做":{"docs":{},"什":{"docs":{},"么":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0023094688221709007}}}}},"求":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"满":{"docs":{},"足":{"docs":{},"单":{"docs":{},"一":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"但":{"docs":{},"并":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"如":{"docs":{},"此":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"前":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"将":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"按":{"docs":{},"照":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.005376344086021506}}}}}}}},"合":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003861003861003861}}}},"并":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"合":{"docs":{},"并":{"docs":{},"后":{"docs":{},"的":{"docs":{},"点":{"docs":{},"也":{"docs":{},"会":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{},"在":{"docs":{},"步":{"docs":{},"骤":{"1":{"docs":{},"被":{"docs":{},"删":{"docs":{},"除":{"docs":{},"就":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"合":{"docs":{},"并":{"docs":{},"后":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"段":{"docs":{},"或":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}},"里":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}},"中":{"docs":{},"。":{"docs":{},"举":{"docs":{},"例":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"下":{"docs":{},"面":{"docs":{},"的":{"docs":{},"示":{"docs":{},"例":{"docs":{},"将":{"docs":{},"未":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{},",":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"已":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"未":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"则":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}}},"访":{"docs":{},"问":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"它":{"docs":{},"也":{"docs":{},"不":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.015873015873015872}}}}}}}},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"节":{"docs":{},"点":{"docs":{},"之":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"存":{"docs":{},"有":{"docs":{},"其":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"后":{"docs":{},"续":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"以":{"docs":{},"下":{"docs":{},"分":{"docs":{},"两":{"docs":{},"种":{"docs":{},"情":{"docs":{},"况":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},":":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"伪":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"哪":{"docs":{},"些":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}}}}}}}}}}}},"写":{"docs":{},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"存":{"docs":{},"放":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.006024096385542169}}}},"储":{"docs":{},"操":{"docs":{},"作":{"docs":{},":":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}},"甚":{"docs":{},"至":{"docs":{},"可":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0038461538461538464}}}}}}}},"连":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"都":{"docs":{},"写":{"docs":{},"不":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}}}}}}}}}}},"难":{"docs":{},"度":{"docs":{},"不":{"docs":{},"大":{"docs":{},",":{"docs":{},"但":{"docs":{},"有":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"让":{"docs":{},"我":{"docs":{},"们":{"docs":{},"能":{"docs":{},"够":{"docs":{},"写":{"docs":{},"很":{"docs":{},"多":{"docs":{},"有":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"了":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"1":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.015384615384615385}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"索":{"docs":{},"引":{"docs":{},"基":{"docs":{},"底":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}},"运":{"docs":{},"算":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}}}}}},"采":{"docs":{},"用":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006944444444444444}},"上":{"docs":{},"述":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"x":{"docs":{},"处":{"docs":{},"于":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}},"多":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},"按":{"docs":{},"照":{"docs":{},"类":{"docs":{},"似":{"docs":{},"一":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"内":{"docs":{},"部":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},"括":{"docs":{},"号":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00411522633744856}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"举":{"docs":{},"例":{"docs":{},"说":{"docs":{},"明":{"docs":{},":":{"docs":{},"对":{"docs":{},"于":{"docs":{},"某":{"docs":{},"几":{"docs":{},"个":{"docs":{},"测":{"docs":{},"例":{"docs":{},",":{"docs":{},"你":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"本":{"docs":{},"节":{"docs":{},"实":{"docs":{},"验":{"docs":{},"之":{"docs":{},"后":{"docs":{},"编":{"docs":{},"译":{"docs":{},"出":{"docs":{},"什":{"docs":{},"么":{"docs":{},"?":{"docs":{},"它":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"被":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"?":{"docs":{"docs/step13/intro.html":{"ref":"docs/step13/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"表":{"docs":{},"示":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"共":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"已":{"docs":{},"经":{"docs":{},"不":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"如":{"docs":{},"是":{"docs":{},"则":{"docs":{},"把":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"随":{"docs":{},"机":{"docs":{},"选":{"docs":{},"择":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"把":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"上":{"docs":{},"(":{"docs":{},"这":{"docs":{},"叫":{"docs":{},"做":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"把":{"docs":{},"它":{"docs":{},"关":{"docs":{},"联":{"docs":{},"到":{"docs":{},"当":{"docs":{},"前":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"回":{"docs":{},"顾":{"docs":{},":":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}},"图":{"docs":{},"染":{"docs":{},"色":{"docs":{},"问":{"docs":{},"题":{"docs":{},":":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}},"容":{"docs":{},"易":{"docs":{},"发":{"docs":{},"现":{"docs":{},",":{"docs":{},"至":{"docs":{},"少":{"docs":{},"需":{"docs":{},"要":{"3":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},"docs":{}}}}}}}}}},"寻":{"docs":{},"找":{"docs":{},"图":{"docs":{},"中":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"连":{"docs":{},"接":{"docs":{},"了":{"docs":{},"少":{"docs":{},"于":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}},"尽":{"docs":{},"量":{"docs":{},"减":{"docs":{},"少":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"个":{"docs":{},"数":{"docs":{},",":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"或":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"少":{"docs":{},"的":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"点":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}},"种":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"染":{"docs":{},"色":{"docs":{},"(":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"点":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"的":{"docs":{},"颜":{"docs":{},"色":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"为":{"docs":{},"它":{"docs":{},"选":{"docs":{},"择":{"docs":{},"一":{"docs":{},"个":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"这":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"它":{"docs":{},"和":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"。":{"docs":{},"别":{"docs":{},"担":{"docs":{},"心":{"docs":{},",":{"docs":{},"这":{"docs":{},"不":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"算":{"docs":{},"法":{"docs":{},"失":{"docs":{},"败":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"会":{"docs":{},"使":{"docs":{},"得":{"docs":{},"这":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"保":{"docs":{},"存":{"docs":{},"与":{"docs":{},"恢":{"docs":{},"复":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"溢":{"docs":{},"出":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"统":{"docs":{},"计":{"docs":{},"与":{"docs":{"docs/step13/example.html":{"ref":"docs/step13/example.html","tf":0.00423728813559322}}}}},"仅":{"docs":{},"完":{"docs":{},"成":{"docs":{},"竞":{"docs":{},"赛":{"docs":{},"第":{"docs":{},"一":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"(":{"docs":{},"达":{"docs":{},"到":{"docs":{},"课":{"docs":{},"程":{"docs":{},"基":{"docs":{},"础":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"求":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"静":{"docs":{},"态":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"被":{"docs":{},"单":{"docs":{},"一":{"docs":{},"赋":{"docs":{},"值":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"仅":{"docs":{},"被":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"一":{"docs":{},"次":{"docs":{},")":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"中":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"和":{"docs":{},"后":{"docs":{},"端":{"docs":{},"优":{"docs":{},"化":{"docs":{},"(":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},")":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}},"了":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"性":{"docs":{},"能":{"docs":{},"测":{"docs":{},"试":{"docs":{},",":{"docs":{},"将":{"docs":{},"根":{"docs":{},"据":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"进":{"docs":{},"行":{"docs":{},"评":{"docs":{},"分":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}},"评":{"docs":{},"分":{"docs":{},"方":{"docs":{},"案":{"docs":{},":":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"你":{"docs":{},"们":{"docs":{},"进":{"docs":{},"行":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"每":{"docs":{},"个":{"docs":{},"人":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"如":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"、":{"docs":{},"类":{"docs":{},"型":{"docs":{},"不":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"等":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}},",":{"docs":{},"这":{"docs":{},"与":{"docs":{},"比":{"docs":{},"赛":{"docs":{},"要":{"docs":{},"求":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"想":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"请":{"docs":{},"告":{"docs":{},"知":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"测":{"docs":{},"试":{"docs":{},":":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}},"因":{"docs":{},"如":{"docs":{},"此":{"docs":{},",":{"docs":{},"许":{"docs":{},"多":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"优":{"docs":{},"化":{"docs":{},"算":{"docs":{},"法":{"docs":{},"都":{"docs":{},"建":{"docs":{},"立":{"docs":{},"在":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"实":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"相":{"docs":{},"对":{"docs":{},"差":{"docs":{},"值":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"恒":{"docs":{},"定":{"docs":{},"的":{"docs":{},"(":{"docs":{},"如":{"docs":{},"比":{"docs":{},"较":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}},"附":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{},"中":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"部":{"docs":{},"分":{"docs":{},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},",":{"docs":{},"以":{"docs":{"docs/contest/intro.html":{"ref":"docs/contest/intro.html","tf":0.004464285714285714}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"关":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}},"\\":{"docs":{},"t":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"]":{"docs":{},"+":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}},"│":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.015215553677092139}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.009298393913778529}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0084530853761623}}}}},"利":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}},"宏":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}},"忽":{"docs":{},"略":{"docs":{},"空":{"docs":{},"格":{"docs":{},"和":{"docs":{},"换":{"docs":{},"行":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"规":{"docs":{},"则":{"docs":{},":":{"docs":{},"通":{"docs":{},"常":{"docs":{},"用":{"docs":{},"来":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"空":{"docs":{},"格":{"docs":{},"、":{"docs":{},"换":{"docs":{},"行":{"docs":{},"等":{"docs":{},"空":{"docs":{},"白":{"docs":{},"字":{"docs":{},"符":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"种":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"教":{"docs":{},"程":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}},"添":{"docs":{},"加":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}},"一":{"docs":{},"个":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"库":{"docs":{},"目":{"docs":{},"录":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}},"终":{"docs":{},"于":{"docs":{},",":{"docs":{},"在":{"docs":{},"上":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"环":{"docs":{},"境":{"docs":{},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"着":{"docs":{},"手":{"docs":{},"开":{"docs":{},"始":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"了":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"开":{"docs":{},"始":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"脚":{"docs":{},"本":{"docs":{},"会":{"docs":{},"从":{"docs":{},"官":{"docs":{},"方":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"行":{"docs":{},"使":{"docs":{},"用":{"docs":{},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"该":{"docs":{},"方":{"docs":{},"法":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"中":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},",":{"docs":{},"以":{"docs":{},"获":{"docs":{},"得":{"docs":{},"规":{"docs":{},"则":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"我":{"docs":{},"们":{"docs":{},"定":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"原":{"docs":{},"则":{"docs":{},"上":{"docs":{},"那":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"的":{"docs":{},",":{"docs":{},"每":{"docs":{},"次":{"docs":{},"你":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"你":{"docs":{},"都":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}},"解":{"docs":{},"析":{"docs":{},"器":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{"docs/contest/frontend.html":{"ref":"docs/contest/frontend.html","tf":0.0008453085376162299}}}}}},"便":{"docs":{},"于":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"可":{"docs":{},"以":{"docs":{},"附":{"docs":{},"带":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"、":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"信":{"docs":{},"息":{"docs":{},"等":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"优":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"死":{"docs":{},"代":{"docs":{},"码":{"docs":{},"消":{"docs":{},"除":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":10.011363636363637}},"是":{"docs":{},"指":{"docs":{},"删":{"docs":{},"除":{"docs":{},"程":{"docs":{},"序":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"以":{"docs":{},"减":{"docs":{},"少":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"间":{"docs":{},"和":{"docs":{},"资":{"docs":{},"源":{"docs":{},"消":{"docs":{},"耗":{"docs":{},"。":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}},"缩":{"docs":{},"小":{"docs":{},"调":{"docs":{},"试":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"把":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}},"适":{"docs":{},"配":{"docs":{},"不":{"docs":{},"同":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/contest/midend/midend.html":{"ref":"docs/contest/midend/midend.html","tf":0.003355704697986577}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}},"申":{"docs":{},"请":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"注":{"docs":{},"意":{"docs":{},"区":{"docs":{},"分":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"指":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"静":{"docs":{},"态":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"与":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"动":{"docs":{},"态":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"北":{"docs":{},"大":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"k":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}},"算":{"docs":{},"术":{"docs":{},"语":{"docs":{},"句":{"docs":{},":":{"docs":{},"这":{"docs":{},"是":{"docs":{},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"最":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"。":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}}}}}}}}}}}}}}}},"静":{"docs":{},"态":{"docs":{},"单":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":10.00268817204301}},"(":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},")":{"docs":{"docs/contest/midend/ir.html":{"ref":"docs/contest/midend/ir.html","tf":0.002717391304347826}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"小":{"docs":{},"节":{"docs":{},"参":{"docs":{},"考":{"docs":{},"并":{"docs":{},"改":{"docs":{},"编":{"docs":{},"自":{"docs":{},"北":{"docs":{},"航":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"处":{"docs":{},"理":{"docs":{},"思":{"docs":{},"路":{"docs":{"docs/contest/midend/irgen.html":{"ref":"docs/contest/midend/irgen.html","tf":0.0012755102040816326}}}}}}}},"]":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}},",":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"呢":{"docs":{},"?":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}},"技":{"docs":{},"术":{"docs":{},"。":{"docs":{"docs/contest/midend/ssa.html":{"ref":"docs/contest/midend/ssa.html","tf":0.002688172043010753}}}}},"找":{"docs":{},"出":{"docs":{},"函":{"docs":{},"数":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},",":{"docs":{},"标":{"docs":{},"记":{"docs":{},"这":{"docs":{},"些":{"docs":{},"值":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}},"维":{"docs":{},"护":{"docs":{},"一":{"docs":{},"个":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"存":{"docs":{},"储":{"docs":{},"所":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"值":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}},"顺":{"docs":{},"着":{"docs":{},"u":{"docs":{},"d":{"docs":{},"链":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/contest/midend/dce.html":{"ref":"docs/contest/midend/dce.html","tf":0.011363636363636364}}}}}}}}}}}},"确":{"docs":{},"定":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"后":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{},"e":{"docs":{},"和":{"docs":{},"e":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/contest/backend.html":{"ref":"docs/contest/backend.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"手":{"docs":{},"册":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"length":7669},"corpusTokens":["!","!,","!=","!=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","!x;","!。","\"","\"\"\"","\"${cmake_cxx_flags_debug}","\"${cmake_cxx_flags}\")","\"(\"","\")\"","\"*.cpp\")","\";\"","\";\"代表分号被解析以后会转化为","\"=\"","\"_tk\"","\"a\"","\"antlr4","\"declaration\"]]):","\"frontend/lexer/simplecbasevisitor.h\"","\"frontend/lexer/simpleclexer.h\"","\"frontend/lexer/simplecparser.h\"","\"gcc:","\"if\"","\"input.c\"","\"rv32i2p0_m2p0\"","\"src/*.cpp\")","\"unprivileg","#","#2","#2]","#includ","$","$?","$a","${antlr4_src})","${src})","$。例如,让你运行","$,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。","%","&","&&","&&、逻辑或","&name)","&name){","&name,","&symbol)","'","'&&'","'''","'('","')","')'","'*'","'+'","'/'","':'","';'","';')","'='","'?'","'['","']'","']')*","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'for'","'if'","'int'","'int')","'return'","'while'","'{'","'|'!'|'~')","'|'~'|'!')","'||'","'}'","'}')?","(","(!isvalidtype(vartype))","(!lefttyp","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","(0","(0)","(1","(1)","(2","(_t0,_t1)","(_t0,_t2),(_t0,","(_t0,_t3)","(_t2,_t3)","(a","(a,b),可以如此检查它们是否可以合并:","(a/b)*b","(a=1)+(a=a+1);","(add","(anoth","(args)","(array)","(body)","(children[0])","(children[1])","(children[2])","(children[3])","(compound_stat","(cond)","(condition)","(ctx","(decl)","(expr)","(express","(extend","(foo,","(func)","(func_name,","(funcdeclar","(function","(godbolt.org)来快速获得一个riscv指令的实现","(i","(i)","(i=0;","(ident)","(index)","(init)","(int","(integ","(k","(lefttyp","(lh)","(lhs)","(op)","(params)","(program","(ratified)中的volum","(ret_t)","(rh)","(rhs)","(sifiv","(some","(spec)","(statement","(sub","(sysv),","(tac)","(type","(type)","(x)","(两周)",")",")。","*","*(i32*","*(i32[3]*","*.cpp","*.h","*ctx)","*dst,","*node)","*target;","*、整除","+","+、减",",",".","...","...)","......","...;","./a.out","./a.out:","./check.sh","./configur","./my_compil","./reports/.pdf","./reports/.pdf,比如","./reports/stag","./requirements.txt",".align",".attribut",".bss",".cpp",".data",".file",".g4",".gitlab",".global",".globl",".ident",".option",".section",".size",".space",".text",".text.startup,\"ax\",@progbit",".type",".word","/","//","//···","/path/to/antlr","/usr/","/usr/local/bin/pk","/usr/local/bin/pk,要么每次都用完整路径。","/、模","0","0(t0)","0)","0))","0,","0;","0;}。","0;定义的,g(a)中的a是上一行的let","0。","0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为","0。例如:","0的思考题请与stage","0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(risc","0)。","0)完成通过例子学习一节末尾的思考题。","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","0,则其行为都是未定义的。当","0,我们会对第三个操作数求值。当第一个操作数的值为","0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于","0,语义规范说","0,跳转到","0,跳转到_l0,否则跳转到_l1","0;当操作数等于","1","1)","1))","1+2*(4/2+1)","1+3","1+3==4","1,","1.","1.1","1.2","1.3","1.67","1.pdf。","1.pdf。整个","10","10%","10%。","10%,对思考题的回答占","10.1","10.1.0","10.2","10.3","100","10;","10,我们将这类一元运算操作都称为","11","11.1","11.2","11.3","11.4","12","12)","12.1","12.2","13","15","16","16)","17)","18","19","192.168.1.1,端口为","1;","1;语句,ir会如何改变?)","1;这样的语句,但是不会见到return","1;,这样一条声明在语义上等价于","1=2","1]","1],补码表示。","1。","1。在生成过程中,首先使用","1一起提交。","1(待我们加上四则运算后)。","1)。","1),主要讲讲和_t1","1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","1,!!2","1,也就是说","1,当不满足时结果为","1,那么判断是否有","1;否则其结果为","2","2)","2))","2);","2+3)。","2,","2.","2.1","2.2","2.3","2.4","2.5","2.pdf。注意报告的标题是","20","20%","20)","20.04","2020.04.0)","2020.08.2","2023","2024","2024000001@192.168.1.1","2024000001,服务器","2024;","2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。","2024,就是将立即数","21","2123),对初始化表达式是非字面量的情况不做任何要求(例如","2147483647","2147483648,但可以写成","223","223,则命令为:","23.04","233","233;}","24","24:00","25","26","2;","2;,则对应的","2;,否则执行","2^31","2^31,","2”。","2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。","2下,你可以通过git","2中对于后端翻译的介绍和step","2作业放置在分支stage","2创建一个新的分支并继承当前分支的修改。","2,否则判断是否有","2,因此","3","3)","3))","3))(前序表示),不能解析成mul","3);","3),不能解析成sub","3,","3.","3.1","3.10)","3.11.4","3.2","3.3","3.4","3.5","3.5,即其操作数的求值顺序是未指定行为。","3.9","3.pdf。注意报告的标题是","30%","32","35","35%","3;","3;。因此,我们设置了两个跳转标签","3rd_party/","3rd_party/antlr4","3应该解析成sub","3应该解析成语法树add","4","4)","4,","4.1","4.13.2","4.2","4.3","4.4","4.5","4.pdf。整个","40","40%。","42%","48%。","4;","4};","4的式子来计算出y[1]的地址)","4,即可得到","5","5%))","5,","5.1","5.10","5.10)执行一条","5.11","5.2","5.3","5.3)对于同一个标识符,在同一个作用域中至多有一个声明。","5.4","5.4)使用不在当前开作用域中的变量名是不合法的。","5.5","5.6","5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。","5.7","5.8","5.9","5.pdf。注意报告的标题是","50%","52(sp)","55%。","56","5;","5。","5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。","5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)stage","5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。","5,因此","6","6.1","6.2","6.3","6.4","6.pdf。整个","60%","64","6};","6。","6),包括附加测试样例。","6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义","7","7%","7.1","7.2","7.3","7.pdf。整个","7。","8","8%","8)","8.1","8.2","8.3","8.3.0","8.3.0\"","8.4","8.5","8.7","8.8","8.9","80%","8会被编译器优化为5","9","9.1","9.2","9.3","9.4","9.5","9.6","90%,剩余","9]+","9]+\"","9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码:","9_]*","9。",":","::=",";",";)",";))",";。","=","==","==,","==(等于)和",">",">,",">=",">equals(righttype))",">expr());",">insert(name,",">isfloat()",">isfloat())",">isinteger()",">isinteger())",">left);",">lookup(name);",">parent;",">right);",">statement(0));",">statement(1))",">statement(1));",">type;","?","@function","[","[,","[0","[0,","[1,","[]","[_t0,","[_t1,","[_t3,","[_t6,","[_t7,","[a","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","[r0,","[r0]","\\t\\r\\n]+","]","],","___","__init__(self,","_b0:","_b1","_b1:","_b2","_b2,","_b2:","_b2结尾都是jump指令,表示从true_bb、false_bb跳转到next_bb。","_b3","_b3:","_b3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_b0的结尾是一个branch指令,_b1,","_b3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_b4,","_b5两个基本块。多出来的_b6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_b6?提示:如果break;语句后面加上a","_l0","_l0,","_l0:","_l0],","_l1","_l1,","_l1:","_l1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到","_l2","_l2:","_l2]","_l2)是执行","_l2,分别表示","_l3","_l3)处。","_lk","_main:","_t0","_t0)","_t0,","_t0,_t2,_t3","_t0[i32","_t0、_t3、_t4","_t0。例如,测例中直接用返回","_t0。如果","_t0和_t1的值是常量,将_t0和_t1的值分别存入常量表。","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t0,此时","_t1","_t1)","_t1,","_t10","_t10)","_t11","_t1[i32","_t1}","_t1、_t2","_t1。","_t1。下面是另一个ir输出格式的例子:","_t1。为了满足","_t1翻译过程发生了什么。","_t2","_t2,","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","_t3","_t3)","_t3),(_t2,","_t3,","_t3}","_t4","_t4,","_t4]","_t5","_t5,","_t6","_t7","_t8","_t8,","_t9","_t9]","`p_`","`t_interger.__doc__`","a%b","a)","a.out","a.out:","a.out。但","a.out,具体操作如下","a.out,获取返回码","a0","a0,","a0,233","a0,a0","a1","a1,","a7","a;","a;}","a=0;","a=1+3;。编译器可以计算出","a=2;","a=4;。","a=f();","a=f();。","a=f();,其大致实现为","a[(l+r)/2];","a[0]","a[0][0]","a[0][1]","a[1]","a[1][0]","a[1][1]","a[1][7]","a[2][2]","a[4][5];","a[])","a[],","a[];。","a[][12]){","a[b],要求","a[d1][d2]...[dn],访问元素","a[i1][i2]...[in]","a[i1d2d3...dn","a[i]","a[i];","a[j]","a[j];","a[n];","a[n][m];","abdulaziz","accept","accept(self,","accept:根据每个函数的","access","add","add,","add_executable(my_compil","add_library(antlr4_runtim","add_subdirectory(3rd_party/antlr4","addexpr","addi","addit","addr,","address","ai,","ai即可。","aj,","alloc","alloca","alloca、load","alloca、load、stor","allocforloc:每一条指令进行寄存器分配。","allocregfor:根据活跃变量信息决定为当前","alloc、load","alloc,load","altern","analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。","analysis),或者称为“活跃变量分析”。","analyz","analyzer.accept(cfg)","analyzer):检查ast是否符合语法规则和语义规则。","antlr","antlr4","antlr4;","antlr4_runtim","antlr4_runtime)","antlr4_src","antlrinputstream","antlr。前几行(3","antlr简介","appl","approach","apt","arch,","architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。","arg1,","arg2,","argc,","argpars","argparse:","argument_list","argumentlist","argv[])","arithmet","arithmetic,将","arm","arm...)和源语言(minidecaf,","arm)中和","arr[0]","arr[1]","arr[2];","arr[3];","arr[3]={1,2,0};","arr[3]={1,2};","arr[4]","arrayref","arraytype())","arraytype(2,","arraytype(3,","array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为stackobject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","asm.transform","assembl","assign","assign:","assign_stmt","assignment,","ast","ast),接下来通过扫描","ast/","astbuildervisitor","astfunc","astfunc.body.accept(self,","astnod","astvisitor","ast省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。","ast)。比如,对于下面这一段简单的minidecaf","ast),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。","ast,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现","ast,对每个语句和表达式逐一进行类型检查,并在","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","atn","augment","auto","a。","a:","a:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块","a:可以通过本地测试或者通过","a:如果你安装了多版本的","b","b))","b);","b,f涂成相同颜色。这样就会导致","b;","b[1]);","b[2][3]","backend","backend/","backend/asm.pi","backend/dataflow/","backend/dataflow/cfg.pi","backend/reg/","backend/reg/bruteregalloc.pi","backend/riscv","backend/riscv/","barku","basevisitor","base,索引下标","bash","basic","basicblock","basicblock(基本块)内的指令进行寄存器分配。","basicblock,每个","bbl","begin","beginloop_label:开始下一轮迭代","beginloop_label:本轮迭代完成","beginloop_label:本轮迭代完成,条件满足时进行下一次迭代","behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。","behavior),即对程序的行为无任何限制。","beq","beqz","binari","binaryop(add)","binaryop(eq)","binaryop(lt)","bind:将一个","binop(add)","bison","bison,","bison)辅助你生成","bit","bits)中的任何一个,在编译选项中写上","block","block,","block_item","block_item*","blocks;","block)和控制流图(control","bne","bnez","bodi","book","bool","br","branch","branch、beqz(条件为假时跳转)、bnez(条件为真时跳转)或者","branch、condbranch","branch,当切换到一个新的","break","break/continu","break;","break_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","brew","brigg","bruteregalloc","bruteregalloc(emitter)","bss","builder","builder.buildfrom(pair[0])","b有边相连的所有结点中有多少个","b,则图中包含从","c","c)","c++","c++17","c++。通过定义语法文件(.g4","c++)","c++,rust","c++,你可以从","c,","c/c++","c17","c=0;","c=0;}","calcul","calculate()","calculate();","call","calle","caller","caller/calle","caller,语句中的表达式的值会返还给","cat","cd","cfg","cfg:","cfgbuilder()","cfg,可以参见","cfg:https://szp15.com/post/how","chaitin","chapter","chapter3:https://pfalcon.github.io/ssabook/latest/","char*","checkout","child","child.accept(self,","children","child,直接调用","ci","ci.yml","ci/cd","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","ci,这不会对你的提交/补交产生影响。","class","clone","cmake","cmake_minimum_required(vers","cmakelists.txt","cnt);","coalesc","coalescing的论文中并没有提及函数调用约定的处理方式,在这里以risc","code","code,","code。","code,可以删除。","commit","common.h","commontokenstream","compil","compilation)。","compiler:","compiler:","compiling.github.io/minisysi","complete.jar","complete.jar(截至文档写作时此为最新版)。","complete.jar替换成你的","compound_stat","cond","cond(std::move(cond)),","cond,","cond;","condbranch","condit","conditional,表示条件表达式。","cond,循环体","cond,更新语句","cond,真分支","conflict","const","construct","continu","continue_label:continu","controlflow","controlflow,","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。","count","cout","cp","cpp的","cpu","ctrl","ctrl,i=i+1","ctx)","ctx)是单一的作用域。到了","ctx:","currentscop","currentscope;","cxx)","d","d,","d;","d=0;","d=0;}","d=0;,到底是","d=0;?","darwin.tar.gz,不过还需要通过","darwin.tar.gz,只用里面的","data","dce","dce)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。","ddebug\")","debug","decaf","decaf,我们在新的且更简单的语言规范下复用了","declar","declaration)*","declaration,","declarator(identifier(\"b\"),","declarator(identifier(\"x\"))","declarator(identifier(\"y\"),","declarevariable(const","def","definit","def和def","def链、def","degre","devic","df","dfg(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。","dfs(func)","dfs(node:","diagram","directori","div","div:","divexpr","dlanguage=cpp","docstr","download","dragon","dst;","dtc","dtc):","e","e.g.,","e;","ebnf","echo","elementptr:","elf","elf(execut","elif","elimination,","elimination)、常量传播(const","else:","else;","elsebranch","else(dangl","else)","else),要求","emitfunc","emitt","emitter)","emitter.emitend()","emitter.selectinstr(func)","empti","encod","encoding;","encount","end","engin","enterscope()","enum","epilogu","epilogue。epilogu","epilogue,将","equal","error\"","error:","euc","exampl","example.c","exec","execut","executable,","exitscope()","explor","expr","express","expression)*)?","expression):","expression)?","expression.\");","expression:","expression?","expression_list","expression)。","expression,变成","expression,表示赋值表达式。","e)。假设我们的处理器只有","f","f()","f(){if(0)","f(a);","f(a);。","f(int","f_stream.open(argv[1]);","f_stream;","false_target,","file","file(glob_recurs","file:","fill_n","fill_n(arr,","fill_n(int","first","flex","floattype();","flow","fn","foo","foo(_t2,","foo(a,","foo(i32","foo(int","foo(t1,","foo.c","foo.s(记得加","foo:","foo函数的参数表示为_t0,","form)","format","format)。","found","fp","fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。","fp,此时","frontend.parser.parser(位于","frontend/","frontend/ast/node.pi","frontend/ast/tree.pi","frontend/ast/tree.py:unary、utils/tac/tacop.py:tacunaryop、utils/riscv.py:rvunaryop","frontend/ast/visitor.pi","frontend/ast/。","frontend/lexer/lex.pi","frontend/lexer/lex.py。ast","frontend/lexer/ply_lexer.pi","frontend/lexer/;语法分析程序位于","frontend/parser/ply_parser.pi","frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于","frontend/parser/ply_parser.py,而词法的定义位于","frontend/parser/;语法树位于","frontend/scop","frontend/scope/","frontend/scope/。","frontend/symbol","frontend/symbol/funcsymbol.pi","frontend/symbol/varsymbol.pi","frontend/tacgen/tacgen.pi","frontend/tacgen/tacgen.py。","frontend/type/array.pi","frontend/typecheck/namer.pi","frontend/typecheck/namer.py;类型检查位于","frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于","fun(int","func","func(1,","func(arr);","func(int","func:","func_exit","func_exit:","funcdeclar","funcdeclaration:","funcname,","function","function(node):","function(p[1],","function):","function*","function,","function:","functions;","function,同时代码中的p[0]","function,每个","g(a);","gcc","gcc编译程序运行时间","gcc,用来生成","gcc,这种","gcm","gener","generator):将","generator):将优化后的中间代码转换为目标机器代码。","getint","getint();","ghuloum","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github","github),托管至私有仓库的请不要给其他同学任何访问权限。","git。","glob_recurs","globals;","grammar","grammars,","graph(cfg)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectinstr),指令选择将中端tac代码转换为riscv汇编代码,selectinstr函数中,我们也采用了visitor模式遍历指令序列,","graph)是用于进行上述分析的数据结构。","gustedt","gvm","handbook","has_otherwise(oth","has_otherwise;","hello","here.","hints,如果你习惯在","homebrew","http://scheme2006.cs.uchicago.edu/11","https://blog.csdn.net/daybreak222/article/details/87968078","https://buaa","https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf","https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git","i2d3...*dn","i32","i32*","i32[3]*","i;","i=0;;i=i+1)","i=0;i","i=0;i。","i=1;","id","id:","ident","identifi","identifier(\"a\")","identifier(\"b\")","identifier(\"foo\")","identifier(\"i\")","identifier(\"main\")","identifier(\"x\")","identifier(\"y\")","identifier(main)","identifier)*)?","identifier,","identifier),可以用字符串字面量表示终结符(如","ident,初始表达式","ident,参数列表","if(a)","if(b)","if;这样的语句,因为","if_stmt","ifcontext","ifcontext,对应的语法规则如下:","ifnod","ifnode(std::unique_ptr","ifnode,并返回","ifnode:","ifstat","ifstream","if。","if;","immedi","in]。在将数组索引翻译成","include_directories(3rd_party/antlr4","include_directories(src)","increment","index","indexexpr","init","init_expr","initlist","init、ctrl","init、ctrl、post","init,i","init,循环条件","input","input(f_stream);","input.","input.c","input.s,最高优化等级(否则输出的汇编会很冗长)","insert(const","instal","instr.dst,","instr.operand))","instr.valu","instr.value))","instr:","instruct","instructions)(其实就是赋值)传值的寄存器。","instructions;","instruction。","instruction,然后根据不同的指令类型定义不同的子类。","int","int(1)","int(2)","int(t.value)","int:","integ","integer(2024)","integer)*)?","intexpr","intliteral(0)","intliteral(1)","intliteral(10)","intliteral(2)","intliteral(2024)","intliteral(3)","intliteral(4)","intliteral(5)","intliteral(6)","int)从左到右存放在","int)放在","int;关于逻辑非,只有","ip","ir","ir、完成中间代码生成","ir。","ir。在静态单赋值的","ir。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。","ir中的phi指令。通常phi指令会被翻译为mv指令,但留意多条phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。","ir里通常会假设数量无限的虚拟寄存器(或称作变量),但目标isa(instruct","ir)是介于语法树和汇编代码之间的一种程序表示。","ir)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的ast转换为中端代码。","ir,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。","ir,只需要写","ir,并能够输出","ir,这里有一些参考:","is_reg","is_reg;","isa","isa=rv32g","isinst","isinstance(child,","isinstance(node,","iter","j","j)","j);","jar","java","java...)。由于不同源语言的","java、python","jdk","jen","jmp","jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。","jp","jump","jvm","k","kind","l)","l,","l;","la","label","label(t0,","label1","label1,","label1,后续再通过无用指令消除去掉li","label2","label;","labelmanag","labelmanager()","labelmanager)","label,传入的实参为t0、t1等","lalr","lalr(1)","land","languag","lbrace","lc","lc:","ld","ldr","lefttyp","lefttype;","length","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","lexer(&input);","lexer/","lexer(或","lhs,右操作数","li","lib","link","linked,","linux","linux/mac","linux用户","linux,spik","list","list=riscv32","listen","listener(默认是激活的)和激活","live","livein","livein(succ(b))。","livein、liveout","livein、liveout。","livenessanalyzer()","liveout","liveout(b)","liveus","llvm","load","load_symbol","loadaddr","loader","loadfromstack","loadstackaddr","localalloc:根据活跃变量信息对一个","locat","logical_and","logical_or","lookup(const","loop","lor","lot","lp","lp:","lparen","lr(1)、ll(1)","ls","lsb","lsl","lt","lts;","lvalu","lvalue节点的例子,希望能帮到你。","lvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释)","lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在","lw","m","mabi=ilp32","mac","maco","mac),window","mac),可以尝试自行根据","main","main()","main(){","main(){return","main(int","main,","main.cpp","main.pi","main.py,它通过调用","main:","main],","main_exit","main_exit:","main。","main函数中对于数组b,先使用alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在loadaddr指令获取a的地址之后,还要用load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。","main(可忽略)","main:","make","malloc","march=rv32im","mem2reg","memset","merg","midend/","miniconda","minidecaf","minidecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低","minu","minus:","min{100,","mip","mips,","mips)规定的物理寄存器,其数目有限;而","mismatch","mod(int","monkey:","mov","move","mul","mul,","mul:","mulexpr","multi_nesting.c","multipl","mv","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitload(expr.value)","my_compil","n","n2176(n2176","name","name;","namer","namer(visitor[scope,","namer(visitor[scopestack,","namer(visitor[yourtype,","namer.transform","namer.transform,","namer/typ","namespac","naur","need","neg","network","node","node):","node,","node.functions:","node:","non","none","none:","none])","none]):","none]),其中","nopic","nora","notimplementederror","nqcc","nullptr)","nullptr;","o","o1与","o2","o2优化的性能的","o2(减少不必要的指令生成),翻译一条指令看看效果。","o2)。","o3","obj,","offset","offset(sp)就足够了。需要注意的是storetostack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为loadstackaddr和一条store指令。","offset)","offset:","offset:将t0中的内容写入到栈上对象obj偏移offset处","offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0","ok","omit","oop","op","op:","opcod","opcode;","openjdk","oper","operand","operand:","operand,运算类型","operator,","option","optional[u]:","os用户,假设你已经将spike加入环境变量,将pk加入系统目录","os)中进行开发。助教不推荐直接在","other(std::move(other)),","other;","otherwis","output","overrid","p","p)","p[0]","p[1]","p[1]则是minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的","p[2])","p[2],","p[6])","p_expression_precedence(p):","p_function_def(p):","p_program(p):","p_unary_expression(p):","pair","pair[1])","parallel","param","param[0]","param[]){","param_list","param_list,","paramet","parameter_list","parameterlist","params,函数体","parenexpr","parent","parent(parent)","parent;","pars","parser","parser(&tokens);","parser.pars","parser.parse(...)","parser.program();","parser/","parser)一些信息,最经典的例子是","parser,只需要执行","parsetree*","pass","pass。","pass。下面,我们将指出,step1","path=$path:/path/to/riscv","pdf","phase","phi","pip","pipelin","pk","pk。","pk,不过那是","pli","plu","plus:","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考","ply),其使用方法与","pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。","port","post","postfix","post。","ppa:deadsnakes/ppa","prebuilt","prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to","prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc","prefix=/usr/loc","prepare.sh","primari","print","printf(\"%d\\n\",","printf(\"hello","problem”。","prog.funcs:","prog:","program","program(function(...)),这里program、function类的定义在frontend/ast/tree.py文件中,你可以看到function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。","program(listnode[union[\"function\",","program(p[1])","program(p[1])代表了构建ast的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0]","program(p[1])最后就会变为p[0]","program)","program):","program,","program.functions().items():","program:","programmer’","program),大写字母打头的是终结符(如","project(my_compil","prologu","prologue。prologu","prologue,将","propagation)、值域传播(valu","propagation)等。","public","public:","push","putint","putint(int);","putint(x);","putint的liveout集合中,会与全部的cal","pylanc","python","python3","python3.9","python,使用","python,可以通过","qemu","qemu/spik","qemu。","qemu与","qemu)使用的可执行文件的格式是","qemu,即","qsort(a,","qsort(int","q:","q:使用","q:如何提交课程报告?","q:我怎样才能知道我的提交通过了所有测试用例?","r","r\"[0","r)","r0,","r1","r1,","r;","ra","ra,","rais","rang","ra是一个cal","ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了","rbrace","rc","rc:","readcod","readm","real","recognition)","recurs","reduc","reg0","reg0,","reg1","reg1,","reg_alloc","reg_alloc.accept(cfg,","reg_id;","regist","relat","remot","reports/.pdf,比如","reports/stag","repositori","represent","representation,","requirements.txt,你可以通过","res,","resolvevariable(const","result","result);","result;","ret","retri","return","return(statement):","return)","return):","return,","return_type,函数名","rhs,运算类型","righttyp","risc","riscv","riscv.callersaved)","riscv/riscv","riscv32","riscv64","riscv64,","riscvasmemitter(riscv.allocatableregs,","riscvasmemitter.pi","riscvsubroutineemitt","rp","rp:","rparen","rule","rules)。","rule:","runtim","runtime)","runtime.h","runtime.h\"","runtime/","runtime/cmakelists.txt","rust","rv32/64g","rv32i","rv32im","rvunaryop.neg,","s","s0","s0,","s1;","s2;","sandler","sat","save","save/cal","saved。","saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前cal","saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。","saved寄存器。","saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。)","saved寄存器。如果某个临时变量存放在calle","saved寄存器上。经过后续优化可能的最终汇编代码如下:","saved寄存器与临时变量的绑定关系。你可以用subemitter.emitstoretostack和unbind来达到上述效果。","saved寄存器中且活跃的临时变量,然后解除所有cal","saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如calle","saved寄存器中的临时变量保存到栈上,这实际上让所有cal","saved寄存器中的参数也被丢到了栈上?似乎有些多余?","saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有cal","saved寄存器中,那么它不会在上一步骤被放到栈上。","saved寄存器加入到call指令的def集合中,剩下的事情交给寄存器分配算法处理。考虑以下c语言片段:","saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。","saved寄存器或栈上。因此我们先将活跃且在cal","saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g.","saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是calle","saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在cal","saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它cal","saved寄存器相干涉,这样x就会自动被分配到calle","saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个calle","saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv","saved寄存器,但它有着和calle","scan","scope","scope.lookup","scope.pi","scopestack)","se","second","selectinstr","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","self.seq.append(riscv.unary(op,","self.visitother(that,","semanticanalyz","semi","semi:","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","seqz","set","set(cmake_cxx_flag","set(cmake_cxx_flags_debug","set(cmake_cxx_standard","shell","shell,那加到","shift","sifiv","signific","sim","simplec","simplec.g4","simplec.g4,并利用它生成一个","simplec;","simplecbasevisitor>","simpleclex","simplecpars","singl","size","skip","slt","snez","someth","sp","sp,","spec\"。","spec\",另外这里也有(非官方的)指令用法说明。下图给出了","specif","specifi","specification。","specifier(tint)","spike","spike(会自动安装","spill","sp,并恢复","src","src,","src/","src/frontend/lexer_pars","src/main.cpp","src1,","src1;","src2","src2;","ssa","ssa/","ssa)是编译器中间表示(ir)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。","ssh","stack_align,","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","stage","stage1","stage5","stage6","stage7","stage7,否则无法获得对应分数。","stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️","stage,每个","start","statement","statement(node):","statement)?","statement*","statement:","statements:","static","std::make_shared(currentscope);","std::make_unique(std::move(cond),","std::move(elsebranch));","std::move(thenbranch),","std::runtime_error(\"invalid","std::runtime_error(\"typ","std::shared_ptr","std::string","std::unique_ptr","std::unordered_map>","std::vector","std;","step","step1","step10","step10:全局变量","step11","step11:数组","step12","step12)。在这个","step12:为数组添加更多支持","step13","step13:寄存器分配算法改进","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step1,实验框架给出的初始代码可以通过","step1:一个仅有","step2","step2。","step2:一元运算符","step3","step3:加减乘除模","step4","step4)。在这个","step4:比较和逻辑表达式","step5","step5:局部变量和赋值","step6","step6:作用域和块语句","step7","step7:","step7:","step8","step8)。在这个","step8:循环语句","step9","step9,","step9:函数","step_pars","step_until=1","step。每个","stmt.expr.accept(self,","store","storetostack","store,搜索ubuntu,选择ubuntu20.04.","str])","strip","struct","stuff...","sub","sub,","subexpr","submodul","subroutineinfo.pi","sudo","sw","swap","swap(int","swap(y,","swap:","symbol","symbol)","symbol);","symbol.pi","symbolt","symboltable(std::shared_ptr","syntax","sysi","t","t)","t):","t.valu","t0","t0,","t0,t1","t0指令用于传递一个参数。","t0结果,成立为1,失败为0","t0,这里的逻辑或需要将t1、t0进行或操作后,再判断其值是否为1。为什么这一步不在产生","t1","t1,","t1和t2作为被调用函数foo的实参,而调用后的返回值保存在t0中。","t2)","t2,","t3,t1,t2","t3,t3","t_integer(t):","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","table;","table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。","tac","tacfunc","tacfuncemitt","tacfuncemitter(funclabel(funcname),","tacfuncs.append(emitter.visitend())","tacgen.transform","tacinstr.pi","tacprog(tacfuncs)","tacprog):","tacprog:","tacunaryop.neg:","tac)是一种经典的","tac)看起来很像汇编,与汇编最大的区别在于","tap","target","target_link_libraries(my_compil","temp","temp:","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","test.c","testcases/step1/multi_digit.c","testcases/step1/newlines.c","that:","then(std::move(then)),","then,","then;","thenbranch","then,假分支","throw","ti,","tint","tint(typeliteral):","tint)))","ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。","token","tokens(&lexer);","token。它被看成是一个取负符号、后面是它的绝对值。","token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0","token,然后解析器分析","tool","toplas'1996:","tostringtree(&parser,","transform","transform(self,","transit","tree","tree,","tree.unary(unaryop.neg,","tree/","tree:","tree;","tree。","tree。最终把一个简单的","tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用","tree)并根据其结构生成对应的","tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(ast)。ast","true)","true_target","tutorial/challenge/mem2reg/help.html","type","type(int)","type,","type:","type;","typecheckervisitor","typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typ","typeliteral(node):","typer","typer.pi","typer.transform","u","u;","u]):","u],","ubuntu","ubuntu,","ubuntu14/*","ubuntu14/改名为","ubuntu,debain","ubuntu,你需要自己编译出可用的用户态","ucb","unaligned_access,","unari","unary(expression):","unary)","unaryop(neg)","unary,其中p[0]代表的就是第一个unary,","unary,那么","unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。","unbind:将一个","union","union[int,","union{","unix","unknown","unprivileg","updat","update,循环体","us","user","username@ip","user。","use关系,找出所有用到常量_t0和_t1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_t2的值为5,也是一个常量,将_t2的值加入常量表。","use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。","use链、可达定义分析等。","utils.error.illegalargumentexception:","utils/riscv.pi","utils/tac","utils/tac/;中间代码生成位于","utils/tacgen/tacgen.pi","v","v(32","v,","v.visitfunction(self,","v.visitprogram(self,","v0,","v:","valu","value))","value:","value;","var_type,变量名","var_t,标识符","vardecl","vardeclar","variable.\");","vartyp","vartype;","version","virtualbox","visit","visit(ctx","visit(nod","visitbinaryexpr(binaryexprnod","visitblock","visitfunct","visitfunction(self,","visitifstat","visitifstatement(simplecparser::ifstatementcontext","visitload(self,","visitor","visitor(protocol[t,","visitor[t,","visitor。此外,为了便于实现,我们不使用","visitother(self,","visitprogram(self,","visitreturn(self,","visitunary(self,","visitvariabledecl(variabledeclnod","visitxxx","vmware","void","vs","vscode","v为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个c语言片段:","v官方资料","v指令","v指令序列","v指令序列:","v标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。","v汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。","v的i型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。","v相关内容补充","v(非官方)汇编指令用法","v,risc","weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。","while(a","win10","window","world!","world!\"输出。","world!\\n\");","write","ws:","wsl","wsl,或者运行一个虚拟机。","wsl,通过","x","x)","x);","x+","x,","x1","x86","x86,","x86_64","x:","x;","x[10];","xi,","xi的方式将全部xi移入ti中,接下来再生成mv","xj;如果vi的值不在物理寄存器中,调用emitloadfromstack。(思考:","xx","xxx","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x同样也是表达式,其会生成一个值。而带返回值的","x(然后回车)。如果开头没有","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","x,那你最终敲到终端里的是","y","y)","y,","y1","y2","y;","y[10];","y[1];","y[])","yacc","yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。","yacc(简称","yourtyp","y。","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","y,并且","z0","z_]","za","zero,","zsh","{","{1,","{1,2};","{_t0,","{_t0}","{_t1}","{_t2,","{if(b)","{}","|","||","}","}))","};","}[instr.op]","}”","},且其返回值被","~","~!这三个单目运算符和从","~/.bashrc使修改生效。","~/.zshrc","~0","~a,","×","——","“typedef","“执行到了","“控制流图”","“虚拟寄存器”","↩","√","│","└──","├──","、乘","、按位取反","。","。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。","【linux","【maco","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","一个","一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。","一个例子","一个函数中可以有任意多条","一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。","一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。","一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的","一个编译器主要由以下几个部分构成:","一些tips:","一些可能带来困惑的地方","一元运算","一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。","一元运算(如取负、取位反)","一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。","一或多次,?","一栏的","一样,见上一节。如果不设置每次使用","一种可能的方案是使用","一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。","一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念,","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","三个操作的语义和","三地址码","三地址码为例,介绍中间表示的设计。","三地址码定义位于","三地址码(three","三地址码;在编译器后端中,将三地址码转换为","三种不同的一元运算符类型?","上例中,.data","上实现时,你可以用","上打开你的项目,在界面的右侧,clone","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上的结点类型。","上表给出","上进行类型标注。对于静态类型(static","上述代码转化为ir后可能如下:","上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到","上述步骤","上面例子对应的控制流图如下:","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","上面的说明只是简要介绍了算法的原理,请阅读论文","上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。","上,如","下。class","下实现了各种","下标运算越界是未定义行为。","下的","下载","下运行(qemu","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:","下面以二元运算指令为例,展示如何定义一个具体的指令类。","下面我们以","下面我们列出了所有框架中已经完成的特性:","下面我们将通过一个简单的","下面描述了","下面是一段含有函数调用的代码片段:","下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。","下面是环境配置指南,请阅读自己的系统的那一小节。","下面汇总一下。","下面的例子中,代码中不同的基本块被标以不同的颜色:","下面的描述中一定要记得区分accept和直接对于mv.visitxxx的调用,前者是在遍历ast时调用的,后者是在","下面简要介绍一些你可能需要的预备知识。","下面给出","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","不一样。","不为","不允许","不再要求完成基础实验以后再进行大实验","不出意外你会获得如下结果:","不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把","不合法,但","不同,主要用于在栈上分配内存)","不同,直接从","不建议阅读,太过冗长,这对于编译知识提升非常有限。","不支持","不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号","不是合法的","不是编译器常量;","不知道这点(parser","不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","不能出现在循环外。","不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。","不过事实上,很多时候看","不需要你编写任何代码,stage","不需要新增新的中间代码指令。","与","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么?","两类寄存器,而不是要求所有寄存器完全由","个","个偏移的内存地址中的数据","个元素(从","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个变量,m","个基础关卡,你需要通过它们以拿到一定的分数(35%)。","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","个寄存器可用于存放变量),那么可以依照下面的顺序执行","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个整数寄存器的分类。所谓","个模块。","个步骤(其中","个汇编生成器,只有","个源语言和","个点的颜色冲突。","个目标代码生成模块。如果有了","个目标指令集,需要写","个结点不会在在步骤1被删除,因此如果","个结点,m","个通用寄存器,在这种情况下,我们无法将","个,说明最多有","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。","中。比如我们有这样一段","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中会先调用","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你只需要关注","中你将实现常量操作(加减乘除模等)。","中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。","中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。","中你将第一次支持变量声明与赋值。","中你的代码会得到不一致的结果,请联系助教。","中你的编译器将支持作用域,以便支持后续的条件和循环。","中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。","中出现的每个变量名分别对应那个变量。","中加入相应的分派函数。","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中只有","中只需要考虑常量的计算,直到","中场休息","中存储地址,加载与该地址相差","中存在双目标分支(标签)的条件分支指令,其形式如下:","中实现的整型常量越界检查。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中引入的","中引入的二元运算节点中进行修改即可。","中引入的运算均为二元运算,在","中我们提供了","中我们提供了加法和逻辑或操作运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——单层作用域的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","中我们是如何实现符号表构建","中描述了如何运行","中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下:","中提到的当前代码框架中的分配算法。","中搭建开发环境。你需要安装或保证如下软件满足我们的要求:","中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它","中活跃变量的例子:","中添加基本块是否可达的判断。在寄存器分配算法","中的","中的一方保存?为何保存返回地址的","中的临时变量均用","中的变/常量可以直接对应。","中的对应结点来实现。另外,别忘了循环本身也是一个作用域!","中的每一个","中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。","中的第","中目标代码生成主要是指令的选择以及","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中端介绍","中端优化","中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。","中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等","中端参考资料","中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。","中端的设计包括:中间表示的设计、中端代码生成和中端优化。","中端设计","中端:负责中间代码生成、优化。","中第一个","中类型检查的部分,以及","中规定不管返回值有没有被使用,都是未定义行为。","中设置使用","中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中进行开发的话同时推荐使用","中通过一遍","中逻辑运算符","中间代码指令。需要特别提出的是,risc","中间代码生成","中间代码生成器(intermedi","中间代码生成:将","中间代码目录","中间的虚线边改为实线,表示不再考虑二者合并的情况。","中间表示","中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)?","中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。","中间表示设计","中间表示(也称中间代码,intermedi","中间表达指令为例,risc","中,a","中,a0","中,i=0","中,namer/typ","中,tac","中,主要有以下几个函数:","中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。","中,你将支持全局变量和数组,数组中包括全局数组和局部数组。","中,使实现更加模块化。","中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。","中,变量符号的定义里有该变量对应的","中,定义的新","中,我们会将左值的范围进一步包括数组元素。","中,我们只维护了","中,我们只需为","中,我们对于短路求值未做要求,但在包括","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","中,我们要给整数常量增加一元运算:取负","中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。","中,然后再把","中,由","中,负数字面量不被整体作为一个","中;寄存器分配在","临时变量","临时变量对应起来。","临时变量成员。","临时变量的赋值","临时变量赋值操作","为","为书面作业和日常成绩。","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","为了安全起见,服务器仅可通过校内网络访问。","为了实现","为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下:","为了实现所有可能的跳转,对每个","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:ir","为了简单,我们不要求这点。比如对于形如","为了让","为什么有的临时变量可能在寄存器中?","为什么框架定义了","为何","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为假,那么应当跳转到","为全局符号;.word","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为字符串,加载","为实验框架熟悉,不需要修改框架代码)。后续的","为止。由于在栈顶作用域对应的符号表中不存在变量符号","为满分,按照比例折算。如果一个程序","为环境配置和框架学习,无需进行编程,不计入成绩。","为真,那么按顺序执行","为立即数","为符号类的基类,varsymbol.pi","为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:","为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评","主函数入口符号","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","举个例子,一种可能的中间代码表示为:","举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的?","之前","之前执行的初始化函数中","之前甚至","之后","之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:","之后,如果我们想要编写一种遍历","之后,这些","之外的函数没有","之类的","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","也就是","也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。","也提供了","也是可以使用ssh远程写代码的,参考这里。","也是必要值。最终","也是必要值。继续找到","也是需要进行代码编写的,可以参考基础实验框架的ir在代码层面是如何实现的(utils/tac)。","也有很多写法,另一种是用尖括号表示非终结符","也需要如上改动。","了。","了,还有可能是如","事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。","事实上,我们可以用图染色问题去描述“相互冲突的变量”:","事实上,由于","二元操作符","二元运算","二元运算需要两个操作数,并且会产生一个计算结果。","二元运算(如加、减、乘、除)","什么是","什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。","什么是中间表示?","仅完成竞赛第一阶段(达到课程基础实验的要求)","仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次)","介绍","介绍,在当前的步骤不需要考虑)。","从","从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从执行的指令的条数这个角度(label","从本步骤开始,由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","从编译器中端出来的中间代码中,我们对","从这个ir例子中,我们可以看到,相对于c语言,ir中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在ir中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,ir中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。","从这里下载我们预编译的二进制程序包","从这里下载预编译好的","仓库下载","仓库下载预编译的库或者自己编译安装。但是官方的","仓库链接。","代替了返回变量","代码","代码”的操作被称为交叉编译(cross","代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码中的标签只有标志","代码中,x","代码为示例:","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出","代码可简化为:","代码框架","代码框架需要同学们对寄存器分配相关的","代码段","代码没有特别需要修改的地方。","代码生成","代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame","代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑","代码的控制流图。int","代码的格式,只要方便自己调试即可。例如,你也可以将","代码编译到","代码转化为了","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","代码(你不需要精确了解它的含义,大致理解即可):","代码,不过不是合法的","代码,也许","代码,这样可以使中端与后端完全解耦。","代码:","代表","代表a","代表b","以","以上给出了一份","以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下:","以下是一个简单的类型检查器示例:","以下讲述数据流分析的内容中,所有的","以产生","以及","以及常识相同,例如","以及括号","以及逻辑非","以后就能编译到","以处理命令行参数。官方文档中提供了它的教程。","以这个文法对应的一段","仿照","优先和最接近的没有匹配","优先级和结合性","优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1","优化器(optimizer):对中间代码进行优化。","会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入","会对应于一个","会将数组变为","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","会被","会返回","传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。","伪指令可能会被转换成哪些","但为了实现简便,我们就不要求支持这点。","但大多数时候ld","但如果将上述代码变为","但我们加上参数","但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习c或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:","但有时,可能需要后续阶段告诉","但特别注意,c","位","位整数,因此,我们可以把","位有符号整数类型,范围","位汇编","位汇编。","位的","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的支持存在问题。","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位的,而我们需要","位的,请使用我们预编译的","位立即数到指定寄存器中,其中","作为你的最终性能测试成绩。","作为函数参数的数组类型第一维可以为空。事实上,在","作为函数调用的表达式的值。一个函数可以有任意多条","作用","作用域中定义的","作用域和块语句(step6)。在这个","作用域定义的","作用域栈","作用域管理","作用域里的","作用域(占比:7%)","作详细介绍。","你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。","你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除","你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评","你会发现,我们的程序组织成了一个树状结构,即","你会发现,这种ir输出格式包含了一些类型信息,也更加易读。","你做了哪些工作(即你的实验内容)","你可以使用compil","你可以在instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。","你可以在instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","你可以试试,将rvunaryop.neg中名字改为rvunaryop.xxx看看输出的汇编代码会发生什么变化吧。","你可以选择","你可以通过","你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。","你可能会觉得,这一步不就是将","你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。","你完全可以不按照我们给出的这些结构来设计你的","你应该就能看到类似的输出。(记得自己写一个example.c)","你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩)","你应该能看到类似以下的输出:","你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用","你有更高效的解决方案吗?)","你的单个测试点的得分为:","你的学号","你的学号姓名","你的程序运行时间}","你的编译器","你的编译器应该能完成将简单的程序转换为","你的编译器应该能通过所有的测试样例(stage","你认为中间表示的哪种条件分支指令设计(单目标","你还可以开一个","你需要为代码添加合理的注释以便批阅。","你需要从","你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。","你需要通过遍历ast的节点来将其转换为ir。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。","你需要:","使得我们可以在生成中间代码时,使用","使用","使用以下命令(记得把/path/to/antlr","使用文法文件生成","使用时记得加这个参数,否则默认编译到","使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的","使用的是","使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","例如","例如上述代码转化为ir后可能如下:","例如下面的代码","例如以下是一个ir代码的例子:","例如以下的risc","例如,for","例如,int","例如,对于如下代码:","例如,考虑下面这段伪代码:","例如,考虑使用","例如:执行","例:","依据def","依然遵循语义规范","依赖包","便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。","保存在寄存器中,e","保存在栈帧中,因此需要分配","保存活跃的临时变量:首先保存所有位于caller","假如你的账号为","假定我们有","假设","假设在经过了词法分析和语法分析后,我们已经成功将","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","假设我们有一个解析树","假设我们有若干个参数,可以依次使用","做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的","做详细介绍。","先看visitunary函数:","先给当前函数新增一个基本块true_bb表示if语句的true分支入口。","先通过前端变量到ir的data对象的映射表,找到该节点所表示的前端变量对应的data对象。","免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。","入栈。然后在新的","全局作用域(栈底)","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量和数组(step10","全局变量和数组(占比:7%)","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","公钥添加到你的","共用寄存器。","关于名字由来,由于往年的实验叫","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。","关于操作系统,助教推荐使用","关于数据流分析的细节,我们将在","关系操作符","关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如","其中","其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。","其中f(a)中的a是上一行的let","其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:","其中这90%构成为:","其中,stage0","其中,while","其他测试点,太长省略","其他类型检查逻辑...","其优先级的设定会导致其含义在某些时候可能会反直观,例如,0","其实也支持非字面量的编译期常量,例如","具体依赖于1的处理方式,可能需要恢复","具体实现上,可以借助du/ud链来实现:","具体来说,在这一阶段中,我们需要对","具体的保存方法并不限制,但一般都使用栈来保存。","具体示例可以参考短路求值。","具体而言,某个“一整条函数调用”的中间表示大致如下:","具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参)","具有代表性的例子介绍它的整个编译流程。在之前","内存数据结构","内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的","再举一个arm的例子。arm的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列","再看visitreturn函数,我们这里的return是一个带返回值函数的return","写出","准备参数,完成传参。","准备报告。","准备报告。stage","出现在代码不同地方可能标识完全不同的变量。","函数","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数中定义名为","函数中所有出现过的变量符号即可。","函数中的指令,如果不在set中,就可以认为是dead","函数代码。如果你增加了","函数会对不同类型的","函数作用域对应的单张符号表即可。","函数作用域里定义的变量","函数入口标签","函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用","函数入口),以及作为分支语句的跳转目标(tac","函数内部可以包含多条语句和声明了。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数参数","函数参数以及返回值的传递","函数参数(32","函数和变量重命名,两个阶段。","函数声明规则","函数对于在block中的所有子节点调用了child.accept(self,","函数对应的作用域中,可以找到变量符号","函数执行","函数执行至","函数抽象到一个接口里,各种具体的","函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,df","函数时,开启一个局部作用域,在扫描","函数时,相当于执行了:","函数是可以递归调用的。","函数是否存在。(frontend/typecheck/namer.py:37)","函数根据被遍历的结点类型不同,执行不同的遍历逻辑。","函数的","函数的参数列表需要加上数组类型。","函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。","函数的栈帧,并且集中于临时变量的存储和加载。","函数符号的实现在","函数调用","函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。","函数调用语句","函数返回","函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。","函数里定义了变量","函数(step9)。在这个","函数(占比:7%)","函数)分别使用一个","函数,visitblock","函数,为","函数,以生成","函数,将返回地址压入栈中。","函数,并把不同的","函数,直到","函数,编译器应当报错。","分别对应","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","分工建议:两位同学负责中端优化,两位同学负责后端优化。","分支","分支。在","分支。通过","分支和","分支开始位置和整个","分支条件","分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","分支的代码,并在该分支结束时,用一条","分支语句","分支需要是一个语句(statement)而非声明(declaration)。","分支)。","分支,就会执行第二个语句,否则整个","分支,并生成对应的","分支,所以在递归到子结点时,请先判断子结点是否存在。","分支,那么只需要一个跳转标签即可。例如我们将例子中的","分析等理论知识在实践中的应用。","分配","分配一个临时变量","分(总评","划分基本块。","则对应着内层代码块定义的变量","创建","创建了一个仓库,其中","创建名为","初始语句","判等操作符","利用","到","到一个虚拟寄存器","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到可执行文件","到头文件搜索路径","到底和哪一个","到栈上)。","到此为止我们得到的tac代码如下:","到汇编","到汇编的步骤一分为二。如果目标代码有误,通过检查","到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查","到汇编翻译有误。","到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言?","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。","到远端仓库的时间。并且,你也可以随意地","前就被释放了,后端会尝试到栈中寻找","前端代码目录","前端参考资料","前端梗概","前端的主要任务是将源代码转换为抽象语法树(abstract","前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(intermedi","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。","前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的ir,你需要在保证语义的情况下,将ast用你的ir表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用","前端设计","前端预期目标","前端:你可以使用现有的框架完成前端(如:antlr、flex","前端:负责词法分析、语法分析、语义分析,生成抽象语法树(ast)。","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","加法操作","加载到临时变量","加载到寄存器","加载操作:dst","加载立即数","助教在项目中使用","助教已经为每位同学在","助教强烈建议使用类似","勘误表","包列表文件","包含多个","包含多条","北大编译实验koopa","匹配。","即为满分。","即便是类似","即可。","即可。具体来说","即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。","即是控制表达式,其求值在循环体的每次执行之前。post","却编译出","参加大实验的同学应该需要自己从头设计一个符合","参数","参数类型","参考","参考实现进度及顺序","参考的","参考资料","又对于","及更高的版本,你可以直接使用","及触发此次","双目标)更合理?为什么?(言之有理即可)","反复运行","取负操作","变为","变成:","变量","变量。","变量和赋值(step5)。在这个","变量声明","变量的使用(读取/赋值)","变量的初始化表达式指定了变量的初始值。","变量的声明","变量符号究竟存在哪里,如果所生成的汇编程序不给出","变量(占比:7%)","另一种可能的方案是使用","另外这里也有(非官方的)指令用法说明。","只在内部大括号括起的作用域内生效。","只支持","只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。","只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复calle","只需要提交一份报告。","只需要提交一份报告,你不需要单独为","可以不合并但强制这两个点同色吗?","可以参考这个教程进行升级,升级时注意备份。","可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。","可以在保证合并后边数","可以在符号表中找到(我们在扫描","可以尝试如下命令:","可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。","可以直接合并这两个点吗?","可以等价于访问","可以简化每个变量的属性,进而简化编译器的优化过程。","可以被合并为一条指令:","可以被替换为bne","可以跟","可以适配不同指令集(risc","可以通过后续的文档了解每个部分的更多细节。","可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的","可以,但这样合并的点数比较少,优化效果差。这实际上是更早的","可执行文件","可执行文件。","可执行文件链接","可执行文件,所以我们的","可执行文件,最后用","可执行文件;","可执行程序。","可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出","右操作数;","合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的","合法。","同","同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。","同中间代码生成,全局数组自行思考实现。","同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。","名称","后才能尝试","后是一个","后端代码目录","后端优化:图染色寄存器分配、线性扫描法、指令折叠等等","后端设计","后端:负责目标代码生成。","后续","后续如果你选做“全局变量”部分,可以在","后面risc","后面会用到:(","后,可以用负号配合正整数常量来间接表示负整数常量。","向","向符号表中插入新的符号","否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。","否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。","含义","呢?","命令修改","命令安装下文提到的","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","命令无法正确安装依赖?","命令未必会对应","命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。","和","和常说的","和循环体)。","和文法文件生成所需的","和最近的","和类型检查","回顾:启发式寄存器分配算法","因为","因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案:","因为我们在步骤1中只操作了caller","因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体:","因此可以优化为:","因此我们不能直接使用有些系统自带的","因此我们希望生成的","因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。","因此,上述初始化可以等价地转化为:","因此,变量名不能唯一标识变量了,同一个变量名","因此,测例可以翻译成如下的中间代码:","因此,示例可以对应如下的","图染色问题:有","在","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","在frontend/lexer/lex.py文件中你可以看到每个","在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有pars","在step","在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本","在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体:","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。","在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。","在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。","在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。","在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2)","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:","在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a","在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。","在前端生成中间代码时,首先使用第二种方案利用","在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copi","在实现","在实际操作中,我们遍历","在实验框架中已经给出寄存器分配算法的代码,集中在","在实验框架中,我们使用的是","在实验要求的语义规范中,条件表达式存在短路现象。即:","在寄存器分配前可能对应如下代码:","在对","在左边输入以下例子","在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。","在当前作用域查找符号","在我们的实验要求中,返回值均是单个","在我们的框架中,从","在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。","在扫描到","在早先的文档中,函数调用涉及call和param两种指令。call指令只对应实际汇编代码的函数调用,而param","在本例中,","在本例中,_b0的最后是第一个while语句的条件部分,while语句还生成了_b1,","在本例中,生成了_b1,","在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案):","在框架中,我们有以下的","在此基础上,进行","在此表示感谢!","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。","在生成","在生成函数调用的代码时,除传参外,还需要考虑caller","在确认环境配置无误后,我们可以使用","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。","在第","在第一阶段,记录每个局部变量相关的","在第二阶段,遍历所有基本块,对其中局部变量相关的","在线编译器","在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码:","在编译器中有着广泛的应用,比如","在编译实验中可能需要的用法。","在词法分析","在该类型检查器中,我们遍历","在语法树上对应父","在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。","在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。","在这个示例中,我们在","在这个项目中,我们推荐使用","在这段","在这里我们介绍一种可能的实现方式。我们暂不考虑vla(vari","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","在遍历ast的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到ir的data对象的映射表等。","地址为","块之前就要具有的了)。","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","型,而","基于上面三个特点,已经求出基本块的","基于图染色的寄存器分配算法","基于复制指令的寄存器合并","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","基本块","基本块是指一段这样的代码序列:","基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:","基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可:","基本块(basic","基本指令集,并包含","基础的设计模式都在","增加中端优化和后端优化(剩下的时间)","增加了实验文档","声明","声明全局符号","声明和表达式","处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。bruteregalloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind,","处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在iter","处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv","处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitfunc函数中。框架的现有部分已经帮助大家处理好了calle","处理,并被转化为如下形式的一个","处,我们使用一条","备注","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。","大实验参考文档","大实验在","大实验的语法规范与","大实验简介","大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。","大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","大致如下。","天内这个","头文件","如以下是一个简单的例子:","如何使用","如何将一个立即数装载到指定寄存器中?","如何快速查询risc","如何找到所有冲突的变量","如何构建","如何检查我是否通过自动测试(ci)","如何解决寄存器分配对应的图染色问题","如何设置返回值?","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果","如果a","如果一个不是","如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值","如果不能合并,那么把","如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里","如果你使用我们提供的服务器,你可以直接来看risc","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你希望获取详细测试输出,可以点击这个画圈的","如果你感兴趣,可以了解一下llvm","如果你时间充足,你可以阅读:","如果你没有使用虚拟环境,可以参考下面的指导。linux","如果你认为成绩有问题,请及时与助教联系。","如果使用的是低版本的","如果关于报告提交有任何问题,请及时联系助教。","如果出于某些原因必须使用低版本的","如果出现悬吊","如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题?","如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少","如果在多次","如果在机器上直接安装了较低版本的","如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。","如果子节点是declaration,说明这是一个全局变量,就新建一个data对象,再访问该declaration节点,从而将该全局变量的前端信息存入data对象中,最后将其加入到当前program对象中的global_data列表。","如果子节点是function,就新建一个ir的function对象,再访问该function节点,从而将该函数的前端信息存入function对象中,最后将其加入到当前program对象中的functions列表。","如果当前基本块以","如果想要访问某个子结点","如果是数组参数,则可以直接保存在寄存器中。","如果是标量参数,要另外在栈上开空间。(这是为了满足","如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个jump指令,表示从false_bb跳转到next_bb。","如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。","如果有初始化,","如果没有安装qemu模拟器,则会出现如下错误:\"bash:","如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。","如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。","如果输入程序没有","如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then","如果这是个全局变量,则新增loadaddr指令,表示加载全局变量的地址,获取对应地址的寄存器","如果这是个局部变量,则直接通过data对象获取对应地址的寄存器","如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的getelementptr指令,表示通过数组基地址和下标获取元素的地址。","妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。","子两个结点,父结点为取负操作,子结点为常量","子句也可以不带,但这会导致语法二义性:els","子目录作为子项目进行构建","子语句列表","字节。","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节整数,是","字节流","字节的内存,并返回内存首地址","字节的栈帧空间。sp","存储操作:store","存放到","学术规范","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","它会对应如下的","它对应的完整语法分析树可能长这样:","它将在后续的","安装","安装依赖","安装依赖。","安装工具链","完备问题(可以从","完成","完成后端(两周)","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","完成竞赛第二阶段的优化编译器,替代期末考试","完成符号表构建后,我们就可以自顶向下地遍历","完成符号解析和类型检查后,编译器应该能够:","完成这个步骤的过程中你可能需要回顾step","完成这部分内容后,你的编译器应该能够通过","完成这部分内容后,你的编译器应该能将","宏","官方","官方文档","定义","定义括号和符号","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的","定义,以便lexer可以解析","实战教学","实现","实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑","实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。","实现了词法分析器分析输入(即字符)并产生","实现你的编译器,你的编译器生成的目标代码可以是","实现后端代码生成、栈帧管理","实现提示","实现的时候,你可以直接让所有函数都默认返回","实现细节","实现,称为","实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。","实际上,我们提供的中间代码设计和","实验思路指导与问答墙","实验成绩","实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","实验报告中需要包括:","实验指导","实验指导。本实验指导使用的例子为:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验框架中关于目标代码生成的文件主要集中","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在","实验框架环境配置","实验概述","实验环境简介","实验简介","实验要求","实验评测仓库在这里。","实验起点和基本要求","实验进度安排","实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个","容易发现,至少需要3个寄存器。因为","寄存器","寄存器。","寄存器中","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器中,然后在后面加上一条","寄存器中,请写出一段","寄存器分配","寄存器分配与代码优化(占比:8%)","寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spil","寄存器分配算法(step13)。在这个","寄存器分配问题:有","寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。","寄存器?","对于","对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足","对于parameter_list节点,可以把前几个寄存器编号分配给参数。","对于program节点,先新建一个ir的program对象,然后我们只需要再遍历子节点。","对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","对于一条ir指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些ir指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。","对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。","对于下标运算","对于仅因复制指令相互冲突的一对点","对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于含有未定义行为的","对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","对于感兴趣的同学:c","对于数组则需要遍历integer节点,并分别使用store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。","对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。","对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增store指令,表示将得到的寄存器的值存入该标量对应的地址。","对于每个阶段(stage):","对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。","对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。","对于被调用者的处理","对于调用者的处理","对参数取负","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应到框架代码上:","对应的","对应的“传参和调用分离”的中间表示类似于:","对应的不使用跳转的汇编。","对应的临时变量。每当在","对应的临时变量为","对应的符号。符号","对应的结点时报错。","对应着","对应结点到","对应结点的有向边。对于以","对有兴趣的同学:","对有兴趣的同学:虽然","对未声明的变量的使用是错误。","对象,用以维护","寻找图中是否有连接了少于","将","将两个参数相加","将全局变量放到特定的数据段中","将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入","将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是cal","将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从body_bb跳转到body_cond_bb。","将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。","将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个jump指令,表示从true_bb跳转到next_bb。","将循环语句翻译成","将整数提升为浮点数","将栈上对象obj偏移offset(立即数)处的内容加载到","将每种颜色对应到寄存器上,生成后端代码。","将返回值放到","小于","小写字母打头的是非终结符(如","尝试运行","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","就","就可以被替换成新的非终结符","就是一种静态单赋值的","就是指","尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的","局部作用域","局部作用域(栈顶)","局部变量和","局部变量的名字可以为","工具使用","工具链。","工具链并解压。","工具链并解压到你喜欢的目录。","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","工具链,由","工具需要","工具,在环境配置中已经叙述了安装和使用方法。","左操作数","左操作数;","已提供的语法特性","已经成为了变量","已经提供的语法特性","常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。","常说的","常量传播","常量传播/常量折叠","常量传播/常量折叠的实现","常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下:","常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。","常量传播通常依赖use","常量表达式(step2","常量表达式(占比:7%)","年有一些变化,主要体现在:","年相对于","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","并不是一个会产生值的表达式)。","并且不会找到,出现报错:","并在","并填充其条件表达式、then","并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。","库与","库来实现这一点。yacc","应当变为如下形式:","应改为","应用商店可以很容易地安装","应该等于","应该输出一个可执行文件","建立基本块之间的连接关系。","建议使用","建议各位同学使用我们提供的","建议配置","开头以被","开头的","开始计数)。","开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。","开始,我们要支持多函数了。","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","开始,语法树上出现了各种运算操作结点。在生成","引入的运算符也都适用。","当","当且仅当其对应的二进制位是","当中,我们只需要提取","当以上迭代函数稳定不变时,所有未标记的指令都可以认为是dead","当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用","当恢复一个从步骤1删除的结点时,因为当前它连接了少于","当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有","当操作数不等于","当操作数有一个非","当操作数都非","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","当然也是可以的,而且更清晰简单。","当然,如果一条","当然,如果变量在使用前还是必须先被声明。","当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。","当然,广义上的编译器就囊括了这所有阶段。","当程序读入程序的字符流之后,它首先会被","当遇到","当遇到一个","形式的","形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是ssa)。","形式的语法规范生成相应","形式)","形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_t2来进行。对于y[1],利用下标和getelementptr指令可以得到其地址,然后通过load指令可以得到其值。(getelementptr指令是为了写起来方便快捷;这里你也可以通过基地址_t1和下标1,构造出_t1","形式,哪怕是局部标量,也要用alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。","形式:","形式:branch","形式:dst","形式:jump","形式:return","往往也可以调用qemu环境正确执行,并得到\"hello","很容易通过增加新的非终结符,去掉这些符号。例如","很显然,其中变量","很遗憾,上述程序并不符合","得到的","循环、while","循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于","循环作为示例。","循环可以有以下两种翻译方式:","循环可以看作","循环实现,同学们可以参考着完成","循环我们都需要定义三个跳转标签:begin,","循环括号中的三个表达式/声明自左向右依次为","循环条件","循环的","循环的实现。","循环的控制表达式的求值在循环体的每次执行之前。","循环的特例,我们选择了","循环而言:如果","循环要自带一个作用域。在示例里,for","循环语句","循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果","循环语句的作用域(包含","循环语句的语义和","循环语句翻译成","循环语句还会使用。","必做部分:","必做:risc","必做:测试你是否正确配置好了环境","必须是8的整数倍)。","快速入门","忽略空格和换行","忽略规则:通常用来忽略空格、换行等空白字符。","怎么从","怎么从tac到汇编代码","思考","思考题","性能测试,将根据你的编译器的性能进行评分。","性能评分方案:","总的来说,我们现在利用","总结","恭喜你实现了","恭喜你!到目前为止,你已经成功实现了一个基于","悬吊","意义不同,但","意味着执行时没有通过","成员","成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:","成绩占比","我们为什么要这样做呢?","我们人为规定:els","我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。","我们以","我们使用","我们使用一个","我们使用词法分析器产生一个","我们假定当前栈帧的栈顶地址存储在","我们假设你已经正确设置好了环境变量,否则运行","我们先忽略livenessanalyzer和control","我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program","我们创建一个在令牌流上工作的解析器","我们创建一个在该输入上工作的词法分析器","我们只接受","我们可以为所有指令定义一个基类","我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。","我们可以继承","我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的","我们如何实现","我们定义了另一个变量","我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:","我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。","我们将在中间表示设计中介绍ir设计时候需要考虑的地方和并列举一些实例。","我们将由易到难完成","我们将输入转换为","我们按照上一节划分的编译器阶段,分阶段给出","我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。","我们提供了预编译的","我们提供预先编译好的","我们是以函数为单位来组织基本块的,函数定义为如下的结构体:","我们暂不要求支持不包含函数体的函数声明。","我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句?","我们没有支持","我们注意到,变量","我们用缩进表示树结构,其中","我们的实验框架里是如何处理悬吊","我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如use","我们的框架现在对于","我们的编译器只生成","我们目前的","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。visitor","我们给出risc","我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。","我们能发现","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","我们要增加块语句的支持。","我们要增加对循环语句,以及","我们要增加的是:","我们要增加的是:加","我们要支持条件语句,包括","我们要支持的是全局变量,语法改动非常简单:","我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的","我们还需要支持函数调用:","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。","我们采用","我们需要下载安装","我们需要先引入下面四种针对基本块的集合:","我们需要在符号表构建的过程中,确定","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","我们需要支持函数的声明和定义:","我们首先来看本节指导用例所对应的中间代码:","或","或venv的系统管理不同的python环境。你可以方便地使用miniconda安装最新的python版本,安装好之后使用pip安装依赖即可。","或不定长数组","或者","或自行编译。","截止","截止之前完成","截止前完成","所","所以我们无法用字面量表示","所以,我们不要求支持变长数组","所使用,则这是一个未定义行为。","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","所对应的寄存器在","所对应的数据段。","所有","所有截止时间均为所标日期的23:59:59(utc+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。","所有测试点取算数平均值,最后结果","所用的方法就是的","所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在","所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。","所需的底层类。其中","手册","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","才知道),所以它们都会用同样的","才能执行。","才需要考虑符号表构建。","才需要考虑,届时再介绍其处理方法)。如上例所示,tac","打开","打开microsoft","执行","执行一条","执行完之后,有可能跳转到另一个基本块","执行时","执行汇编中的函数调用指令,开始执行子函数直至其返回。","扩展(乘除法)。本实验中我们不需要其他扩展。","扫描完成","找出函数所有的必要值,标记这些值的定义指令。","技术。","把","把export","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","把右边的编译器选为risc","把图中当前所有结点中,连接了至少","把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。","报告语义错误,如未定义的符号、类型不匹配等。","报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。","抽象语法树相关代码","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令。","指令。phi","指令。不过为了实现循环语句,需要仔细地考虑如何将","指令不支持","指令与其对应,因此上述中间代码可以翻译为如下的","指令与汇编指令比较类似,每条","指令与汇编指令类似,每条","指令为条件跳转指令,branch","指令为跳转指令。","指令分配到内存中,之后每次访问变量都通过","指令即可完成函数返回的工作。","指令将值写入数组元素。","指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的","指令快速地构建满足","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令显式地读写内存。使用上述方案编写的程序满足","指令来完成翻译工作。","指令来完成翻译工作。以","指令来实现,我们还需要引入一条类似的","指令来执行。如果","指令来支持加载一个","指令来简单地实现","指令来翻译中间表示里的","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令的语法是","指令的顺序对结果没有影响)。","指令调度","指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造dag,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。","指令跳转到","指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的","指令选择","指令选择相关的窥孔优化","指令选择相应的","指令都是位运算指令,不是逻辑运算指令。","指令链接:https://github.com/thethirdone/rars/wiki/support","指令集文档在这里,我们只需要其中的","指令集架构,编译实验要求你的编译器把","指令集架构,编译实验要求所实现的编译器把","指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。","指令(例如","指令,但频繁地访问内存将导致严重的性能问题。","指令,则可能需要在","指令,同学们可以在必要时修改或增加","指令,并由此在基本块的开头插入","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","指向父作用域的符号表","指定","指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了c语言操作符的优先级和结合性,因为我们的minidecaf语言是c语言的一个子集,所以这张表格也足够我们的语言使用了。","指导书上的思考题","按删除的逆序恢复所有结点。","按照","按照上文说的,","按照下面的","按照本文档的前几节(riscv","按照汇编约定,data","按照测例的","按照这个规定,parser","按钮的下方,commit","换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。","接下来我们会用到","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,将对我们所使用的中间代码","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","控制流、数据流分析和寄存器分配","控制流和数据流分析","控制流图","控制流图是一个有向图:它以基本块作为结点,如果一个基本块","控制语句(占比:7%)","提交/补交时间是该","提供了","提供了一系列的汇编指令,用以声明全局变量","提供了与中间代码中","提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:","提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。","提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。","提出的寄存器分配算法,并以此代替","提示:","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","提示:发生越界的一步计算是","操作数","操作数一","操作数二","操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于","操作码","操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:","操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。","支持多种语言,包括","改进你的编译器,支持上面提到的寄存器分配算法。","改进你的编译器,支持本节引入的新特性,通过相关测试。","教程","数据段;.globl","数据流分析","数据流图定义及优化在","数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。","数组传参是支持不定长度的","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","数组和普通变量类似,可以分为局部数组和全局数组。","数组的下标操作","数组的传参:","数组的初始化:","数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在","数组类型,其值和地址都可以用一个32位整数存储,故","整个操作序列扫描完毕后,我们就成功建立了所有基本块。","整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体:","整体思路是通过遍历ast的节点,根据节点类型进行相应的处理。推荐先根据ast的遍历顺序写一个框架,再填充具体的处理逻辑。","整型","整数的规则","整数运算越界是未定义行为(undefin","文件","文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与cmake文件实例.","文件,","文件包含以下几个部分:","文件名:","文件夹下,step1","文件夹中的","文件是","文件结构","文件),antlr","文件,gcc","文件,其中写入如下内容","文件,我们能够为","新特性的语义、优先级、结合性和","方便全局优化寄存器分配,减少基本块之间的","方便起见,我们称","方法中先将全局作用域加入栈底,再往上才是","方法对每个函数内的","方法生成每个函数的","方法遍历解析树中的","无","无条件跳转到","无条件跳转语句","无法找到,因此编译器需要在扫描到","日","时","时定义变量符号","时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。","时能快速找到","时请用完整路径。","时都要输入完整路径。不过对于","时间安排及补交政策请看实验进度安排。","时,从栈顶作用域符号表查找","时,会执行第一个子句;当控制条件等于","时,你需要一个机制来检查","时,其结果为","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","时,如果有","时,定义了另一个变量","时,应终止执行并返回","时,我们通常是在解析树(pars","时,我们需要分析","时,我们需要遍历解析树(pars","时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。","时,条件表达式的求值结果为第三个操作数所求得的值。","时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非","时,表达式","时,选择没有","时,逻辑与操作符","时,逻辑或操作符","时,逻辑非运算符","时,遇到的子节点是","是","是一个","是一个与","是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。antlr","是一个声明,其声明发生在控制表达式的第一次求值之前;如果","是一个很像","是一个数组类型,b","是一个整数类型,a[b]","是一个根据","是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl","是一条声明,则其所声明的变量所属的作用域是整个","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_t0","是两个表达式节点,对于if语句,这两个变量是两个语句节点。","是什么,不用担心,我们稍后会看到。","是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在","是其中存放代码的段(section),.bss","是合法的","是合法的代码片段。","是否成功安装,详见risc","是否正确就可以知道:是","是否正确就可以知道:是ast","是否通过","是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。","是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。","是如何定义的,每个token都会以t_开头。如t_semi","是对大小写敏感的)","是左结合的,所以表达式1","是必要值","是未定义行为。这一条规则对于后续","是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回","是某个","是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","是逻辑真(int","显然,两个代码块里的变量","更具体来讲是创建","更新的时间,这几乎等于你","替换为你自己的","最后一次触发","最后一次触发的","最后将当前基本块改为next_bb。","最后新增store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。","最后,扫描语句","最新的","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","最终我们将以上的这些“指令”展开。例如loadfromstack可以保守地展开为以下risc","有一些差异。","有两个原因我们要求同学们从头设计一个编译器:","有两种循环语句:for","有了上述两条指令,可以将测试用例翻译如下:","有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:","有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器:","有了这些语句以后,我们的ir就可以描述源程序的语义了。","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","有以下三种特点:","有没有更好的解决方案呢?","有短路现象,我们不要求。","有短路现象,我们的实现中不要求大家考虑它们的短路性质。","有能力的同学可以考虑将原先","有许多可行的翻译方法,例如","有,我们可以将两种方案结合起来。","服务器环境如下:","服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。","本","本地编译器","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本实验指导使用的例子为:","本次实验一共设置","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","本步骤中无须新增新的","本步骤中没有需要新增的","本步骤中语义分析没有特别需要增加的内容,只需要在扫描到","本步骤主要涉及的语法为主函数和","本步骤引入全局变量,在引入全局变量之后,ast","本步骤语义分析阶段的处理方式和","本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。","本节主要就是引入了跳转,后面","本节实验要求实现论文","本节指导用例对应如下","本部分仅供参考,你需要根据自己设计的ast和ir进行调整。","机器上、把","机器上,却要编译到","条件和循环(step7","条件表达式","条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于","条件跳转语句","条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。","条边的结点。","条边的结点标记为","条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于","条边)。","条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。","条边,所以我们总能为它指定一个颜色,使之不和相邻的最多","来创建一个新的分支。","来判断结点类型,而是调用结点自身的一个","来处理","来存储操作数的值或者寄存器编号,使用一个","来安装用户态的","来实现这个接口。","来手动更新。","来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要","来生成对应的","来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。","来表示跳转用标签,以此和函数入口标签区分开来。","来说,这一点其实几乎已经被语法保证,因为其","构建","构建并运行我们自己实现的编译器,你将会看到","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","构造算法。一种常用的算法是将整个过程分为:插入","架构的","架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。","标准为","标准正式发布前的最后一版草案,根据","标准的编者之一","标准相比只有表述上的差异)","标准草案","标准草案保持一致","标准调用约定中要引入","标签。","标签和","标签处","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","标签的维护。","标签(示例中的","标签,这样才能确定每一条","标记而且存在跳转语句跳转到这个行号时。","标记,即不能跳转到基本块中间。","标识符的规则","标识符(用于表示变量名)","栈帧","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","栈帧确定和最终代码生成","树,transform","根据优化等级不同会有数百个不等的","根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。","根据调用约定,调用其它函数后caller","根据这个方程,我们可以通过迭代更新的办法求出每个基本块的","根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要","根目录下的","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","格式","格式提交到","格式的实验报告。你需要将报告放在仓库的","格式的实验报告,你需要将报告放在仓库的","框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如","框架使用了","框架本身在","框架里已经提供了需要的","检查变量声明的类型是否正确","检查右操作数的类型","检查左操作数的类型","检查所有的操作数和运算符的类型是否匹配;","检查操作数的类型是否匹配","检查是否安装成功","检查是否有","模式。如果你还不知道","模式。这个文件里除了类型tacgen之外还有一个辅助类tacfuncemitter,它用于处理产生tac代码过程中一些相对底层的细节。在本框架中,tac","模式就是常见的一种。","模式有所了解,或者假设你已经知道在遍历","模式生成","模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个","模式的遍历代码,逐个解析树结点处理并生成","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","模式递归查找","模式速成","模式遍历","模式遍历这个树并对这个树的每个节点进行一些操作。","模式,代码变得结构清晰且便于扩展。","模式,并以框架中的代码为示例进行介绍。","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","模式,针对解析树的不同节点调用对应的处理函数,来生成合适的","模拟","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","模拟器和一个简易内核","模拟器运行","模拟器,不过只能在","正因如此,许多编译器优化算法都建立在","正确性测试:你需要通过","此处举个例子:","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","此外,如果安装了多个版本的","此外,我们提供了","此外,我们的","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。","此部分对应框架源码位置:","此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。","步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:","死代码消除","死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。","死代码消除通常依赖于use","死代码消除(dead","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","段内存)。","段或","段里。","每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。","每个","每个步骤结尾的","每个节点的出度都是","比如5","比较大小和相等的二元操作:、、>=,","汇编","汇编。","汇编中","汇编中有","汇编中有对应","汇编中的","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)stage","汇编代码,将栈帧空间扩大","汇编代码,并通过","汇编代码:","汇编变成","汇编指令来翻译","汇编标签","汇编的思想是一致的,risc","汇编课上应该讲过,实际中(包括","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","汇编,然后再使用","汇编:","没有被初始化的(局部)变量的值是不确定的。","法调试,发现是","注意","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","注意这里的","注意,我们虽然是用的工具前缀是","注意:","注意:if","注意:大实验工作量较大,并不推荐所有同学都参加。","注意:安装了qemu之后,直接运行","注意:引入数组后,左值不再一定是","注意:此处不要直接写一个可以计算得到结果的式子","注意:由于子模块使用","注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。","活跃变量和活跃变量方程","活跃变量集合","流","流:","测试。","测试中看到。","测试你","测试用例,一起走过它的编译全流程:","测试运行的","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","添加","添加一个相应的","添加第三方库目录","添加项目的","源代码到你的代码仓库里,并为你的整个项目编写一个","源代码目录","源文件","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","灰色部分表示相对上一节的修改。","点。如果有","然后从这里上下载我们预编译的二进制程序包","然后在","然后让它等价于","然后,21","然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。","熟悉框架和基础知识","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的","版本的包管理器。请尝试使用","版本高于此版本。","版本,如果你是其他平台(如m1","版本:","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","环境下安装","环境配置","环境配置和实验框架环境配置)配置好实验环境。","环境(如","现在尝试运行","现在我们可以看到如何在","现在我们开始正式遍历","现在让我们来看看示例所对应的","现在,使用","甚至可以支持","生成","生成。和语义分析一样,这部分也使用了","生成中间代码","生成器和","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","生成汇编的话,为了支持","生成的","生成的ast可能如下:","生成的以下中间代码无法成功生成目标代码。","生成的可执行程序只能在你本机(x86)上运行。","生成词法分析器和语法分析器,能够将","生成词法分析器和语法分析器,解析源代码生成解析树。","生成过程中,每当扫描到","用上面提过的活跃变量分析可以算出,在","用于分配内存空间:","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","用户】qemu","用户】spike","用户环境配置指南","用户环境配置指南安装","用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitloadfromstack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitstoretostack,我们需要手动生成一条nativestoreword指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。","由于","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值。","由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增branch指令来进行分支跳转,可以参考短路求值进行学习。","由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(live","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","由于循环体的存在可能被赋值多次,因此上述写法并不符合","由于循环语句可以嵌套,所以","由于每个组的ast和ir设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。","由于每个结点只含有一个语句,因此其","由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其","由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用","由于源语言(minidecaf)和目标语言(risc","由于现在","由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。","由此,上述程序中每一个变量只被赋值了一次,满足了","由此,我们的程序可以改写为:","登陆服务器?","的","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的“替身”。每次需要用到变量","的。根据通过测试样例情况评分。","的。看上述图染色算法流程,可以发现如果一个点不是","的一个纯","的一种参考方法。","的主函数编译为","的主函数编译全流程:","的代码片段,你可以以任意方式处理。","的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(scope","的使用,结合我们的文档,来快速上手","的值。因此,为了在后续使用变量","的值为0,则跳转到","的值为真(不等于0),那么应当执行","的值作为参数","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值是不确定的。","的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。","的值来自于","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,一种可能的写法为:","的值,然后将返回地址弹出栈中,跳转到返回地址。","的入门,但这不是必须的。","的全局变量,同时在","的全局唯一的作用域可以被当作“函数作用域使用”,在","的内容","的内容进行细微修改。具体来说,需要在","的内容,就是上面汇编输出的简化版本","的函数作用域。","的函数执行到了它的","的分支跳转指令。由于","的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看","的博文,其与","的可执行文件,将所有源文件编译链接到这个可执行文件中","的同学可以使用","的含义与","的图标,代表当前","的图标,或者在网页左侧选择","的地址。","的基础之上,例如:死代码消除(dead","的声明,risc","的处理。","的处理方式更符合你的直觉。","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里","的完整流程","的定义指令都可以认为是dead","的定义,从","的定义,程序是有bug的。实际上,risc","的实现,大家可以直接运行通过","的实验报告需要放在","的实验,不会有额外扣分。","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","的工具链使用","的工具链使用。","的工具链使用和运行实验框架。","的工具链使用总结了","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的左侧,可以看到一个画圈的","的左操作数必须是一个可修改的左值(modifi","的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。","的帐号名后,助教会给每个人建立一个私有的仓库,url","的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。","的形式提供。","的形式表示(k表示变量的编号)。","的思考题。","的情况下合并这两个点吗?","的成绩并替代期末考试对应权重)。","的成绩并替代期末考试对应权重)。注意,你需要在完成","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的截止时间;","的所有测例。","的所有测试样例以及附加测试的测试样例,这样你可以获得","的报告中(注意不是","的报告还需要额外包含","的指令,我们直接给出翻译结果:","的支持:","的改动如下:","的数据流分析一节。","的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。","的文档。","的文档都将以如下形式组织:首先我们会介绍当前","的文法文件","的文法:","的新特性,请保证你所使用的","的方法(来源于《高级编译器设计与实现》(鲸书)):","的方法,可以直接继承","的时候选择shift,从而对悬挂else进行就近匹配。","的时间,而不是","的时间;","的最小版本要求","的标准调用约定","的根结点类型","的概念,并介绍它的布局。","的正确性得分。","的求值在循环体的每次执行之后。","的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。","的注释里给出的提示。","的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块","的测试样例。","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的源码进行编译,附","的生成","的用户态模式,我们使用","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的目标是实现论文","的目标是支持数组的初始化和传参:","的目标是支持数组:","的第一次赋值是不必须的,因为变量","的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。","的组合。ssa","的组合针对局部变量生成符合","的结果为","的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是","的结果是其操作数的相反数。","的结果是操作数的乘积。","的结果是操作数的和。","的结果是第一个操作数减去第二个操作数所得的差。","的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为","的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符","的编译器框架,所以今年的实验就叫","的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。","的编译结果","的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。","的要求。","的要求。(注意,ssa","的要求,且避免了繁琐地构造","的要求,因为其中变量","的规范是一致的。不过有一点需要注意:","的解决方案。","的记号:","的词法分析和语法分析部分。","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","的跨平台性,理论上也可以在","的转换经过了","的输出。","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","的运算结果为","的返回码,也就是我们","的那个值","的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。","的阶乘。","的颜色和","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","的,它会在步骤1被删除。","的?","目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。","目录下)","目录下为符号的实现。其中","目录下为符号表的实现。其中","目录下实现了生成","目录下所有的","目录中输出生成的代码。","目录到头文件搜索路径","目标代码生成","目标代码生成器(target","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","目标代码生成步骤的关键点与","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将ir翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。","目标寄存器","目标平台汇编代码生成","目标平台汇编代码生成在","目标架构相关优化","直接使用包管理器安装:","相互冲突,需要各一个寄存器,而","相关信息","相关的解释和详细说明可以参考:","相关资源","相同,从而意外地和","相同,即“如果","相同,导致溢出到内存。","相同,针对中间代码指令,选择合适的","相干寄存器","相比于step","看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list,","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","看起来很像汇编,与汇编最大的区别在于","真实硬件的性能相对差值是比较恒定的(如比较","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","确定栈帧后生成函数的prologue和epilogue,其中主要包括calle","示例","示例程序。请注意","示例:_t2","示例:_t3","示例:branch","示例:jump","示例:return","示例:store","禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。","种颜色可用于染色(对应","种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。","称为调用序列(call","程序。","程序。因此,在符号表构建阶段,扫描到","程序中使用我们生成的解析器。","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序代码编译成","程序代码里的一个函数调用,包含了下面一系列的操作:","程序入口文件","程序出现了分支结构,我们需要开始考虑跳转语句了。在","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序由标签和指令构成:","程序的入口点在","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","程序的生成以函数为单位,对每个函数(step1","程序的语义分析。","程序的起始规则","程序编译到","程序翻译成","程序翻译成满足","程序解析为抽象语法树(ast),并完成对","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","程序,ast","程序,在启用优化选项编译时,编译器可能产生意料之外的结果。","程序,我们将tacgen.transform代码贴了一些在这里:","程序:","稍微一提,关于按位取反,我们使用补码存储","空","空集","符号对应的初始值。","符号所代表的地址","符号表","符号表总是和作用域相关的。例如,在","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(ast),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。","符号解析的核心工具是符号表(symbol","符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。","符号解析(namer)","第一个编译器(step0","第一次进度检查:第六周周六(10.19)","第一种(即实验指导中的翻译方式):","第一部分:依赖环境准备","第三周周日(9.29):stage","第三方库","第三次进度检查:第十二周周六(11.23)","第三部分:ast","第二次进度检查(中期检查):第八周周六(11.2)","第二种:","第二部分:文法文件的编写与","第八周周日(11.3):stage","第六周周日(10.20):stage","第十五周周日(12.22):stage","第十六周周日(12.29):stage","第十周周日(11.17):stage","第十四周周日(12.15):stage","第四周周日(10.6):stage","第四次进度检查(期末检查):第十六周周末(12.29)","第四部分:语义分析","等","等。","等价于","等价于将其替换为一个非零常数,比如","等分析器。","等均为","等模拟器来运行","等符号都可以作为一元运算符出现,比如!x,","等跳转语句时。","等跳转语句(但可以包含","等),当然你也可以在类","等,然后参考下面","简单的启发式寄存器分配算法","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","算术语句:这是计算机最基础的语义。","类中增加生成相应指令的代码。","类中调用的。并且希望大家一定要对着代码看。","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类似的","类似的指令:","类型","类型为","类型具体指","类型和","类型基类","类型检查","类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。","类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。","类型检查(typer)","类型检查:各语句和表达式是否类型正确。","类型的规则(这里只支持","类型系统","类型转换","类型)","类型,但可以忽略返回值达到类似的效果。","类来处理它。","类来通过","类的","类里实现了维护","类,并在对应结点的","系统环境(mac","索引基底","索引运算","组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。","组织如下:","组织实验,各个","组织文档,每个","终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的","经过","经过使用","经过常量传播/常量折叠优化后,代码变为:","经过常量传播优化后,可以得到:","结合性是一个操作符的性质,例如","结合,也就是说上面两种理解中只有前者合法。","结合?","结尾,则不需要加入新的边。","结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。","结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共","结构。现在,我们想要编写代码对","结构:","结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","结点","结点。","结点。这里我们可以使用","结点包含条件表达式cond、then","结点时,不要忘记开启一个局部作用域。","结点时,会依次检查该操作的两个操作数","结点时,若当前不处于任何循环内,则报错。","结点构建抽象语法树,最终生成中间表示或目标代码。","结点的基类","结点类实现(进行了适当的简略):","结点,生成","给出","给当前函数新增一个基本块body_bb表示while语句的循环体入口。","给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。","给当前函数新增一个基本块next_bb表示if之后的基本块。","给当前函数新增一个基本块next_bb表示while之后的基本块。","统计与","继承自","继续看上述例子,我们先关注只有","维护一个set,存储所有必要值的定义指令。","综上所述,我们上述中间代码翻译成如下","编写","编写simplec.g4","编写前端、设计","编写程序使用循环计算","编写程序计算","编译","编译优化的基础是数据流分析。","编译到","编译原理经典书籍","编译后运行时间为","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器后端的主要功能是将中间表示(ir)转换为目标架构的汇编代码,在我们的课程实验中即将tac翻译为risc","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器应当只接受","编译器标志,这里没有额外添加,使用默认","编译器的构成","编译器的构造中会使用到很多设计模式,visitor","编译器结构","编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。","编译如下程序来了解如何翻译逻辑非运算符到","编译实验","编译实验分为多个","编译实验框架,我们给大家的代码框架中已经包含所有","编译程序进行验证。","缩小调试范围,通过把","翻译中间代码","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","而","而不是","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","而在step5","而操作数可能是一个立即数,也可能是一个变量。例如以下的情况:","而是用","而看到第二个时只能选择有","而这里的","而非","能够帮助我们生成解析源代码所需的词法分析和语法分析工具。","能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有","脚本会从官方","自动生成的","自己的仓库中,放在仓库根目录下的","节点","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","节点来表示它,给出的参考定义如下(框架中已经提供):","节点来表示它,给出的参考定义如下:","节点的定义位于","节点里,也可以单独设置一类节点继承","节点,还需要类似地实现条件表达式节点。","若","范围内的整数常量,","范围内的非负整数,使得运算过程中发生越界。","获取","获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。","获得了每个基本块的","虚拟机,使用","虽然也运行在我们的","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。","行展示了使用","补交政策","表示。","表示使用","表示分组,|","表示存储空间大小为","表示寄存器名,","表示将","表示接下来是一条命令,记得运行的时候去掉","表示立即数值,如:li","表示输出到","表示选择,*","表示逻辑假,其他的","表示预留一块连续的内存,4","表达式","表达式的规则","表达式,只使用","被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(reach","被绑定到","被赋值了两次。正确的写法应该为:","被输出到终端中。","要做什么","要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用","要求的代码。","规则:定义语言中各种结构的模式。","规范","解析器的标准方式:","计算完成后,calcul","计算机无法运行。","让你的编译器能够通过","让我们先来看看示例对应的","让我们来看看示例所对应的","让我们考虑","记号书写语法规范,采用类似","记录函数调用情况(可选):你也许需要在subroutineemitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。","设置","设置环境变量不管用,要么把它放到系统目录","设置调试模式下的编译器标志,开启","设置项目名称和使用的语言(cxx","设计","设计,tac","访存语句","访问","访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理:","访问它也不能通过","访问并生成","访问并生成条件表达式的","评分会以每个","评分方法","评分标准","评测将会在我们提供的服务器上进行,通过","识别。","词法分析","词法分析与语法分析","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析器头文件","词法分析器源文件","词法分析器(lexer):将输入的源代码转换为一个个的标记(token)。","词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。","词法分析相关代码","词法分析程序位于","词法规则:定义词法单元(如关键字、标识符、符号等)。","词法语法分析","诚信守则","该方程说的是一个基本块的","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","详细讨论。","详细说明你的代码的运行逻辑","语义分析","语义分析器(semant","语义分析步骤中,我们要遍历","语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","语义规范","语义计算中被用到。","语句","语句。","语句不总是有","语句不给任何变量定值,load","语句修改为","语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的","语句则会给对应变量定值)。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句和","语句和条件表达式时递归地访问其子结点即可。请注意","语句和条件表达式(又称三元/三目表达式,ternari","语句块","语句块。","语句块和可选的","语句基类","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以","语句所在的最小的循环语句的循环体的末尾。","语句所在的最小的循环语句的执行。","语句既可以带","语句时应当跳转到的位置。","语句时,都需要调用","语句是否在一个循环内。这可以通过修改","语句没有","语句没有返回值的情况是在哪一步处理的?报的是什么错?","语句生成过程中需要动态维护","语句的","语句的实现。","语句的实现已经在框架中给出,同学们可以参考并实现","语句的执行便已经完成。","语句的结束位置。如果","语句的结束位置,从而跳过","语句的规则","语句的语义和","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语句相类似,但是请额外注意以下两点:","语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。","语句结点的定义:","语句而言,当控制条件不等于","语句要么出现在循环体里,要么其就是循环体。","语句跳转到何处。因此,在","语句返回的常量,为之分配一个临时变量,再生成相应的","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句需要一个值,我们可以理解为带返回值的","语句)。","语句,完成本步骤之后,你的编译器将支持将一个仅有","语句,意味着将程序的执行跳转至该条","语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的","语句,意味着终止该条","语句,我们需要设计","语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:","语句,那么应当跳转到此处,执行循环之后的指令。","语法上我们继续修改","语法上改动不大","语法上没有太大改动,","语法上没有改动。","语法上的改动是:","语法上,step5","语法上,我们需要修改","语法分析","语法分析器头文件","语法分析器源文件","语法分析器直接产生的实际上是一棵语法分析树,而构建","语法分析器(parser):将标记(token)转换为抽象语法树(ast)。","语法分析树的建立可以说明所输入的","语法分析相关代码","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","语法定义","语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为","语法改为了","语法文件,定义源语言的解析规则。","语法要求从","语法规范","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","语言中的基本类型只有","语言中规定只有使用了返回值才是未定义行为,而","语言中,我们可以在全局作用域中定义名为","语言中,逻辑运算符","语言子集","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?","语言的完整编译器,能够把","语言的思路,我们可能给出如下写法:","语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。","语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。","语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个","语言相同。","语言相同,注意条件表达式优先级只比赋值高。","语言相同,注意检查","语言程序","语言规范规定,允许局部变量是可变长度的数组(variabl","请下载isa","请务必注意上表中的两个变量","请将你的作业放置在分支stage","请将你的整个stage","请将实验报告以","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意","请注意我们提供的预编译","请注意,tac","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","请注意,翻译所得的","请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。","请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到","请画出下面","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","读内容","课程中覆盖,这里重提一下","课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度)","课程实验的目标平台为","课程问答墙","调用不同的visit","调用了","调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量t1到tn,然后按照mv","调用函数","调用函数名","调用约定","调用约定。","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp","账号上,才能将其克隆下来。","赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。","赋值语句","赋值运算","跑在","路径","路径)测试是否能正常使用:","路径,比如","跳到这","跳转到","跳转到_l2","跳转到_l2,跳过else块","跳转目标","跳转语句应该怎么定义?这里我们需要引入基本块的概念。","跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。","转化为如下形式的","转化:","转换为","转换为一个","转换为中间代码。","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输入,输出汇编代码。","输出","输出成","输出的汇编比看什么文档都有用。","输出结果","输出结果,能看到是","运算符","运行","运行你的程序。经过测试","运行在我们的","运行实验框架","运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接","运行时库","运行时库是解析器生成的代码在运行时所依赖的代码。对于","运行时库的","运行时的编译链接","运行时目录(在源码的","运行测试","返回","返回值实现。","返回值(32","返回指令即可。不难看出,本例对应的三地址码为:","返回类型","返回类型,这可以通过忽略函数的","返回表达式的类型","返回语句","返回,例如","还是","这一","这一信息。","这一函数里","这一插件。","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步我们终于要增加变量了,包括:","这一步是","这一节引入的","这一解决方案也被称为","这个","这个token。而对于一些复杂的","这个临时变量,在符号表中存储","这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:","这个思路相比代码框架中的启发式寄存器分配算法有以下好处:","这个数字是一个表达式,","这个方程的直观意义是:","这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。","这个符号时,应当为该符号设置一个成员,存储","这个问题被称为","这也是合法的","这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li","这时候你的编译器应该能通过基础实验的所有测试样例(stage","这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配?","这是否意味着原本就在caller","这是我们程序的主文件,展示了如何在","这条语句后已经为其定义),而","这条语句时,中间代码先把立即数","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。","这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。","这样的奇怪的","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种“gcc","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这种汇编代码模式在数组访问中较为常见。","这种,但仍然不允许类似","这种,同样也是未定义行为。","这篇实验要求实现的论文的解决方案","这部分的工作流程如下:","这里举几个例子:","这里介绍一种","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。","这里将中端的tacunaryop.neg翻译为了后端的rvunaryop.neg,在后端输出汇编时,我们直接将rvunaryop.neg转换为小写字符串取了11位以后的字符,直接输出为neg(参考unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在rvunaryop中增加对应的同名的enum字段。","这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_t0与a1相干涉(指令4的use集合、指令3的liveout集合包含a1,_t0在指令3的def集合中),因此_t0不能被分配到a1;同时_t0也与a0相干涉(指令6的use集合,指令5的liveout集合包含_t0,a0在指令5的def集合中),最终_t0被分配到一个新的寄存器t0。而_t1可以安全地被分配到a1,故指令4被视作无用指令消除。","这里我们以一种经典","这里我们需要关注源文件backend/reg/bruteregalloc.py中的bruteregalloc类。","这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的riscvsubroutineemitter类和backend/reg/bruteregalloc.py中的bruteregalloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。","这里的","这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。","这里简单地举几个例子。","这里进入了tacfuncemitter.visitload:","进一步地,你可以实现符合静态单赋值要求的","进一步如果我们进行死代码消除,可以得到:","进度检查","进行两遍扫描,分别完成以下的检查:","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","进行扫描。很容易写出递归的","进行真正的函数调用:可以使用emitnative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","进行隐式类型转换","连快速排序都写不了。","适配不同指令集(risc","选做二说明","选做实验不接受补交。","选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。","选做实验二说明","选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。","选做部分:","选项一","选项二","选项分别用于禁止生成","选项用于设置输出目录。我们将在","选项):","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","通过例子学习,一个仅有","通过把","通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。","通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用;","通过编写","通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","通过这种方式,我们能够将解析树转换为精简的抽象语法树(ast),为后续的中端和后端处理提供基础。","逻辑与","逻辑与和逻辑或。可详见step4。","逻辑操作符","逻辑表达式会麻烦一点,因为","遍历。","遍历所有语句,找出常量定义,将其全部加入常量表。例如:","遍历时的上下文信息(参数","遍历:","那么在扫描到加法操作的","那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的","那么语义检查时应当报错。","那么,在进入","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","部分处理思路","都可以被省略。省略","都是其中存放数据的段,前者零初始化后者须指定初始值。","都是必要值,而","都是活跃变量。但观察代码可以发现","都是继承","都是逻辑真。","都继承自","配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。","配置。","配置文件","配置文件,需要你手动添加一个","配置文件里)","采用","采用上述方式,x处于call","里加入新的","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","里的","里的临时变量也是","里的实验报告为准,详见补交政策。","里面的","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","重复上一步,直到set不再变化。","重复上述过程,直到常量表不再增加为止。","重新设计”的过程,一步步实现从简单到复杂的","重用一下","针对","针对全局变量,我们需要新设计","针对函数特性,我们需要设计","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对块语句,我们需要设计","针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对局部变量定义和赋值操作,我们需要设计","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对循环语句和","针对数组,我们需要设计","针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","链接,你需要将你的","问题","问题。","问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。","问题的?请简要描述。","附加测试中performance部分测试样例,以","附:函数调用相关","除了分配数组,我们还需要考虑如何访问数组元素。通过","除了替换位于","除入口语句外基本块中不含任何的","除出口语句外基本块中不含任何的","除非特别声明,子表达式求值顺序是未规定行为(unspecifi","随之而来一个问题是:不同变量可以重名了。","随后,在上述代码的基础上,","随后,我们需要实现","难度不大,但有了数组让我们能够写很多有意思的程序了,step11","集合。如果我们把基本块内所有","集合中去掉","集合以后的部分。","集合以后,我们需要进一步地计算基本块内每个","集合就是源操作数对应的所有变量。","集合是","集合是其所有后继基本块的","集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。","集合是在这个基本块内被定值的所有变量。所谓的定值","集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出","集合的变量加上","集合的并集,而且","集合,以下是求解的伪代码:","集合:一个基本块的","集合:在离开基本块出口的时候是活跃的那些变量。","集合:在进入基本块入口之前必须是活跃的那些变量。","集要么是空集,要么只含有一个元素。","零或一次。","零或多次,+","需要以","需要增加的类型检查重构进","需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令sourc","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的","需要注意的是,所有的","需要注意的是,由于我们目前只支持一个","需要特别注意的是,在","需要用到的知识点,其次我们会以一个当前","需要申请更大的","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。","需要说明的是","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。","静态单赋值","静态单赋值这一小节参考并改编自北航的编译课程实验文档:","静态单赋值(ssa)","静态单赋值(static","项目结构","顺着ud链,可以找到","预期目标","预编译的较新版本的工具链对","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","首先把文件夹riscv64","首先检查是否存在空闲的寄存器,有则直接分配给当前变量。","首先,我们应该把","首先,我们需要为","首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。","默认在","(definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:stor","(也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","(占比:0%)","(可选)设置环境变量,方法与","(如果你不用系统自带的","(小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","(更新","(汇编)保存",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",不额外扣分。也可以继续大实验不做基础实验,但是至少要在",",也就使得",",书面作业和日常成绩",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",如果你的程序执行时间为",",将作业提交到那个仓库即可。",",并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将",",期末成绩",",看她们是否需要换成新函数。",",设置“开发者模式”以及“启用子系统功能”。",",静态单赋值的",":"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"实验简介","keywords":"","body":"MiniDecaf 编译实验\n\n实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。\n\n实验概述\nMiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step。每个 step 大家都会完成一个可以运行的编译器,把不同的 MiniDecaf 程序代码编译成 RISC-V 汇编代码,可以在 QEMU/SPIKE 硬件模拟器上执行。随着实验内容一步步推进,MiniDecaf 语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用 MiniDecaf 语言实现的快速排序程序,与 C 语言相同。\nint qsort(int a[], int l, int r) {\n int i = l; int j = r; int p = a[(l+r)/2];\n while (i p) j = j - 1; \n if (i > j) break; \n int u = a[i]; a[i] = a[j]; a[j] = u; \n i = i + 1; \n j = j - 1; \n } \n if (i l) qsort(a, l, j); \n return 0;\n}\n\n2024 年秋季学期基本沿用了 2023 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。\n从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。\n实验起点和基本要求\n本次实验一共设置 13 个步骤(其中 step 0 和 step 1 为实验框架熟悉,不需要修改框架代码)。后续的 step 2-13 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。\n我们以 stage 组织实验,各个 stage 组织如下:\n\n \n 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。\n \n \n 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。\n \n \n 变量和赋值(step5)。在这个 stage 中你将第一次支持变量声明与赋值。\n \n \n 作用域和块语句(step6)。在这个 stage 中你的编译器将支持作用域,以便支持后续的条件和循环。\n \n \n 条件和循环(step7-step8)。在这个 stage 中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。\n \n \n 函数(step9)。在这个 stage 中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。\n \n \n 全局变量和数组(step10-step12)。在这个 stage 中,你将支持全局变量和数组,数组中包括全局数组和局部数组。\n \n \n 寄存器分配算法(step13)。在这个 stage 中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。\n \n\n\n\n其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。\nstage1 - stage5 为 5 个基础关卡,你需要通过它们以拿到一定的分数(35%)。\nstage6 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评 7% 的成绩并替代期末考试对应权重)。\nstage7 为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评 8% 的成绩并替代期末考试对应权重)。注意,你需要在完成 stage6 后才能尝试 stage7,否则无法获得对应分数。\n我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。\n我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。\n诚信守则\n请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。\n实验提交\n大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf-你的学号 ,将作业提交到那个仓库即可。\n每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git checkout -b 来创建一个新的分支。\n本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。\n.gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件;\nprepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。\n在 CI 中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过 CI。\n我们只接受 pdf 格式的实验报告。你需要将报告放在仓库的 ./reports/.pdf 路径,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。\n实验报告中需要包括:\n\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n评分标准\n对于每个阶段(stage):\n\n80% 的成绩是自动化测试的结果,你可以直接在 git.tsinghua 的 CI 测试中看到。\n20% 的成绩是实验报告,其中对实验内容的描述占 10%,对思考题的回答占 10%。\n\n评分会以每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。\n如果你认为成绩有问题,请及时与助教联系。\n时间安排及补交政策请看实验进度安排。\n学术规范\n由于实验有一定难度,同学之间相互学习和指导是提倡的。\n对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。\n如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。\n我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。\n代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。\n相关资源\n\n实验指导书(首页有实验报告提交要求)\n实验指导书勘误表\n课程问答墙\n实验思路指导与问答墙\n\n参考资料\n\nWriting a C Compiler: by Nora Sandler\nnqcc\n\n\nhttp://scheme2006.cs.uchicago.edu/11-ghuloum.pdf\n\n备注\n\n1. 关于名字由来,由于往年的实验叫 Decaf,我们在新的且更简单的语言规范下复用了 Decaf 的编译器框架,所以今年的实验就叫 MiniDecaf 了。 ↩\n\n"},"docs/misc/schedule.html":{"url":"docs/misc/schedule.html","title":"实验进度安排","keywords":"","body":"实验进度安排\n所有截止时间均为所标日期的23:59:59(UTC+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。\n必做部分:\n\n第三周周日(9.29):Stage 0 截止 熟悉框架和基础知识 (占比:0%)\nstage 0 不需要你编写任何代码,stage 0的思考题请与stage 1一起提交。\n\n\n\n\n第四周周日(10.6):Stage 1 截止 常量表达式(占比:7%)\n\n第六周周日(10.20):Stage 2 截止 变量(占比:7%)\n\n第八周周日(11.3):Stage 3 截止 作用域(占比:7%)\n\n第十周周日(11.17):Stage 4 截止 控制语句(占比:7%)\n\n第十四周周日(12.15):Stage 5 截止 函数(占比:7%)\n\n函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。\n\n\n\n选做部分:\n选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。\n\n第十五周周日(12.22):Stage 6 截止 全局变量和数组(占比:7%)\n\n第十六周周日(12.29):Stage 7 截止 寄存器分配与代码优化(占比:8%)\n\n\n补交政策\n\n假设 a 日 24:00 是某个 stage 的截止时间;\na + k (k \n提交/补交时间是该 stage 截止 10 天内这个 stage 的 branch 最后一次触发 CI 的时间;\n更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。\n如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。\n\n\n选做实验不接受补交。\n\n"},"docs/step0/errate.html":{"url":"docs/step0/errate.html","title":"勘误表","keywords":"","body":"勘误表\n在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。\n \nQ:使用 pip install -r ./requirements.txt 命令无法正确安装依赖?\nA:如果你安装了多版本的 python,使用 pip 命令未必会对应 3.9 版本的包管理器。请尝试使用 python3.9 -m pip install -r ./requirements.txt 安装依赖。\n \nQ: 代码框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。\n经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错:\nutils.error.IllegalArgumentException: error: encounter a non-returned basic block\n请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?\nA:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。\n \nQ:我怎样才能知道我的提交通过了所有测试用例?\nA:可以通过本地测试或者通过 CI 结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。\n \nQ:如何提交课程报告?\nA:\n\n请将实验报告以 pdf 格式提交到 git.tsinghua 自己的仓库中,放在仓库根目录下的 reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 reports/stage-1.pdf。\n\n最新的 CI 会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作 pass。\n\n如果关于报告提交有任何问题,请及时联系助教。\n\n\n"},"docs/ref/riscv.html":{"url":"docs/ref/riscv.html","title":"RISC-V 参考资料","keywords":"","body":"RISC-V相关内容补充\nRISC-V官方资料\n不建议阅读,太过冗长,这对于编译知识提升非常有限。\nRISC-V 官方\n请下载ISA Specifications (Ratified)中的Volume 1, Unprivileged Specification。\n如果你时间充足,你可以阅读:\nChapter 24 RV32/64G Instruction Set Listings\nChapter 25 RISC-V Assembly Programmer’s Handbook\n如何快速查询RISC-V指令\n在线编译器\n你可以使用Compiler Explorer (godbolt.org)来快速获得一个riscv指令的实现\n在左边输入以下例子\nint mod(int x, int y) {\n // 注意:此处不要直接写一个可以计算得到结果的式子\n // 比如5 % 8会被编译器优化为5\n return x % y;\n}\n\n把右边的编译器选为RISC-V(32-bits)中的任何一个,在编译选项中写上-O2(减少不必要的指令生成),翻译一条指令看看效果。\n本地编译器\n你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 或者 -O2 选项):\nint foo(int x) {\n return !x;\n}\n\n不出意外你会获得如下结果:\nfoo:\n seqz a0,a0\n ret\n"},"docs/step0/intro.html":{"url":"docs/step0/intro.html","title":"实验环境简介","keywords":"","body":"实验环境简介\n2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。\n服务器环境如下:\n\nUbuntu 23.04\npython 3.11.4\n\n注意:\n\n禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。\n为了安全起见,服务器仅可通过校内网络访问。\n服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。\n\n提示:\n\n如何使用 ssh 登陆服务器? ssh username@ip -p port\n # 假如你的账号为 2024000001,服务器 ip 地址为 192.168.1.1,端口为 223,则命令为:\n ssh 2024000001@192.168.1.1 -p 223\n\n\n建议配置 ssh 免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。\n\nvscode 也是可以使用ssh远程写代码的,参考这里。\n\n\n如果你使用我们提供的服务器,你可以直接来看RISC-V 的工具链使用和运行实验框架。\n"},"docs/step0/riscv_env.html":{"url":"docs/step0/riscv_env.html","title":"RISC-V 环境配置","keywords":"","body":"RISC-V 环境配置\n必做:RISC-V 的 gcc 和 qemu\n我们的编译器只生成 RISC-V 汇编,然后再使用 gcc 把 RISC-V 汇编变成 RISC-V 可执行文件,最后用 qemu/spike 等模拟器来运行 RISC-V 可执行文件。\n\n注意这里的 gcc 和常说的 gcc 不一样。\n常说的 gcc 运行在我们的 x86 机器上、把 C 编译到 x86 可执行文件;\n而这里的 gcc 虽然也运行在我们的 x86 机器上,却要编译到 RISC-V 可执行文件。\n这种“gcc 跑在 x86 却编译出 RISC-V 代码”的操作被称为交叉编译(cross compilation)。\n因此我们不能直接使用有些系统自带的 gcc,这种 gcc 生成的可执行程序只能在你本机(x86)上运行。\n我们需要下载安装 riscv64-unknown-elf-gcc,用来生成 RISC-V 可执行程序。\n建议各位同学使用我们提供的 RISC-V 工具链,由 SiFive 预编译的较新版本的工具链对 32 位的支持存在问题。\n\n我们提供了预编译的 riscv64-unknown-elf-gcc 和 qemu/spike 模拟器,不过只能在 Linux/Mac 下运行(qemu 对应 Linux,spike 对应 Mac),Windows 的同学可以使用 WSL,或者运行一个虚拟机。\n命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。\n下面是环境配置指南,请阅读自己的系统的那一小节。\n 你的编译器 gcc qemu/spike\nMiniDecaf 源文件 ------------> RISC-V 汇编 -----> 可执行文件 --------> 输出\nWindows 用户环境配置指南\n下面描述了 WSL 的一种参考方法。\n你还可以开一个 Linux 虚拟机,使用 Virtualbox 或 VMWare 等,然后参考下面 Linux 配置。\nWin10 设置\n\n参考 https://blog.csdn.net/daybreak222/article/details/87968078 ,设置“开发者模式”以及“启用子系统功能”。\n\n打开Microsoft Store,搜索Ubuntu,选择ubuntu20.04.\n\n按照下面的 Linux 用户环境配置指南安装 riscv 工具链。\n\n\nUbuntu 用户环境配置指南\n\n建议使用 Ubuntu 20.04 及更高的版本,你可以直接使用 apt 来安装用户态的 qemu,即 apt install qemu-user。\n如果使用的是低版本的 WSL,通过 Windows 应用商店可以很容易地安装 Ubuntu 20.04 LTS;\n如果在机器上直接安装了较低版本的 Ubuntu, 可以参考这个教程进行升级,升级时注意备份。\n如果出于某些原因必须使用低版本的 Ubuntu,你需要自己编译出可用的用户态 QEMU。\ngit clone https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git\ncd qemu && ./configure --prefix=/usr/local --target-list=riscv32-linux-user\nmake\nmake install\nqemu-riscv32 --version # 检查是否安装成功\n\n\n从这里下载预编译好的 RISC-V 工具链并解压。\n\n安装工具链 cp riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/* /usr/ -r\n\n在第 2. 步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:\n首先把文件夹riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/改名为 riscv-prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc 文件, 把export PATH=$PATH:/path/to/riscv-prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to 需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令source ~/.bashrc使修改生效。\n(如果你不用系统自带的 bash 而是用 zsh 之类的 shell,那加到 ~/.zshrc 等 shell 配置文件里)\n\n\n\nmacOS 用户环境配置指南\n\n从这里下载预编译好的 RISC-V 工具链并解压到你喜欢的目录。\n由于 macOS 不支持 QEMU 的用户态模式,我们使用 Spike 模拟器和一个简易内核 riscv-pk 提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:\n\n从这里下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,不过还需要通过 Homebrew 安装依赖 device tree compiler:\n$ brew install dtc\n\n\n通过 Homebrew 安装 Spike(会自动安装 dtc):\n$ brew tap riscv/riscv\n$ brew install riscv-isa-sim\n\n然后从这里上下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,只用里面的 pk。\n\nHomebrew 也提供了 riscv-pk,不过那是 64 位的,而我们需要 32 位的,请使用我们预编译的 riscv-pk 或自行编译。\n请注意我们提供的预编译 pk 是 x86 版本,如果你是其他平台(如M1 Mac),可以尝试自行根据 pk 的源码进行编译,附 Github 仓库链接。\n\n\n\n\n(可选)设置环境变量,方法与 Linux 一样,见上一节。如果不设置每次使用 gcc 和 spike 时都要输入完整路径。不过对于 pk 设置环境变量不管用,要么把它放到系统目录 /usr/local/bin/pk,要么每次都用完整路径。\n\n测试你 GCC 和 Spike 是否成功安装,详见RISC-V 的工具链使用。\n\n\n必做:测试你是否正确配置好了环境\n\n创建 test.c 文件,其中写入如下内容\n#include \nint main() { printf(\"Hello world!\\n\"); }\n\n\n编译 test.c 文件,gcc 应该输出一个可执行文件 a.out。但 a.out 是 RISC-V 可执行文件,所以我们的 X86 计算机无法运行。\n$ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 test.c\n$ ls a.out\na.out\n$ ./a.out\n# 如果没有安装qemu模拟器,则会出现如下错误:\"bash: ./a.out: cannot execute binary file: Exec format error\"\n\n后面RISC-V 的工具链使用总结了 gcc 和 qemu 在编译实验中可能需要的用法。\n\n使用 qemu 执行 a.out,具体操作如下\n\n\nLinux用户\n$ qemu-riscv32 a.out\nHello world!\n注意:安装了qemu之后,直接运行 ./a.out 往往也可以调用qemu环境正确执行,并得到\"Hello world!\"输出。\n\nMac OS用户,假设你已经将spike加入环境变量,将pk加入系统目录\n$ spike --isa=RV32G pk a.out\nbbl loader\nHello world!\n\n备注\n\n1. 开头的 $ 表示接下来是一条命令,记得运行的时候去掉 $。例如,让你运行 $ echo x,那你最终敲到终端里的是 echo x(然后回车)。如果开头没有 $,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。 ↩\n\n"},"docs/step0/riscv.html":{"url":"docs/step0/riscv.html","title":"RISC-V 的工具链使用","keywords":"","body":"RISC-V 相关信息\nRISC-V 是一个很像 MIPS 的 RISC 指令集架构,编译实验要求你的编译器把 MiniDecaf 程序编译到 RISC-V 汇编。\n指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\"。\n\n另外这里也有(非官方的)指令用法说明。\n不过事实上,很多时候看 gcc 输出的汇编比看什么文档都有用。\n\nRISC-V 工具使用\n我们提供预先编译好的 RISC-V 工具,在环境配置中已经叙述了安装和使用方法。\n下面汇总一下。\n\n注意,我们虽然是用的工具前缀是 riscv64,\n但我们加上参数 -march=rv32im -mabi=ilp32 以后就能编译到 32 位汇编 1。\n使用时记得加这个参数,否则默认编译到 64 位汇编。\n\n我们假设你已经正确设置好了环境变量,否则运行 riscv64-unknown-elf-gcc 或 qemu-riscv32 或 spike 时请用完整路径。\n\ngcc 编译 input.c 到汇编 input.s,最高优化等级(否则输出的汇编会很冗长)\n\n# input.c 的内容\n$ cat input.c\nint main(){return 233;}\n\n# 编译到 input.s\n$ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 -S input.c\n\n# gcc 的编译结果\n$ cat input.s\n .file \"input.c\"\n .option nopic\n .attribute arch, \"rv32i2p0_m2p0\"\n .attribute unaligned_access, 0\n .attribute stack_align, 16\n .text\n .section .text.startup,\"ax\",@progbits\n .align 2\n .globl main\n .type main, @function\nmain:\n li a0,233\n ret\n .size main, .-main\n .ident \"GCC: (SiFive GCC 8.3.0-2020.04.0) 8.3.0\"\n\n\ngcc 编译 input.s 到可执行文件 a.out\n\n# input.s 的内容,就是上面汇编输出的简化版本\n$ cat input.s\n .text\n .globl main\nmain:\n li a0,233\n ret\n\n# 编译到 a.out\n$ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 input.s\n\n# 输出结果,能看到是 32 位的 RISC-V 可执行文件\n$ file a.out\na.out: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, not stripped\n\n\n【Linux 用户】qemu 运行 a.out,获取返回码\n\n# 运行 a.out\n$ qemu-riscv32 a.out\n\n# $? 是 qemu 的返回码,也就是我们 main 所 return 的那个值\n$ echo $?\n233\n\n\n【macOS 用户】Spike 模拟器运行 a.out,获取返回码\n\n# 运行 a.out\n# /usr/local/bin/pk 替换为你自己的 pk 路径\n$ spike --isa=RV32G /usr/local/bin/pk a.out\nbbl loader\n\n# $? 是 spike 的返回码,也就是我们 main 所 return 的那个值\n$ echo $?\n233\n\n\n\n1. 这里的 rv32im 表示使用 RV32I 基本指令集,并包含 M 扩展(乘除法)。本实验中我们不需要其他扩展。 ↩\n\n"},"docs/step0/env.html":{"url":"docs/step0/env.html","title":"实验框架环境配置","keywords":"","body":"实验框架环境配置\nPython 实验框架环境配置\n关于操作系统,助教推荐使用 Linux 环境(如 Ubuntu,Debain 或 Windows 下的 WSL 等),当然你也可以在类 Unix 系统环境(Mac OS)中进行开发。助教不推荐直接在 Window 中搭建开发环境。你需要安装或保证如下软件满足我们的要求:\n\npython >= 3.9\n助教强烈建议使用类似 Miniconda 或venv的系统管理不同的Python环境。你可以方便地使用miniconda安装最新的Python版本,安装好之后使用pip安装依赖即可。\n框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性,请保证你所使用的 python 版本高于此版本。\n如果你没有使用虚拟环境,可以参考下面的指导。Linux 环境下安装 Python 3 可以尝试如下命令:\n> sudo add-apt-repository ppa:deadsnakes/ppa\n> sudo apt update\n> sudo apt install python3\n\n此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的 Python3 版本:\n> python3 --version\n框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse:\n$ python3 -m pip install -r ./requirements.txt\n\n\nargparse\n框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。\n\nply\nply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考 ply 的文档。\n\n\n助教在项目中使用 type hints,如果你习惯在 vscode 中进行开发的话同时推荐使用 pylance 这一插件。\n由于 python 的跨平台性,理论上也可以在 Windows 下进行开发。但不保证Windows和在线测试环境下程序行为的一致性。\n"},"docs/step0/testing.html":{"url":"docs/step0/testing.html","title":"运行实验框架","keywords":"","body":"运行实验框架\n配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。\n\n接下来我们会用到 git。\ngit 的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里 。\n\n\n按照本文档的前几节(RISCV 环境配置和实验框架环境配置)配置好实验环境。\n\n助教已经为每位同学在 git.tsinghua.edu.cn 创建了一个仓库,其中 minidecaf 的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块 git clone --recursive 。\n由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用 git submodule update --remote --merge 来手动更新。\n\n\n\n注意:由于子模块使用 ssh 链接,你需要将你的 ssh 公钥添加到你的 git.tsinghua 账号上,才能将其克隆下来。\n\n\n按照测例的 README 运行测试 step1,实验框架给出的初始代码可以通过 step1 的所有测例。\n\n测试运行的 输出结果 大致如下。\n$ STEP_UNTIL=1 ./check.sh\ngcc found\nqemu found\nparallel found\nOK testcases/step1/multi_digit.c\nOK testcases/step1/newlines.c\n...... 其他测试点,太长省略\n\n"},"docs/step1/arch.html":{"url":"docs/step1/arch.html","title":"MiniDecaf 编译器结构","keywords":"","body":"MiniDecaf 编译器结构\nMiniDecaf 编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入 MiniDecaf 源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(Abstract Syntax Tree, AST),接下来通过扫描 AST 进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描 AST 生成中间代码 —— 三地址码;在编译器后端中,将三地址码转换为 RISC-V 汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。\n\n我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的 step 作详细介绍。\n\n词法分析和语法分析\n\n此部分对应框架源码位置:\n词法分析程序位于 frontend/lexer/;语法分析程序位于 frontend/parser/;语法树位于 frontend/ast/。\n\n编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描 MiniDecaf 源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的 MiniDecaf 程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(Abstract Syntax Tree, AST)。比如,对于下面这一段简单的MiniDecaf 代码:\nif (i) i = 1;\n\n它对应的完整语法分析树可能长这样:\nif_stmt\n |- \"if\"\n |- \"(\"\n |- Identifier(\"i\")\n |- \")\"\n |- assign_stmt\n |- Identifier(\"i\")\n |- \"=\"\n |- Int(1)\n |- \";\"\n其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:\nif_stmt\n |- (condition) Identifier(\"i\")\n |- (body) assign_stmt\n |- (lh) Identifier(\"i\")\n |- (rh) Int(1)\nAST省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。\n词法分析和语法分析的最终结果是一棵跟所输入的 MiniDecaf 源程序相对应的语法树。本阶段的实验重点是掌握 LEX 和 YACC 的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、LALR(1) 分析等理论知识在实践中的应用。\n语义分析\n\n此部分对应框架源码位置:\n符号表构建位于 frontend/typecheck/namer.py;类型检查位于 frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于 frontend/scope/。\n\n语法分析树的建立可以说明所输入的 MiniDecaf 源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。\n可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。\n具体来说,在这一阶段中,我们需要对 AST 进行两遍扫描,分别完成以下的检查:\n\n符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。\n类型检查:各语句和表达式是否类型正确。\n\n如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。\n符号表构建\n针对 MiniDecaf 程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1) 在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2) 符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。\n\nstep1-4 中只需要考虑常量的计算,直到 step5 才需要考虑符号表构建。\n\n类型检查\n完成符号表构建后,我们就可以自顶向下地遍历 AST,对每个语句和表达式逐一进行类型检查,并在 AST 上进行类型标注。对于静态类型(statically-typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typing rules)。 在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。\n\n事实上,由于 MiniDecaf 代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑 int 和 int 数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。\n\n中间代码生成\n\n三地址码定义位于 utils/tac/;中间代码生成位于 frontend/tacgen/tacgen.py。\n\n在对 AST 进行语义分析后,我们将在这一阶段把带有类型标注的 AST 翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。 \n由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下:\n\n通过把 AST 到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查 IR 是否正确就可以知道:是 AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。\n通过 IR 可以适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。\n\n接下来,将对我们所使用的中间代码 —— 三地址码 (TAC) 做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的 TAC 并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。\n三地址码\n三地址码(Three Address Code, TAC)看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。\nmain: # main 函数入口标签\n _T0 = 1 # 加载立即数\n _T1 = _T0 # 临时变量赋值操作\n _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1\n _T3 = NEG _T0 # 取负操作 _T3 = -_T0\n return _T2 # 函数返回\n\n\n以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。\n\nTAC 程序由标签和指令构成:\n标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的 main 函数入口),以及作为分支语句的跳转目标(TAC 指令不支持 MiniDecaf 语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。\nTAC 指令与汇编指令类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。 操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于 step10 才需要考虑,届时再介绍其处理方法)。如上例所示,TAC 中的临时变量均用 \"_Tk\" 的形式表示(k表示变量的编号)。\nTAC 程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,MiniDecaf 只支持 int 类型和 int 数组类型,其值和地址都可以用一个32位整数存储,故 MiniDecaf 程序中的变/常量和 TAC 中的变/常量可以直接对应。\n数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在 step11 详细讨论。\n控制流、数据流分析和寄存器分配\n\n数据流图定义及优化在 backend/dataflow/ 中;寄存器分配在 backend/reg/ 中\n\n控制流和数据流分析\n一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。\n所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。 关于数据流分析的细节,我们将在 step7 做详细介绍。\n寄存器分配\n所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在 step5 中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。\n目标平台汇编代码生成\n\n目标平台汇编代码生成在 backend/asm.py | subroutineinfo.py 以及 backend/riscv/ 中。\n\n通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用 addi 汇编指令来翻译 ADD 中间代码指令。需要特别提出的是,RISC-V 指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。\n课程实验的目标平台为 RISC-V,RISC-V 是一个与 MIPS 类似的 RISC 指令集架构,编译实验要求所实现的编译器把 MiniDecaf 程序编译到 RISC-V 汇编代码。指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\",另外这里也有(非官方的)指令用法说明。下图给出了 RISC-V 的32个整数寄存器的相关说明,其中需要特别注意的寄存器有 ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了 RISC-V 的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是 caller-saved 还是 callee-saved。\n\n"},"docs/step1/provided.html":{"url":"docs/step1/provided.html","title":"已提供的语法特性","keywords":"","body":"已经提供的语法特性\n为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的 while 循环实现,同学们可以参考着完成 for 循环的实现。\n下面我们列出了所有框架中已经完成的特性:\n\nstep1 中我们提供了所有实现。\nstep2 中我们提供了取负运算的实现。\nstep3 中我们提供了加法和逻辑或操作运算的实现。\nstep5 中我们提供了基础数据结构——符号表的实现。\nstep6 中我们提供了基础数据结构——单层作用域的实现。\nstep7 中我们提供了 if 语句的实现。\nstep8 中我们提供了 while 循环的实现。\n此外,我们提供了 step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。\n\n"},"docs/step1/intro.html":{"url":"docs/step1/intro.html","title":"实验要求","keywords":"","body":"实验指导 step1:一个仅有 return 的 main 函数\n实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在 stage 1 的报告中(注意不是 stage 0)完成通过例子学习一节末尾的思考题。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 1 准备报告。\n"},"docs/step1/example.html":{"url":"docs/step1/example.html","title":"通过例子学习","keywords":"","body":"通过例子学习,一个仅有 return 的主函数编译全流程:\n本步骤主要涉及的语法为主函数和 return 语句,完成本步骤之后,你的编译器将支持将一个仅有 return 的主函数编译为 32 位 RISC-V 汇编代码,并通过 RISC-V 工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触 MiniDecaf 编译实验框架,我们给大家的代码框架中已经包含所有 step1 的实现,大家可以直接运行通过 step1 的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。\n下面我们将通过一个简单的 step1 测试用例,一起走过它的编译全流程:\nint main() {\n return 2024;\n}\n\n词法分析 & 语法分析\n在词法分析 & 语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的 AST,我们使用了 lex/yacc 库来实现这一点。yacc 是一个根据 EBNF 形式的语法规范生成相应 LALR parser 的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对 lex/yacc 的使用,结合我们的文档,来快速上手 lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行 lex/yacc 的入门,但这不是必须的。\n在实验框架中,我们使用的是 lex/yacc 的一个纯 python 实现,称为 python-lex-yacc(简称 ply),其使用方法与 lex/yacc 有一些差异。\nPython-lex-yacc 快速入门\n程序的入口点在 main.py,它通过调用 frontend.parser.parser(位于 frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于 frontend/lexer/ply_lexer.py 的词法分析器进行词法分析。语法的定义和语法分析器都位于 frontend/parser/ply_parser.py,而词法的定义位于 frontend/lexer/lex.py。AST 节点的定义位于 frontend/ast/tree.py 中。以下表示中的符号都出自于这几个文件。\n这部分的工作流程如下:\n 读内容 词法分析 & 语法分析 语义分析\n readCode parser.parse Namer.transform & Typer.transform\nMiniDecaf 源文件 --------> 字节流 -----------> AST -------------------------------> ...\n当程序读入程序的字符流之后,它首先会被 lexer 处理,并被转化为如下形式的一个 Token 流:\nInt Identifier(\"main\") LParen RParen LBrace Return Integer(2024) Semi RBrace\n在frontend/lexer/lex.py文件中你可以看到每个 Token 是如何定义的,每个token都会以t_开头。如t_Semi = \";\"代表分号被解析以后会转化为 Semi 这个Token。而对于一些复杂的 Token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0-9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码:\ndef t_Integer(t):\n r\"[0-9]+\" # can be accessed from `t_Interger.__doc__`\n t.value = int(t.value)\n return t\n\n之后,这些 token 会被 yacc 生成的 LALR(1) parser 转化为如下形式的 AST:\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) Return\n |- (expr) IntLiteral(2024)\n得到的 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。\n在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有parser = yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。\ndef p_program(p):\n \"\"\"\n program : function\n \"\"\"\n p[0] = Program(p[1])\n\ndef p_function_def(p):\n \"\"\"\n function : type Identifier LParen RParen LBrace block RBrace\n \"\"\"\n p[0] = Function(p[1], p[2], p[6])\n我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program -> function,同时代码中的p[0] = Program(p[1])代表了构建AST的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0] = Program(p[1])最后就会变为p[0] = Program(Function(...)),这里Program、Function类的定义在frontend/ast/tree.py文件中,你可以看到Function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。\n尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c)\n语义分析\n在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误:\n\nmain 函数是否存在。(frontend/typecheck/namer.py:37)\n\n在实际操作中,我们遍历 AST 所用的方法就是的 Visitor 模式,通过 Visitor 模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于 Visitor 的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如 gcc 根据优化等级不同会有数百个不等的 pass。下面,我们将指出,step1 中我们是如何实现符号表构建 pass 和类型检查 pass 的,同学们可以选择去看相应的代码注释与实现细节。\nfrontend/typecheck/namer.py 和 typer.py 分别对应了符号表构建和类型检查这两次遍历。在框架中,Namer 和 Typer 都是继承 frontend/ast/visitor.py 中的 Visitor 类来通过 Visitor 模式遍历 AST 。\n中间代码生成\n在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的 Visitor 模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在 step1 当中,我们只需要提取 return 语句返回的常量,为之分配一个临时变量,再生成相应的 TAC 返回指令即可。不难看出,本例对应的三地址码为:\nmain: # main 函数入口标签\n _T0 = 2024 # 为立即数 2024 分配一个临时变量\n return _T0 # 返回\n\n\n下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。\n\nutils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。\nfrontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。这个文件里除了类型TACGen之外还有一个辅助类TACFuncEmitter,它用于处理产生TAC代码过程中一些相对底层的细节。在本框架中,TAC 程序的生成以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 TACFuncEmitter 来生成对应的 TAC 函数代码。如果你增加了 TAC 指令,则可能需要在 TACFuncEmitter 类中增加生成相应指令的代码。\n目标代码生成\n目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:\n\n如何将一个立即数装载到指定寄存器中?\nRISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2024,就是将立即数 2024 加载到寄存器 t0 中。\n\n如何设置返回值?\n在 RISC-V 中,a0 和 a1 是 gcc 调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在 a0 和 a1 中。也就是说,如果你有一个 32 位的返回值,你可以放在 a0 中返回,如果你有两个 32 位的返回值,你就需要把它们分别放在 a0 和 a1 中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。 \n在我们的实验要求中,返回值均是单个 32 位的值。因此在当前步骤中你只需要了解,将需要返回的值放入 a0 寄存器中,然后在后面加上一条 ret 指令即可完成函数返回的工作。\n\n\n综上所述,我们上述中间代码翻译成如下 RISC-V 汇编代码:\n .text # 代码段\n .global main # 声明全局符号 main\nmain: # 主函数入口符号\n li t0, 2024 # 加载立即数 2024 到 t0 寄存器中\n mv a0, t0 # 将返回值放到 a0 寄存器中\n ret # 返回\n\n实验框架中关于目标代码生成的文件主要集中 backend 文件夹下,step1 中你只需要关注 backend/riscv 文件夹中的 riscvasmemitter.py 以及 utils/riscv.py 即可。具体来说 backend/asm.py 中会先调用 riscvasmemitter.py 中的 selectInstr 方法对每个函数内的 TAC 指令选择相应的 RISC-V 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitFunc 方法生成每个函数的 RISC-V 汇编。\n思考题\n\n在我们的框架中,从 AST 向 TAC 的转换经过了 namer.transform, typer.transform 两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么?\n int main(){\n return 10;\n }\n\n\n我们的框架现在对于 return 语句没有返回值的情况是在哪一步处理的?报的是什么错?\n\n为什么框架定义了 frontend/ast/tree.py:Unary、utils/tac/tacop.py:TacUnaryOp、utils/riscv.py:RvUnaryOp 三种不同的一元运算符类型?\n\n\n"},"docs/step1/visitor.html":{"url":"docs/step1/visitor.html","title":"Visitor 模式速成","keywords":"","body":"Visitor 模式速成\n编译器的构造中会使用到很多设计模式,Visitor 模式就是常见的一种。 基础的设计模式都在 OOP 课程中覆盖,这里重提一下 Visitor 模式,并以框架中的代码为示例进行介绍。\n我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。Visitor 模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个 DFS 遍历。\n让我们考虑 step1 的文法:\nprogram : function\nfunction : type Identifier '(' ')' '{' statement '}'\ntype : 'int'\nstatement : 'return' expression ';'\nexpression : Integer\n以这个文法对应的一段 MiniDecaf 代码为示例:\nint main() {\n return 2;\n}\n\n它会对应如下的 AST 结构:\nprogram\n function\n type(int)\n identifier(main)\n param_list\n return\n int(2)\n\n我们用缩进表示树结构,其中 program, function, type, identifier, param_list, block, return, int 等均为 AST 上的结点类型。\n\n在框架中,我们有以下的 AST 结点类实现(进行了适当的简略):\n'''\nfrontend/ast/node.py\n'''\nclass Node: # 所有 AST 结点的基类\n # ...\n'''\nfrontend/ast/tree.py\n'''\nclass Program(ListNode[Union[\"Function\", \"Declaration\"]]): # 程序,AST 的根结点类型\n # ...\nclass Function(Node): # 函数\n # ...\nclass Statement(Node): # 语句基类\n # ...\nclass Return(Statement): # return 语句\n # ...\nclass TypeLiteral(Node): # 类型基类\n # ...\nclass TInt(TypeLiteral): # 整型\n # ...\n\n假设在经过了词法分析和语法分析后,我们已经成功将 MiniDecaf 代码转化为了 AST 结构。现在,我们想要编写代码对 AST 进行扫描。很容易写出递归的 DFS 遍历:\ndef dfs(node: Node):\n if isinstance(node, Program):\n for func in node.functions:\n dfs(func)\n elif isinstance(node, Function):\n # do something for scanning a function node\n elif isinstance(node, Return):\n # ...\n\ndfs 函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,dfs 函数根据被遍历的结点类型不同,执行不同的遍历逻辑。 那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的 Visitor。此外,为了便于实现,我们不使用 isinstance 来判断结点类型,而是调用结点自身的一个 accept 函数,并把不同的 visitXXX 函数抽象到一个接口里,各种具体的 Visitor 来实现这个接口。\n''' frontend/ast/node.py '''\nclass Node: # 所有 AST 结点的基类\n def accept(self, v: Visitor[T, U], ctx: T) -> Optional[U]:\n raise NotImplementedError\n''' frontend/ast/tree.py '''\nclass Program(ListNode[Union[\"Function\", \"Declaration\"]]):\n # ...\n def accept(self, v: Visitor[T, U], ctx: T):\n return v.visitProgram(self, ctx)\nclass Function(Node):\n # ...\n def accept(self, v: Visitor[T, U], ctx: T):\n return v.visitFunction(self, ctx)\n# ...\n''' frontend/ast/visitor.py '''\nclass Visitor(Protocol[T, U]):\n def visitOther(self, node: Node, ctx: T) -> None:\n return None\n def visitProgram(self, that: Program, ctx: T) -> Optional[U]:\n return self.visitOther(that, ctx)\n def visitFunction(self, that: Function, ctx: T) -> Optional[U]:\n return self.visitOther(that, ctx)\n # ...\n\n之后,如果我们想要编写一种遍历 AST 的方法,可以直接继承 Visitor 类,并在对应结点的 visit 成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:\nclass Namer(Visitor[ScopeStack, None]):\n def visitProgram(self, program: Program, ctx: ScopeStack) -> None:\n # ...\n for child in program:\n if isinstance(child, Function):\n child.accept(self, ctx) \n def visitFunction(self, func: Function, ctx: ScopeStack) -> None:\n # ...\n # ...\n\n如果想要访问某个子结点 child,直接调用 child.accept(self, ctx) 即可。\n"},"docs/step1/spec.html":{"url":"docs/step1/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep1 语法规范\n我们采用 EBNF (extended Barkus-Naur form) 记号书写语法规范,采用类似 ANTLR 的记号:\n\n小写字母打头的是非终结符(如 program),大写字母打头的是终结符(如 Identifier),可以用字符串字面量表示终结符(如 'int')\n后面会用到:( 和 ) 表示分组,| 表示选择,* 零或多次,+ 一或多次,? 零或一次。\n很容易通过增加新的非终结符,去掉这些符号。例如 x+ 就可以被替换成新的非终结符 y,并且 y : x | x y。\n\n\n\n\nEBNF 也有很多写法,另一种是用尖括号表示非终结符 ::= 等。\n\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : Integer\n\n\nstep1 语义规范\n1.1 MiniDecaf 的 int 类型具体指 32 位有符号整数类型,范围 [-2^31, 2^31-1],补码表示。\n1.2 编译器应当只接受 [0, 2^31-1] 范围内的整数常量, 不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号-后,可以用负号配合正整数常量来间接表示负整数常量。\n1.3 如果输入程序没有 main 函数,编译器应当报错。\n"},"docs/step2/intro.html":{"url":"docs/step2/intro.html","title":"实验要求","keywords":"","body":"实验指导 step2:一元运算符\nstep2 中,我们要给整数常量增加一元运算:取负 -、按位取反 ~ 以及逻辑非 !。\n语法上,我们需要修改 expression 的定义,从 expression : Integer 变成:\n\nexpression\n : unary\n\nunary\n : Integer\n | ('-'|'!'|'~') unary\n\n\n三个操作的语义和 C 以及常识相同,例如 ~0 == -1,!!2 == 1。\n稍微一提,关于按位取反,我们使用补码存储 int;关于逻辑非,只有 0 表示逻辑假,其他的 int 都是逻辑真。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 2 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n如何检查我是否通过自动测试(CI)\n在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。\n如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。\n"},"docs/step2/example.html":{"url":"docs/step2/example.html","title":"通过例子学习","keywords":"","body":"step2 实验指导\n我们按照上一节划分的编译器阶段,分阶段给出 step2 实验指导。本实验指导使用的例子为:\n\n需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的 MiniDecaf 程序。\n\n-1\n\n词法语法分析\n在 step2 中,我们引入了一元运算,因此需要引入新的抽象语法树节点:\n\n\n\n节点\n成员\n含义\n\n\n\n\nUnary\n操作数 operand,运算类型 op\n一元运算\n\n\n\n注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。\n语义分析\n由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。\n代码没有特别需要修改的地方。\n中间代码生成\n在 step1 中,我们只需为 return 语句的返回的整型常量分配一个临时变量即可。而从 Step2 开始,语法树上出现了各种运算操作结点。在生成 TAC 的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。\n针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nNEG\nT0\n对参数取负\n\n\n\n按照上文说的,-1 在语法树上对应父-子两个结点,父结点为取负操作,子结点为常量 1。在生成过程中,首先使用 Visitor 模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。\n因此,测例可以翻译成如下的中间代码:\n_T0 = 1\n_T1 = NEG _T0\n\n目标代码生成\nstep2 目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。以 NEG 中间表达指令为例,RISC-V 汇编中有 neg 指令与其对应,因此上述中间代码可以翻译为如下的 RISC-V 汇编:\nli t0, 1\nneg t1, t0\n\n如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里\n实现细节\n\n 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。\n\n相比于step 0, 我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:-1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):\n首先,我们应该把 - 看作一个符号,而不应该将 -1 看作一个整体,因为我们还可能遇到 -x 这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对 - 的处理。\n我们能发现 -, !, ~ 等符号都可以作为一元运算符出现,比如!x, ~a, -10,我们将这类一元运算操作都称为 unary ,一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和 AST 节点了。\n因此我们希望生成的 AST 应当变为如下形式:\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) Return\n |- (expr) Unary\n |- (op) Minus\n |- (expr) IntLiteral(1)\n看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 1 这个数字是一个表达式, -1 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。\n词法分析 & 语法分析\n在 frontend/lexer/lex.py 里加入新的 lex token 定义,以便lexer可以解析 -:\nt_Minus = \"-\"\n\n在 ply 的 lexer 中,定义的新 token 需要以 t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。\n在 frontend/ast/tree.py 里加入新的 AST 节点定义(以及相应的其它东西):\nclass Unary(Expression):\n def __init__(self, op: Operator, operand: Expression):\n ...\n\n并在 frontend/ast/visitor.py 中加入相应的分派函数。\n它将在后续的 parser 语义计算中被用到。\n在 frontend/parser/ply_parser.py 里加入新的 grammar rule:\ndef p_expression_precedence(p): # 定义的新语法规则名。可以随便起,但必须以 `p_` 开头以被 ply 识别。\n \"\"\"\n expression : unary\n unary : primary\n \"\"\" \n # 以 [BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) 定义的新语法规则,以 docstring 的形式提供。\n p[0] = p[1] # 这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。\n # 语法分析器直接产生的实际上是一棵语法分析树,而构建 AST 这一数据结构则通过相应语法制导的语义计算过程来完成。\n\ndef p_unary_expression(p):\n \"\"\"\n unary : Minus unary\n \"\"\"\n p[0] = tree.Unary(UnaryOp.Neg, p[2])\n这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unary : Minus unary,其中p[0]代表的就是第一个unary, p[1]则是Minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的-通过backward_search对应到我们在代码中enum的UnaryOp.Neg(frontend/ast/node.py:40)。\n现在尝试运行 python main.py --input example.c --parse 看看效果吧。(记得修改example.c)\n怎么从 AST 变为 TAC 的?\n什么是 TAC ,如果你没读前面的章节,你可以快速看看这一部分。\n这一步就是 TACGen.transform 函数(frontend/tacgen/tacgen.py)做的事了, TACGen.transform 接受一个AST树输入,输出一个TAC表示,请确保你已经对Visitor 模式有所了解,或者假设你已经知道在遍历 AST 时 accept 函数会对不同类型的 AST Node 调用不同的visit 函数。例如,visit (children[0]) Return 时,遇到的子节点是 (expr) Unary,那么 accept 最终会调用visitUnary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。\n下面的描述中一定要记得区分accept和直接对于mv.visitXXX的调用,前者是在遍历AST时调用的,后者是在 TACFuncEmitter 类中调用的。并且希望大家一定要对着代码看。\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) Return\n |- (expr) Unary\n |- (op) Minus\n |- (expr) IntLiteral(1)\n继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序,我们将TACGen.transform代码贴了一些在这里:\ndef transform(self, program: Program) -> TACProg:\n labelManager = LabelManager()\n tacFuncs = []\n for funcName, astFunc in program.functions().items():\n # in step9, you need to use real parameter count\n emitter = TACFuncEmitter(FuncLabel(funcName), 0, labelManager)\n astFunc.body.accept(self, emitter)\n tacFuncs.append(emitter.visitEnd())\n return TACProg(tacFuncs)\n\n现在我们开始正式遍历 AST 树,transform 会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入 visitBlock 函数,visitBlock 函数对于在block中的所有子节点调用了child.accept(self, mv),在这个例子中则会调用Return 语句对应的visitor,进入visitReturn。继续向下,visitReturn 又对于 return AST Node 中的 expr 调用了 stmt.expr.accept(self, mv) ,又进入了visitUnary,同理,expr.operand.accept(self, mv)会进入visitIntLiteral。\n到了此处出现了不同,我们发现visitIntLiteral中第一次调用了mv的成员函数 mv.visitLoad(expr.value) 这里进入了TACFuncEmitter.visitLoad:\ndef visitLoad(self, value: Union[int, str]) -> Temp:\n temp = self.freshTemp()\n self.func.add(LoadImm4(temp, value))\n return temp\n\nself.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将 1 load 到一个虚拟寄存器 temp 中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。\n到此为止我们得到的TAC代码如下:\nFUNCTION:\n_T0 = 1\n_T1 = - _T0\nreturn _T1\n\n现在尝试运行 python main.py --input example.c --tac 看看效果吧。\n怎么从TAC到汇编代码\n这一步是 Asm.transform 函数(backend/asm.py)处理的,Asm.transform 接受一个 TAC 输入,输出汇编代码。\ndef transform(self, prog: TACProg):\n analyzer = LivenessAnalyzer()\n\n for func in prog.funcs:\n emitter = RiscvAsmEmitter(Riscv.AllocatableRegs, Riscv.CallerSaved)\n reg_alloc = BruteRegAlloc(emitter)\n pair = emitter.selectInstr(func)\n builder = CFGBuilder()\n cfg: CFG = builder.buildFrom(pair[0])\n analyzer.accept(cfg)\n reg_alloc.accept(cfg, pair[1])\n\n return emitter.emitEnd()\n\n我们先忽略LivenessAnalyzer和Control Flow Graph(CFG)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectInstr),指令选择将中端TAC代码转换为riscv汇编代码,selectInstr函数中,我们也采用了visitor模式遍历指令序列, _T0 = 1 这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li _T0, 1),主要讲讲和_T1 = - _T0 和 return _T1翻译过程发生了什么。\n先看visitUnary函数:\ndef visitUnary(self, instr: Unary) -> None:\n op = {\n TacUnaryOp.NEG: RvUnaryOp.NEG,\n # You can add binary operations here.\n }[instr.op]\n self.seq.append(Riscv.Unary(op, instr.dst, instr.operand))\n\n这里将中端的TacUnaryOp.NEG翻译为了后端的RvUnaryOp.NEG,在后端输出汇编时,我们直接将RvUnaryOp.NEG转换为小写字符串取了11位以后的字符,直接输出为neg(参考Unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在RvUnaryOp中增加对应的同名的enum字段。\n你可以试试,将RvUnaryOp.NEG中名字改为RvUnaryOp.XXX看看输出的汇编代码会发生什么变化吧。\n再看visitReturn函数,我们这里的return是一个带返回值函数的return\ndef visitReturn(self, instr: Return) -> None:\n if instr.value is not None:\n self.seq.append(Riscv.Move(Riscv.A0, instr.value))\n else:\n self.seq.append(Riscv.LoadImm(Riscv.A0, 0))\n self.seq.append(Riscv.JumpToEpilogue(self.entry))\n\n这里会进入第一个分支,由于 Risc-V 的调用约定将A0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条Move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。\n你可能会觉得,这一步不就是将 TAC 一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如T2 = T1 || T0,这里的逻辑或需要将T1、T0进行或操作后,再判断其值是否为1。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。\n物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。\n现在尝试运行 python main.py --input example.c --riscv 看看效果吧。\n思考题\n\n我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个 minidecaf 表达式,只使用-~!这三个单目运算符和从 0 到 2147483647 范围内的非负整数,使得运算过程中发生越界。\n\n\n提示:发生越界的一步计算是-。\n\n总结\n本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。\n"},"docs/step2/spec.html":{"url":"docs/step2/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep2 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : unary\n\nunary\n : Integer\n | ('-'|'!'|'~') unary\n\n\nstep2 语义规范\n2.1 运算符 - 的结果是其操作数的相反数。\n2.2 运算符 ~ 的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是 1 当且仅当其对应的二进制位是 0)。\n2.3 当操作数不等于 0 时,逻辑非运算符 ! 的结果为 0;当操作数等于 0 时,其结果为 1。\n2.4 MiniDecaf 中,负数字面量不被整体作为一个 token。它被看成是一个取负符号、后面是它的绝对值。\n 所以我们无法用字面量表示 -2147483648,但可以写成 -2147483647-1(待我们加上四则运算后)。\n2.5 整数运算越界是未定义行为(undefined behavior),即对程序的行为无任何限制。\n\n例如 -(-2147483647-1) 是未定义行为。这一条规则对于后续 step 引入的运算符也都适用。\n对于含有未定义行为的 C/C++ 程序,在启用优化选项编译时,编译器可能产生意料之外的结果。\n\n"},"docs/step3/intro.html":{"url":"docs/step3/intro.html","title":"实验要求","keywords":"","body":"实验指导 step3:加减乘除模\nstep3 我们要增加的是:加 +、减 -、乘 *、整除 /、模 % 以及括号 ( )。\n语法上我们继续修改 expression,变成\n\nexpression\n : additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n\n\n新特性的语义、优先级、结合性和 C 以及常识相同,例如 1+2*(4/2+1) == 7。\n我们这种表达式语法写法可能比较繁琐,但它有几个好处:\n\n和 C17 标准草案保持一致\n把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。\n\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 3 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n如何检查我是否通过自动测试(CI)\n在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。\n如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。\n"},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导\n本实验指导使用的例子为:\n1+3\n\n词法语法分析\n在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点:\n\n\n\n节点\n成员\n含义\n\n\n\n\nBinary\n左操作数 lhs,右操作数 rhs,运算类型 op\n二元运算\n\n\n\n\n对有兴趣的同学:虽然 -2 和 2-3 里面的 - 意义不同,但 lexer 不知道这点(parser 才知道),所以它们都会用同样的 token kind - 表示。\n但有时,可能需要后续阶段告诉 lexer(或 parser)一些信息,最经典的例子是 “typedef-name identifier problem”。\n\n语义分析\n同 Step2。\n中间代码生成\n与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n作用\n\n\n\n\nADD\nT0,T1\n将两个参数相加\n\n\n\n因此,测例可以翻译成如下的中间代码:\n_T0 = 1\n_T1 = 3\n_T2 = ADD _T0, _T1\n\n目标代码生成\nstep3 目标代码生成步骤的关键点与 step2 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。\nli t0, 1\nli t1, 3\nadd t2, t0, t1\n\n思考题\n\n我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是 0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如 x86-64 或 ARM)中和 RISCV-32 的 qemu 模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)\n\n#include \n\nint main() {\n int a = 左操作数;\n int b = 右操作数;\n printf(\"%d\\n\", a / b);\n return 0;\n}\n\n总结\n本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。\n"},"docs/step3/precedence.html":{"url":"docs/step3/precedence.html","title":"优先级和结合性","keywords":"","body":"优先级和结合性\n操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:\n\n优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1 + 2 * 3应该解析成语法树add (1 mul (2 3))(前序表示),不能解析成mul (add (1 2) 3)\n结合性是一个操作符的性质,例如-是左结合的,所以表达式1 - 2 - 3应该解析成sub (sub (1 2) 3),不能解析成sub (1 sub (2 3))\n\n我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。\n但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习C或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:\n\nexpression\n : expression ('+'|'-') expression\n | expression ('*'|'/'|'%') expression\n | ('-'|'~'|'!') expression\n | Integer\n | '(' expression ')'\n\n\n当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。\n之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:\n\n把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。\n指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了C语言操作符的优先级和结合性,因为我们的MiniDecaf语言是C语言的一个子集,所以这张表格也足够我们的语言使用了。\n\n"},"docs/step3/spec.html":{"url":"docs/step3/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep3 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n\n\nstep3 语义规范\n3.1 二元操作符 * 的结果是操作数的乘积。\n3.2 二元操作符 / 的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符 % 的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为 0,则其行为都是未定义的。当 b 不为 0 时,表达式 (a/b)*b + a%b 应该等于 a。\n3.3 二元操作符 + 的结果是操作数的和。\n3.4 二元操作符 - 的结果是第一个操作数减去第二个操作数所得的差。\n3.5 除非特别声明,子表达式求值顺序是未规定行为(unspecified behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。\n 例如:执行 int a=0; (a=1)+(a=a+1); 之后 a 的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。\n"},"docs/step4/intro.html":{"url":"docs/step4/intro.html","title":"实验要求","keywords":"","body":"实验指导 step4:比较和逻辑表达式\nstep4 我们要增加的是:\n\n比较大小和相等的二元操作:、、>=, >, ==, !=\n \n equality\n : relational\n | equality ('=='|'!=') relational\n\n relational\n : additive\n | relational ('|'>'|'|'>=') additive\n\n逻辑与 &&、逻辑或 ||\n \n expression\n : logical_or\n\n logical_or\n : logical_and\n | logical_or '||' logical_and\n\n logical_and\n : equality\n | logical_and '&&' equality\n\n\n\n新特性的语义、优先级、结合性和 C 以及常识相同,例如 1=2 是逻辑真(int 为 1)。\n但特别注意,C 中逻辑运算符 || 和 && 有短路现象,我们不要求。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 4 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n如何检查我是否通过自动测试(CI)\n在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。\n如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。\n"},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导\n本实验指导使用的例子为:\n1\n词法语法分析\n本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。\n语义分析\n同 Step2。\n中间代码生成\n针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nLT\nT0,T1\n给出 T0结果,成立为1,失败为0\n\n\n\n\n需要特别注意的是,在 C 语言中,逻辑运算符 || 和 && 有短路现象,我们的实现中不要求大家考虑它们的短路性质。\n\n因此,测例可以翻译成如下的中间代码:\n_T0 = 1\n_T1 = 2\n_T2 = LT _T0, _T1\n\n目标代码生成\nstep4 目标代码生成步骤的关键点与 step3 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。\nli t0, 1\nli t1, 2\nslt t2, t0, t1\n\n逻辑表达式会麻烦一点,因为 gcc 可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出 land 和 lor 对应的不使用跳转的汇编。\n\n\n\nIR\n汇编\n\n\n\n\nlor\nor t3,t1,t2 ; snez t3,t3\n\n\nland\nsnez d, s1; sub d, zero, d; and d, d, s2; snez d, d;\n\n\n\n\n注意 RISC-V 汇编中的 and 和 or 指令都是位运算指令,不是逻辑运算指令。\n\n思考题\n\n在 MiniDecaf 中,我们对于短路求值未做要求,但在包括 C 语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?\n\n总结\n本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。\n恭喜你!到目前为止,你已经成功实现了一个基于 MiniDecaf 语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个 Stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️\n"},"docs/step4/spec.html":{"url":"docs/step4/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep4 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n\nexpression\n : logical_or\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n\n\n\nstep4 语义规范\n4.1 关系操作符 (小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。\n\n关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如 0 的含义与 (0 相同,即“如果 0 小于 1,那么判断是否有 1 小于 2,否则判断是否有 0 小于 2”。\n\n4.2 判等操作符 ==(等于)和 !=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为 1。\n\n其优先级的设定会导致其含义在某些时候可能会反直观,例如,0 的运算结果为 1。\n\n4.3 当操作数都非 0 时,逻辑与操作符 && 的结果为 1;否则其结果为 0。\n4.4 当操作数有一个非 0 时,逻辑或操作符 || 的结果为 1;否则其结果为 0。\n4.5 逻辑操作符 || 和 && 依然遵循语义规范 3.5,即其操作数的求值顺序是未指定行为。\n 换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。\n"},"docs/step5/intro.html":{"url":"docs/step5/intro.html","title":"实验要求","keywords":"","body":"实验指导 step5:局部变量和赋值\n这一步我们终于要增加变量了,包括:\n\n变量的声明\n变量的使用(读取/赋值)\n\n此外,我们的 main 函数内部可以包含多条语句和声明了。\n为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入 栈帧 的概念,并介绍它的布局。\n语法上,step5 的改动如下:\n\n\nfunction\n : type Identifier '(' ')' '{' statement* '}'\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | declaration\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : logical_or\n | Identifier '=' expression\n\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。\n请将你的作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 2 的实验报告需要放在 stage-2 这个 branch 下的 ./reports/stage-2.pdf。注意报告的标题是 stage-2 而不是 step-5。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step5/example.html":{"url":"docs/step5/example.html","title":"通过例子学习","keywords":"","body":"step5 实验指导\n本实验指导使用的例子为:\nint main() {\n int x = 2024;\n return x;\n}\n\n词法语法分析\n针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供):\n\n\n\n节点\n成员\n含义\n\n\n\n\nTInt\n无\n整型\n\n\nIdentifier\n名称 value\n标识符(用于表示变量名)\n\n\nAssignment\n同 Binary\n赋值运算\n\n\nDeclaration\n类型 var_t,标识符 ident,初始表达式 init_expr\n变量声明\n\n\n\n请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。\n语义分析\n从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。\n在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。\n类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:\nint main() {\n int x = 2024;\n return x + y;\n}\n\n那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2024; 这条语句后已经为其定义),而 y 无法找到,因此编译器需要在扫描到 y 对应的结点时报错。\n符号表总是和作用域相关的。例如,在 C 语言中,我们可以在全局作用域中定义名为 \"a\" 的全局变量,同时在 main 函数中定义名为 \"a\" 的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑 main 函数作用域对应的单张符号表即可。\n此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在 step11 中,我们会将左值的范围进一步包括数组元素。\n对应到框架代码上:\nfrontend/symbol 目录下为符号的实现。其中 symbol.py 为符号类的基类,varsymbol.py 为变量符号。在本节中,同学们只需要考虑变量符号即可。\nfrontend/scope 目录下为符号表的实现。其中 scope.py 为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个 Scope 对象,用以维护 main 函数中所有出现过的变量符号即可。\n中间代码生成\n我们首先来看本节指导用例所对应的中间代码:\nmain:\n _T1 = 2024\n _T0 = _T1\n return _T0\n\n针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nASSIGN\nT0,T1\n临时变量的赋值\n\n\n\n从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于 MiniDecaf 语言中的基本类型只有 int 型,而 TAC 里的临时变量也是 32 位整数,因此,我们可以把 MiniDecaf 局部变量和 TAC 临时变量对应起来。\n在扫描到 int x = 2024; 这条语句时,中间代码先把立即数 2024 加载到临时变量 _T1 中,然后再把 _T1 的值赋给临时变量 _T0,此时 _T0 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T0。例如,测例中直接用返回 _T0 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T0 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。\n请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。\n目标代码生成\n本节指导用例对应如下 RISC-V 汇编代码:\n .text\n .global main\nmain:\n li t1, 2024\n mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令\n mv a0, t0\n ret\n\n简单的启发式寄存器分配算法\n在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。\n实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 Step6 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。\n基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条 TAC 指令(例如 _T2 = ADD _T1, _T0),对于每个源操作数对应的临时变量(本例中 _T1 和 _T0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的 _T2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。\n在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。\n在实验框架中已经给出寄存器分配算法的代码,集中在 backend/reg/bruteregalloc.py 中,主要有以下几个函数:\n\naccept:根据每个函数的 DFG(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。\nbind:将一个 Temp(临时变量)与寄存器绑定。\nunbind:将一个 Temp(临时变量)与相应寄存器解绑定。\nlocalAlloc:根据活跃变量信息对一个 BasicBlock(基本块)内的指令进行寄存器分配。\nallocForLoc:每一条指令进行寄存器分配。\nallocRegFor:根据活跃变量信息决定为当前 Temp(临时变量)分配哪一个寄存器。\n\n栈帧\n上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。\n\n栈帧的概念\n在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在 Step11 中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。\n\n需要注意的是,由于我们目前只支持一个 main 函数,直到 Step9 才会有多函数支持。所以现在关于栈帧的讨论,就只针对 main 函数的栈帧,并且集中于临时变量的存储和加载。\n\n假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp 指向当前栈帧的栈底,sp 指向当前栈帧的栈顶,fp 和 sp 之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在 Step6 介绍,在当前的步骤不需要考虑)。\n\n\n栈帧的建立与销毁\n栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的 prologue。prologue 所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的 epilogue。epilogue 所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回\n貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp 和 fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。\n\n一个例子\n #include \n\n int calculate() {\n int a = 1;\n int b = 2;\n int c = 3;\n int d = 4;\n int e = 5;\n int result = a + b + c + d + e;\n return result;\n }\n\n int main() {\n int result = calculate();\n printf(\"%d\\n\", result);\n return 0;\n }\n\n 在这个示例中,我们在 calculate 函数内部声明了 5 个局部整数变量(a 到 e)。假设我们的处理器只有 4 个通用寄存器,在这种情况下,我们无法将 5 个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:\n\nmain 函数调用 calculate 函数,将返回地址压入栈中。\ncalculate 函数执行 prologue,将 fp 的值保存到栈中,然后将 sp 的值赋给 fp,此时 fp 和 sp 的值相同,都指向栈顶。\ncalculate 函数分配栈帧空间,在这个例子中,假设 a 到 d 保存在寄存器中,e 保存在栈帧中,因此需要分配 4 字节的栈帧空间。sp 指向栈顶,因此 sp 的值减去 4,即可得到 e 的地址。\n计算完成后,calculate 函数执行 epilogue,将 fp 的值赋给 sp,并恢复 fp 的值,然后将返回地址弹出栈中,跳转到返回地址。\n\n\n\n思考题\n请将你的整个stage-2作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。\n\n我们假定当前栈帧的栈顶地址存储在 sp 寄存器中,请写出一段 risc-v 汇编代码,将栈帧空间扩大 16 字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc-v 汇编中 addi reg0, reg1, 表示将 reg1 的值加上立即数存储到 reg0 中。)\n有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的 Rust 代码(你不需要精确了解它的含义,大致理解即可):\n\nfn main() {\n let a = 0;\n let a = f(a);\n let a = g(a);\n}\n\n其中f(a)中的a是上一行的let a = 0;定义的,g(a)中的a是上一行的let a = f(a);。\n如果 MiniDecaf 也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)\n总结\nStep5 主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。\n"},"docs/step5/spec.html":{"url":"docs/step5/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep5 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' statement* '}'\n\ntype\n : 'int'\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | declaration\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : logical_or\n | Identifier '=' expression\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep5 语义规范\n5.1 每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。\n5.2 变量的初始化表达式指定了变量的初始值。\n5.3 同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。\n5.4 对未声明的变量的使用是错误。\n5.5 没有被初始化的(局部)变量的值是不确定的。\n\n在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。\n例如,int a = a + 1;,这样一条声明在语义上等价于 int a; a = a + 1;\n\n5.6 局部变量的名字可以为 main。\n5.7 赋值运算 = 的左操作数必须是一个可修改的左值(modifiable lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在 int a; a = 1; 中,a 即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。\n\n就 step5 来说,这一点其实几乎已经被语法保证,因为其 = 的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。\n\n5.8 在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。\n5.9 赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。\n5.10 一个函数中可以有任意多条 return 语句。\n5.11 当 main 函数执行至 } 时,应终止执行并返回 0。\n"},"docs/step6/intro.html":{"url":"docs/step6/intro.html","title":"实验要求","keywords":"","body":"实验指导 step6:作用域和块语句\nstep6 我们要增加块语句的支持。\n虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。\n随之而来一个问题是:不同变量可以重名了。\n重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。\n因此,变量名不能唯一标识变量了,同一个变量名 a 出现在代码不同地方可能标识完全不同的变量。\n我们需要在符号表构建的过程中,确定 AST 中出现的每个变量名分别对应那个变量。\n语法上改动不大\n\nfunction\n : type Identifier '(' ')' compound_statement\n\ncompound_statement\n : '{' block_item* '}'\n\nstatement\n : 'return' expression ';'\n | compound_statement\nblock_item\n : statement\n | declaration\n\n\n语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。\n当然,如果变量在使用前还是必须先被声明。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 3 的实验报告需要放在 stage-3 这个 branch 下的 ./reports/stage-3.pdf。注意报告的标题是 stage-3 而不是 step-6。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step6/example.html":{"url":"docs/step6/example.html","title":"通过例子学习","keywords":"","body":"step6 实验指导\n本实验指导使用的例子为:\nint main() {\n int x = 1;\n {\n x = 2; \n int x = 3;\n }\n x = 4;\n return x;\n}\n\n词法语法分析\n针对块语句,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nBlock\n子语句列表 children\n语句块\n\n\n\n语义分析\n从 Step6 开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管 main 函数里定义了变量 x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句 x = 2; 中的 x 就是指 main 作用域中定义的 x,而随后通过 int x = 3; 我们定义了另一个变量 x,这个 x 只在内部大括号括起的作用域内生效。\n在 Step5 中,我们只维护了 main 的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(Scope Stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。\n接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有 main 函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入 main 函数时,开启一个局部作用域,在扫描 int x = 1; 时定义变量符号 x,并将其加入栈顶作用域对应的符号表中。如下所示:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域(栈顶)\n变量 x\n\n\n\n接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描 x = 2; 时,我们需要分析 x 这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域\n变量 x\n\n\n局部作用域(栈顶)\n空\n\n\n\n对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量 x 为止。由于在栈顶作用域对应的符号表中不存在变量符号 x,于是向下继续查找。在 main 函数对应的作用域中,可以找到变量符号 x。因此,语句 x = 2; 中的 x 对应 main 函数作用域里定义的变量 x。\n接下来,当扫描到语句 int x = 3; 时,定义了另一个变量 x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域\n变量 x\n\n\n局部作用域(栈顶)\n变量 x\n\n\n\n请务必注意上表中的两个变量 x 是不同的变量。\n接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:\n\n\n\n作用域栈\n符号表\n\n\n\n\n全局作用域(栈底)\n函数 main(可忽略)\n\n\n局部作用域(栈顶)\n变量 x\n\n\n\n最后,扫描语句 x = 4; 时,从栈顶作用域符号表查找 x,所找到的变量 x 为 main 作用域定义的 x 变量。\n中间代码生成\n本步骤中无须新增新的 TAC 指令。\n让我们来看看示例所对应的 TAC 代码:\nmain:\n _T1 = 1\n _T0 = _T1 # int x = 1;\n _T2 = 2\n _T0 = _T2 # x = 2\n _T4 = 3\n _T3 = _T4 # int x = 3;\n _T5 = 4\n _T0 = _T5 # x = 4;\n return _T0\n\n显然,两个代码块里的变量 x 是不同的变量,因此它们分别对应着不同的临时变量。其中,_T0 对应着 main 作用域里的 x,而 _T3 则对应着内层代码块定义的变量 x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。\n目标代码生成\n不需要新增新的中间代码指令。\n代码框架需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。\n实现提示\n\n在 step5 中,namer/typer 遍历时的上下文信息(参数 ctx)是单一的作用域。到了 step 6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义 class Namer(Visitor[Scope, None]) 应改为 class Namer(Visitor[YourType, None]),其中 YourType 是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在 frontend/scope/ 下。class Typer 也需要如上改动。\n\n之前 step5 的全局唯一的作用域可以被当作“函数作用域使用”,在 visitFunction 入栈。然后在新的 visitBlock 中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。\n\n当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用 Scope.lookup 实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑 Typer / Namer 中的每一个 Scope.lookup ,看她们是否需要换成新函数。\n\n后续 stage-4 时,你需要一个机制来检查 break/continue 语句是否在一个循环内。这可以通过修改 namer/typer 中的对应结点来实现。另外,别忘了循环本身也是一个作用域!\n\n后续如果你选做“全局变量”部分,可以在 Namer 和 Typer 的 transform 方法中先将全局作用域加入栈底,再往上才是 visitFunction 的函数作用域。\n\n\n思考题\n\n请画出下面 MiniDecaf 代码的控制流图。int main(){\n int a = 2;\n if (a \n\n\n"},"docs/step6/dataflow.html":{"url":"docs/step6/dataflow.html","title":"数据流分析","keywords":"","body":"数据流分析\n编译优化的基础是数据流分析。\n基本块(basic block)和控制流图(control-flow graph)是用于进行上述分析的数据结构。\n以下讲述数据流分析的内容中,所有的 CondBranch 指令为条件跳转指令,Branch 指令为跳转指令。\n基本块\n基本块是指一段这样的代码序列:\n\n除出口语句外基本块中不含任何的 Branch、Beqz(条件为假时跳转)、Bnez(条件为真时跳转)或者 Return 等跳转语句(但可以包含 Call 语句)。\n\n除入口语句外基本块中不含任何的 Label 标记,即不能跳转到基本块中间。\n\n在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。\n\n\n下面的例子中,代码中不同的基本块被标以不同的颜色:\n\n也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。\n控制流图\n控制流图是一个有向图:它以基本块作为结点,如果一个基本块 A 执行完之后,有可能跳转到另一个基本块 B,则图中包含从 A 对应结点到 B 对应结点的有向边。对于以 Branch 语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以 CondBranch 语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。\n为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:\n\n划分基本块。\n\n建立基本块之间的连接关系。\n\n\n基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:\n\n当遇到一个 Label 标记而且存在跳转语句跳转到这个行号时。\n\n当遇到 Branch、CondBranch 或者 Return 等跳转语句时。\n\n\n整个操作序列扫描完毕后,我们就成功建立了所有基本块。\n在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:\n\n如果当前基本块以 Branch 结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。\n\n如果当前基本块以 CondBranch 结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共 2 条边)。\n\n如果当前基本块以 Return 结尾,则不需要加入新的边。\n\n\n在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。\n上面例子对应的控制流图如下:\n\n活跃变量和活跃变量方程\n从编译器中端出来的中间代码中,我们对 TAC 中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。\n因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。\n根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要 spill 到栈上)。\n由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(liveness analysis),或者称为“活跃变量分析”。\n一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。\n下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:\n\n\n\nTAC 代码\n活跃变量集合\n\n\n\n\n_T0 = 4\n{_T0}\n\n\n_T1 = 3\n{_T0, _T1}\n\n\n_T2 = _T0 * _T1\n{_T0}\n\n\n_T3 = _T0 * _T0\n{_T0, _T3}\n\n\n_T2 = _T3 * _T3\n{_T0, _T2, _T3}\n\n\n_T2 = _T0 * _T2\n{_T2, _T3}\n\n\n_T1 = _T2 * _T3\n{_T1}\n\n\nreturn _T1\n空集\n\n\n\n一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念, 我们需要先引入下面四种针对基本块的集合:\n\nDef 集合:一个基本块的 Def 集合是在这个基本块内被定值的所有变量。所谓的定值 (definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:Store 语句不给任何变量定值,Load 语句则会给对应变量定值)。\n\nLiveUse 集合:一个基本块的 LiveUse 集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。\n\nLiveIn 集合:在进入基本块入口之前必须是活跃的那些变量。 \n\nLiveOut 集合:在离开基本块出口的时候是活跃的那些变量。\n\n\n其中 Def 和 LiveUse 是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。\n有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:\n\n该方程说的是一个基本块的 LiveOut 集合是其所有后继基本块的 LiveIn 集合的并集,而且 LiveIn 集合是 LiveUse 集合的变量加上 LiveOut 集合中去掉 Def 集合以后的部分。\n这个方程的直观意义是:\n\n一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。\n\n在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本 块之前就要具有的了)。\n\n\n根据这个方程,我们可以通过迭代更新的办法求出每个基本块的 LiveIn、LiveOut 集合,以下是求解的伪代码:\nfor i 获得了每个基本块的 LiveIn 和 LiveOut 集合以后,我们需要进一步地计算基本块内每个 TAC 语句的 LiveIn 和 LiveOut 集合。如果我们把基本块内所有 TAC 语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的 “控制流图” 有以下三种特点:\n\n每个节点的出度都是 1,也就是说 LiveOut(B) = LiveIn(Succ(B))。\n\n由于每个结点只含有一个语句,因此其 Def 集要么是空集,要么只含有一个元素。\n\n由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其 LiveUse 集合就是源操作数对应的所有变量。 \n\n\n基于上面三个特点,已经求出基本块的 LiveOut 集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出 LiveIn、LiveOut。\n"},"docs/step6/spec.html":{"url":"docs/step6/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep6 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' compound_statement\n\ntype\n : 'int'\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\n\nstatement\n : 'return' expression ';'\n | compound_statement\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\nstep6 语义规范\n6.1 根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。\n6.2 (更新 5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。\n\n在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a + 1 的值是不确定的。\nint a = 1;\n{\n int a = a + 1;\n}\n\n6.3 (更新 5.3)对于同一个标识符,在同一个作用域中至多有一个声明。\n6.4 (更新 5.4)使用不在当前开作用域中的变量名是不合法的。\n"},"docs/step7/intro.html":{"url":"docs/step7/intro.html","title":"实验要求","keywords":"","body":"实验指导 step7:\nstep7 我们要支持条件语句,包括 if 语句和条件表达式(又称三元/三目表达式,ternary expression)。\n语法上的改动是:\n\nif 表达式\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n\n\n条件表达式\n\nassignment\n : conditional\n | Identifier '=' expression\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\n\n\n\nif 语句的语义和 C 语言相同,注意条件表达式优先级只比赋值高。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 7 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step7/example.html":{"url":"docs/step7/example.html","title":"通过例子学习","keywords":"","body":"step7 实验指导\n本实验指导使用的例子为:\nint main() {\n int x = 1;\n if (x) x = 2; else x = 3;\n return x;\n}\n\n词法语法分析\n针对 if 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供):\n\n\n\n节点\n成员\n含义\n\n\n\n\nIf\n分支条件 cond,真分支 then,假分支 otherwise\nif 分支语句\n\n\n\n仿照 if 节点,还需要类似地实现条件表达式节点。\n悬吊 else 问题\n这一节引入的 if 语句既可以带 else 子句也可以不带,但这会导致语法二义性:else 到底和哪一个 if 结合?\n例如 if(a) if(b) c=0; else d=0;,到底是 if(a) {if(b) c=0; else d=0;} 还是 if(a) {if(b) c=0;} else d=0;?\n这个问题被称为 悬吊 else(dangling else) 问题。\n如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。\n我们人为规定:else 和最近的 if 结合,也就是说上面两种理解中只有前者合法。\n为了让 parser 能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有 else 的 if。\n按照这个规定,parser 看到 if(a) if(b) c=0; else d=0; 中第一个 if 时,选择没有 else 的 if;\n而看到第二个时只能选择有 else 的 if ,也就使得 else d=0; 被绑定到 if(b) 而不是 if(a) 了。\n\n需要说明的是 bison 默认在 shift-reduce conflict 的时候选择shift,从而对悬挂else进行就近匹配。\n\n语义分析\n本步骤中语义分析没有特别需要增加的内容,只需要在扫描到 if 语句和条件表达式时递归地访问其子结点即可。请注意 if 语句不总是有 else 分支,所以在递归到子结点时,请先判断子结点是否存在。\n中间代码生成\n从本步骤开始,由于 MiniDecaf 程序出现了分支结构,我们需要开始考虑跳转语句了。在 Step1-4 中,TAC 代码中的标签只有标志 main 函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用 _Lk 来表示跳转用标签,以此和函数入口标签区分开来。\n为了实现 if 语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n作用\n\n\n\n\nBEQZ\nT0, Label\n若 T0 的值为0,则跳转到 LABEL 标签处\n\n\nJUMP\nLabel\n跳转到 LABEL 标签处\n\n\n\n现在让我们来看看示例所对应的 TAC 代码:\nmain:\n _T1 = 1\n _T0 = _T1\n BEQZ _T0, _L1\n _T2 = 2\n _T0 = _T2\n JUMP _L2\n_L1:\n _T3 = 3\n _T0 = _T3\n_L2:\n return _T0\n\n在这段 TAC 代码中,x 对应的临时变量为 _T0。如果 x 的值为真(不等于0),那么应当执行 then 分支 x = 2;,否则执行 else 分支 x = 3;。因此,我们设置了两个跳转标签 _L1 和 _L2,分别表示 else 分支开始位置和整个 if 语句的结束位置。如果 x 为假,那么应当跳转到 _L1 处,我们使用一条 BEQ 指令来执行。如果 x 为真,那么按顺序执行 then 分支的代码,并在该分支结束时,用一条 JMP 指令跳转到 if 语句的结束位置,从而跳过 else 分支。在 TAC 生成过程中,每当扫描到 if 语句时,都需要调用 TAC 的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。\n当然,如果一条 if 语句没有 else 分支,那么只需要一个跳转标签即可。例如我们将例子中的 if 语句修改为 if (x) x = 2;,则对应的 TAC 代码可简化为:\nmain:\n _T1 = 1\n _T0 = _T1\n BEQ _T0, _L1\n _T2 = 2\n _T0 = _T2\n_L1:\n return _T0\n\n同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。\n目标代码生成\nStep7 中目标代码生成主要是指令的选择以及 label 的声明,RISC-V 提供了与中间代码中 BEQZ 和 JUMP 类似的指令:\nstep7: # RISC-V 汇编标签\n beqz t1, step7 # 如果 t1 为 0,跳转到 step7 标签处\n j step7 # 无条件跳转到 step6 标签处\n\n思考题\n\n我们的实验框架里是如何处理悬吊 else 问题的?请简要描述。\n\n在实验要求的语义规范中,条件表达式存在短路现象。即:\n\n\nint main() {\n int a = 0;\n int b = 1 ? 1 : (a = 2);\n return a;\n}\n\n会返回 0 而不是 2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。\n总结\n本节主要就是引入了跳转,后面 Step8 循环语句还会使用。\n"},"docs/step7/spec.html":{"url":"docs/step7/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep7 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' '{' block_item* '}'\n\ntype\n : 'int'\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | compound_statement\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\n注意:if 的 then 分支和 else 分支需要是一个语句(statement)而非声明(declaration)。\n例如 if (1) int a; 不是合法的 MiniDecaf 程序。\n\nstep7 语义规范\n7.1 条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于 0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于 0,我们会对第三个操作数求值。当第一个操作数的值为 0 时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非 0 时,条件表达式的求值结果为第三个操作数所求得的值。\n\n不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。\n\n7.2 对于 if 语句而言,当控制条件不等于 0 时,会执行第一个子句;当控制条件等于 0 时,如果有 else 分支,就会执行第二个语句,否则整个 if 语句的执行便已经完成。\n7.3 如果出现悬吊 else(dangling else),要求 else 优先和最接近的没有匹配 else 的 if 匹配。\n\n例如 if (0) if (0) ; else ; 等价于 if (0) { if (0) ; else; } 而非 if (0) { if (0) ; } else ;。\n\n"},"docs/step8/intro.html":{"url":"docs/step8/intro.html","title":"实验要求","keywords":"","body":"实验指导 step8:循环语句\nstep8 我们要增加对循环语句,以及 break/continue 的支持:\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\n\n\n循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 8 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step8/example.html":{"url":"docs/step8/example.html","title":"通过例子学习","keywords":"","body":"step8 实验指导\n本实验指导使用的例子为:\nfor (int i = 0; i \n词法语法分析\n针对循环语句和 break/continue 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nWhile\n循环条件 cond,循环体 body\nwhile 循环语句\n\n\nFor\n初始语句 init,循环条件 cond,更新语句 update,循环体 body\nfor 循环语句\n\n\nBreak\n无\nbreak 语句\n\n\nContinue\n无\ncontinue 语句\n\n\n\n其中,while 和 break 语句的实现已经在框架中给出,同学们可以参考并实现 for 和 continue 语句。\n语义分析\n本步骤语义分析阶段的处理方式和 Step7 中的 if 语句相类似,但是请额外注意以下两点:\n\nfor 循环要自带一个作用域。在示例里,for (int i = 0; i 语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for (int i = 0; i 这也是合法的 MiniDecaf 程序。因此,在符号表构建阶段,扫描到 for 结点时,不要忘记开启一个局部作用域。\n\nbreak 和 continue 语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到 break 和 continue 结点时,若当前不处于任何循环内,则报错。\n\n\n中间代码生成\n本步骤中没有需要新增的 TAC 指令。不过为了实现循环语句,需要仔细地考虑如何将 MiniDecaf 循环语句翻译成 TAC 的分支跳转指令。由于 while 循环可以看作 for 循环的特例,我们选择了 for 循环作为示例。\n让我们先来看看示例对应的 TAC 代码:\n _T1 = 0\n _T0 = _T1 # int i = 0;\n_L1: # begin label\n _T2 = 5\n _T3 = LT _T0, _T2\n BEQZ _T3, _L3 # i \n为了实现所有可能的跳转,对每个 for 循环我们都需要定义三个跳转标签:begin, loop 和 break。它们的作用如下:\n\nbegin 标签(示例中的 _L1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到 break 标签(示例中的 _L3)处。\n\nloop 标签(示例中的 _L2)是执行 continue 语句时应当跳转到的位置。\n\nbreak 标签是整个循环结束后的位置。如果循环条件不满足,或者执行了 break 语句,那么应当跳转到此处,执行循环之后的指令。\n\n\n请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。\n由于循环语句可以嵌套,所以 TAC 语句生成过程中需要动态维护 loop 标签和 break 标签,这样才能确定每一条 break 和 continue 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。\nutils/tacgen/tacgen.py 里的 TACFuncEmitter 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 break/continue 标签的维护。\n目标代码生成\n由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。\n思考题\n\n将循环语句翻译成 IR 有许多可行的翻译方法,例如 while 循环可以有以下两种翻译方式:\n 第一种(即实验指导中的翻译方式):\n\nlabel BEGINLOOP_LABEL:开始下一轮迭代\ncond 的 IR\nbeqz BREAK_LABEL:条件不满足就终止循环\nbody 的 IR\nlabel CONTINUE_LABEL:continue 跳到这\nbr BEGINLOOP_LABEL:本轮迭代完成\nlabel BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿\n第二种:\n\ncond 的 IR\n\nbeqz BREAK_LABEL:条件不满足就终止循环\nlabel BEGINLOOP_LABEL:开始下一轮迭代\nbody 的 IR\nlabel CONTINUE_LABEL:continue 跳到这\ncond 的 IR\nbnez BEGINLOOP_LABEL:本轮迭代完成,条件满足时进行下一次迭代\nlabel BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿\n从执行的指令的条数这个角度(label 不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?\n\n\n\n我们目前的 TAC IR 中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它 IR 中存在双目标分支(标签)的条件分支指令,其形式如下:\n br cond, false_target, true_target\n\n 其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。\n 你认为中间表示的哪种条件分支指令设计(单目标 vs 双目标)更合理?为什么?(言之有理即可)\n\n\n"},"docs/step8/spec.html":{"url":"docs/step8/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep8 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function\n\nfunction\n : type Identifier '(' ')' compound_statement\n\ntype\n : 'int'\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : primary\n | ('-'|'~'|'!') unary\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep8 语义规范\n\n方便起见,我们称 for 循环括号中的三个表达式/声明自左向右依次为 init、ctrl 和 post。\n例如 for (i=0; i 中,i=0 是 init,i 是 ctrl,i=i+1 是 post。\n\n8.1 有两种循环语句:for 循环、while 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。\n8.2 while 循环的控制表达式的求值在循环体的每次执行之前。\n8.3 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。\n8.4 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。\n8.5 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 for 循环的 init 是一条声明,则其所声明的变量所属的作用域是整个 for 循环语句的作用域(包含 init、ctrl、post 和循环体)。\n\n例如,for (int i=0;;i=i+1) { int i=1; return i; } 是合法的代码片段。\n\n8.7 continue 语句和 break 语句要么出现在循环体里,要么其就是循环体。\n8.8 执行一条 continue 语句,意味着将程序的执行跳转至该条 continue 语句所在的最小的循环语句的循环体的末尾。\n\n例如,for (int i=0;i 等价于 for (int i=0;i。\n\n8.9 执行一条 break 语句,意味着终止该条 break 语句所在的最小的循环语句的执行。\n"},"docs/step9/intro.html":{"url":"docs/step9/intro.html","title":"实验要求","keywords":"","body":"实验指导 step9:函数\nstep9 开始,我们要支持多函数了。\n\n我们需要支持函数的声明和定义:\n \n program\n : function*\n\n function\n : type Identifier '(' parameter_list ')' (compound_statement | ';')\n \n parameter_list\n : (type Identifier (',' type Identifier)*)?\n \n \n\n我们还需要支持函数调用:\n \n expression_list\n : (expression (',' expression)*)?\n \n unary\n : postfix\n | ('-'|'~'|'!') unary\n\n postfix\n : primary\n | Identifier '(' expression_list ')'\n \n \n\n\n\n语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持 void 返回类型,这可以通过忽略函数的 int 返回值实现。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 5 的实验报告需要放在 stage-5 这个 branch 下的 ./reports/stage-5.pdf。注意报告的标题是 stage-5 而不是 step-9。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step9/example.html":{"url":"docs/step9/example.html","title":"通过例子学习","keywords":"","body":"step9 实验指导\n本实验指导使用的例子为:\nint func(int x, int y) { \n return x + y; \n}\n\nint main() { \n return func(1, 2); \n}\n\n词法语法分析\n针对函数特性,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nFunction\n返回类型 return_type,函数名 ident,参数列表 params,函数体 body\n函数\n\n\nParameter\n参数类型 var_type,变量名 ident\n函数参数\n\n\nCall\n调用函数名 ident,参数列表 argument_list\n函数调用\n\n\n\n语义分析\n本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历 AST 构建符号表的过程中,栈底符号表一直存在,不会被弹出。\n此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:\nint func(int x, int y) { int x = 1; return x + y; }\n\n那么语义检查时应当报错。\n函数符号的实现在 frontend/symbol/funcsymbol.py 中。\n中间代码生成\n为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nCALL\nLABEL(T0, T1, ...)\n调用函数 LABEL,传入的实参为T0、T1等\n\n\n\n下面是一段含有函数调用的代码片段:\nT0 = CALL foo(T1, T2)\n\nT1和T2作为被调用函数foo的实参,而调用后的返回值保存在T0中。\n实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。\n\n在早先的文档中,函数调用涉及CALL和PARAM两种指令。CALL指令只对应实际汇编代码的函数调用,而PARAM T0指令用于传递一个参数。\n假设我们有若干个参数,可以依次使用 PARAM 命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量 _T0, _T1 ... 中。比如我们有这样一段 TAC 程序:\n\nPARAM A\nPARAM B\nPARAM C\nXX = CALL XXX\n\n\n那么,在进入 XXX 函数时,相当于执行了:\n\n_T0 = A\n_T1 = B\n_T2 = C\n\n\n因此,示例可以对应如下的 TAC 程序:\n\nfunc:\n _T2 = ADD _T0, _T1\n return _T2 # 参数 x 和 y 分别对应 _T0, _T1\nmain:\n _T0 = 1\n PARAM _T0 # 将 _T0 的值作为参数 x\n _T1 = 2\n PARAM _T1 # 将 _T1 的值作为参数 y\n _T3 = CALL func # 调用函数\n return _T3\n\n同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。\n思考\n在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案):\n\n中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)?\n到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言?\n\n如果你感兴趣,可以了解一下LLVM IR。\n目标代码生成\n下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。\n .text\n .global main\n\nfunc:\n # start of prologue\n addi sp, sp, -56\n # end of prologue\n\n # start of body\n add t0, a0, a1\n mv a0, t0\n j func_exit\n # end of body\n\nfunc_exit:\n # start of epilogue\n addi sp, sp, 56\n # end of epilogue\n\n ret\n\nmain:\n # start of prologue\n addi sp, sp, -56\n sw ra, 52(sp)\n # end of prologue\n\n # start of body\n li t0, 1\n li t1, 2\n mv a0, t0\n mv a1, t1\n call func\n mv t0, a0\n mv a0, t0\n j main_exit\n # end of body\n\nmain_exit:\n # start of epilogue\n lw ra, 52(sp)\n addi sp, sp, 56\n # end of epilogue\n\n ret\n\n首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。\n完成这个步骤的过程中你可能需要回顾step 2中对于后端翻译的介绍和step 5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。\n函数调用\n程序代码里的一个函数调用,包含了下面一系列的操作:\n\n(汇编)保存 caller-saved 寄存器。\n准备参数,完成传参。\n执行汇编中的函数调用指令,开始执行子函数直至其返回。\n拿到函数调用的返回值,作为函数调用表达式的值。\n具体依赖于1的处理方式,可能需要恢复 caller-saved 寄存器。\n\n上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。\n调用约定\n我们给出RISC-V标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。\nRISC-V 的标准调用约定\n\ncaller-saved 和 callee-saved 寄存器\n\n上表给出 RISC-V 中 32 个整数寄存器的分类。所谓 caller-saved 寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓 callee-saved 寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些 callee-saved 寄存器的值。\n具体的保存方法并不限制,但一般都使用栈来保存。\n\n函数参数以及返回值的传递\n函数参数(32 位 int)从左到右存放在 a0 - a7 寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第 9 个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用 gcc 编译程序进行验证。\n返回值(32 位 int)放在 a0 寄存器中。\n\n\n实战教学\n我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。\n要做什么\n由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。\n只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复callee-saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。\n你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。\n对于调用者的处理\n这里我们需要关注源文件backend/reg/bruteregalloc.py中的BruteRegAlloc类。\n根据调用约定,调用其它函数后caller-saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前caller-saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如callee-saved寄存器或栈上。因此我们先将活跃且在caller-saved寄存器中的临时变量保存到栈上,这实际上让所有caller-saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。\n\n保存活跃的临时变量:首先保存所有位于caller-saved寄存器中且活跃的临时变量,然后解除所有caller-saved寄存器与临时变量的绑定关系。你可以用subEmitter.emitStoreToStack和unbind来达到上述效果。\n\n这是否意味着原本就在caller-saved寄存器中的参数也被丢到了栈上?似乎有些多余?\n 是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。\n\n\n\n将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是caller-saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(Temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv ai, xj;如果vi的值不在物理寄存器中,调用emitLoadFromStack。(思考: 如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题? 你有更高效的解决方案吗?)\n\n为什么有的临时变量可能在寄存器中?\n 因为我们在步骤1中只操作了caller-saved寄存器。如果某个临时变量存放在callee-saved寄存器中,那么它不会在上一步骤被放到栈上。\n\n\n\n用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitLoadFromStack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitStoreToStack,我们需要手动生成一条NativeStoreWord指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。\n\n进行真正的函数调用:可以使用emitNative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。\n\n妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。\n\n记录函数调用情况(可选):你也许需要在SubroutineEmitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。\n\n\n对于被调用者的处理\n这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的RiscvSubroutineEmitter类和backend/reg/bruteregalloc.py中的BruteRegAlloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。\n\n处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitFunc函数中。框架的现有部分已经帮助大家处理好了callee-saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是callee-saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。)\n\n处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。BruteRegAlloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind, unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。\n\n\n一些可能带来困惑的地方\n\nra是一个caller-saved寄存器,但它有着和callee-saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它caller-saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个callee-saved寄存器。\n\n你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。\n\n\n思考题\n\n你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用 vs 传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。\n 具体而言,某个“一整条函数调用”的中间表示大致如下:\n _T3 = CALL foo(_T2, _T1, _T0)\n 对应的“传参和调用分离”的中间表示类似于:\n PARAM _T2\n PARAM _T1\n PARAM _T0\n _T3 = CALL foo\n\n为何 RISC-V 标准调用约定中要引入 callee-saved 和 caller-saved 两类寄存器,而不是要求所有寄存器完全由 caller/callee 中的一方保存?为何保存返回地址的 ra 寄存器是 caller-saved 寄存器?\n\n\n总结\n到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。\n"},"docs/step9/spec.html":{"url":"docs/step9/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep9 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : function*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ';')\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier (',' type Identifier)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\n我们暂不要求支持不包含函数体的函数声明。\n\nstep9 语义规范\n9.1 在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。\n9.2 在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。\n\n在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。\n\n9.3 函数是可以递归调用的。\n9.4 (更新 5.10)执行一条 return 语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的 caller,语句中的表达式的值会返还给 caller 作为函数调用的表达式的值。一个函数可以有任意多条 return 语句。\n9.5 函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。\n\n例如,int f(int x) { int x; } 不合法,但 int f(int x) { { int x; } } 合法。\n\n9.6 如果一个不是 main 的函数执行到了它的 },且其返回值被 caller 所使用,则这是一个未定义行为。\n\n对于感兴趣的同学:C 语言中规定只有使用了返回值才是未定义行为,而 C++ 中规定不管返回值有没有被使用,都是未定义行为。\n我们没有支持 void 类型,但可以忽略返回值达到类似的效果。\n“执行到了 }” 意味着执行时没有通过 return 返回,例如 int f(){if(0) return 0;}。\n实现的时候,你可以直接让所有函数都默认返回 0,语义规范说 main 之外的函数没有 return 是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回 0 当然也是可以的,而且更清晰简单。\n\n"},"docs/step10/intro.html":{"url":"docs/step10/intro.html","title":"实验要求","keywords":"","body":"实验指导 step10:全局变量\nstep10 我们要支持的是全局变量,语法改动非常简单:\n\nprogram\n : (function | declaration)*\n\n\n全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的 .bss 段或 .data 段里。\n访问它也不能通过 fp 加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。\n\n汇编课上应该讲过,实际中(包括 gcc 和 qemu)使用的可执行文件的格式是 ELF(Executable and Linking Format)。\n.text 是其中存放代码的段(section),.bss 和 .data 都是其中存放数据的段,前者零初始化后者须指定初始值。\n对有兴趣的同学:\n全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。\n简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。\n当然,广义上的编译器就囊括了这所有阶段。\n\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 10 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step10/example.html":{"url":"docs/step10/example.html","title":"通过例子学习","keywords":"","body":"step10 实验指导\n本实验指导使用的例子为:\nint x = 2024;\nint main() { return x; }\n\n词法语法分析\n针对全局变量,我们需要新设计 AST 节点来表示它,只需修改根节点的孩子类型即可:原先表示整个 MiniDecaf 程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。\n语义分析\n本步骤引入全局变量,在引入全局变量之后,AST 根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历 AST 构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。\n中间代码生成\n经过 Step5 的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nLOAD\nT1, offset\n临时变量 T1 中存储地址,加载与该地址相差 offset 个偏移的内存地址中的数据\n\n\nLOAD_SYMBOL\nsymbol\nsymbol 为字符串,加载 symbol 符号所代表的地址\n\n\n\n有了上述两条指令,可以将测试用例翻译如下:\nmain:\n _T0 = LOAD_SYMBOL x\n _T1 = LOAD _T0, 0\n return T1\n\n需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。\n\n请注意,翻译所得的 TAC 代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。\n目标代码生成\nStep10 中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。\n\n翻译中间代码\n实际上,我们提供的中间代码设计和 RISC-V 汇编的思想是一致的,RISC-V 汇编中有对应 LOAD 和 LOAD_SYMBOL 的指令,我们直接给出翻译结果:\nmain:\n la t0, x # _T0 = LOAD_SYMBOL x\n lw t1, 0(t0) # _T1 = LOAD _T0, 0\n mv a0, t1\n ret\n\n\n将全局变量放到特定的数据段中\n到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的 x 变量符号究竟存在哪里,如果所生成的汇编程序不给出 x 的定义,程序是有bug的。实际上,RISC-V 提供了一系列的汇编指令,用以声明全局变量 x 所对应的数据段。\n下面给出 RISC-V 用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:\n.data\n.globl x\nx:\n .word 2024\n\n上例中,.data 表示输出到 data 数据段;.globl x 声明 x 为全局符号;.word 后是一个 4 字节整数,是 x 符号对应的初始值。\n按照汇编约定,data 段中存放已初始化的全局变量,未初始化的全局变量则存放在 bss 段中。举例而言,下面的示例将未初始化的全局变量 x 存放到 bss 段中。其中,.space 表示预留一块连续的内存,4 表示存储空间大小为 4 字节。\n.bss\n.globl x\nx:\n .space 4\n\n\n\n思考题\n\n写出 la v0, a 这一 RiscV 伪指令可能会被转换成哪些 RiscV 指令的组合(说出两种可能即可)。\n\n参考的 RiscV 指令链接:https://github.com/TheThirdOne/rars/wiki/Supported-Instructions\n"},"docs/step10/spec.html":{"url":"docs/step10/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep10 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : (function | declaration)*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ; )\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier (',' type Identifier)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | Identifier '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep10 语义规范\n10.1 对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如 2123),对初始化表达式是非字面量的情况不做任何要求(例如 a 或 f() 或 2+3)。\n\nC 其实也支持非字面量的编译期常量,例如 int a=1+3;。编译器可以计算出 1+3==4 然后让它等价于 int a=4;。\n但为了实现简便,我们就不要求支持这点。\nC 不允许 int a=f(); 因为 f() 不是编译器常量;\n而 C++ 甚至可以支持 int a=f();,其大致实现为 int a=0; 然后在 main 之前执行的初始化函数中 a=f();。\n\n10.2 我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。\n\nint a; int a=2; int a; int main(){ return a;} 是合法的 C 代码,不过不是合法的 C++ 代码,也许 C++ 的处理方式更符合你的直觉。\n为了简单,我们不要求这点。比如对于形如 int a; int a=2; 或 int a; int a; 的代码片段,你可以以任意方式处理。\n\n10.3 如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值 0。\n"},"docs/step11/intro.html":{"url":"docs/step11/intro.html","title":"实验要求","keywords":"","body":"实验指导 step11:数组\nstep11 的目标是支持数组:\n语法上没有太大改动,\n\n数组的初始化:\n\ndeclaration\n : type Identifier ('[' Integer ']')* ('=' expression)? ';'\n\n\n数组的下标操作\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n | postfix '[' expression ']'\n\n\n\n\nstep11 难度不大,但有了数组让我们能够写很多有意思的程序了,step11 之前甚至 MiniDecaf 连快速排序都写不了。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 11 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step11/example.html":{"url":"docs/step11/example.html","title":"通过例子学习","keywords":"","body":"step11 实验指导\n本实验指导使用的例子为:\nint x[10];\nint main() { int y[10]; return 0; }\n\n词法语法分析\n针对数组,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nIndexExpr\n索引基底 base,索引下标 index\n索引运算\n\n\n\n语义分析\n由于 step 11 里引入了数组,现在我们的变量类型不只是 int 型了,还包括 int 型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。\n注意:引入数组后,左值不再一定是 identifier 了,还有可能是如 a[0][1] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。\nfrontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。\n有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。\n中间代码生成\n数组和普通变量类似,可以分为局部数组和全局数组。\n全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1. 需要申请更大的 bss 段内存)。\n针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令 ALLOC 用于分配内存空间:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nALLOC\nsize\n分配 size 字节的内存,并返回内存首地址\n\n\n\n采用 ALLOC 指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):\nmain:\n T0 = ALLOC 40 # 一个 int 类型为 4 个字节\n T1 = 0\n return T1\n\n通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。\n\n除了分配数组,我们还需要考虑如何访问数组元素。通过 ALLOC 指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用 Step10 中引入的 LOAD 指令来实现,我们还需要引入一条类似的 STORE 指令将值写入数组元素。\n那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int 型的大小为 4 个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组 a[d1][d2]...[dn],访问元素 a[i1][i2]...[in] 可以等价于访问 a[i1d2d3...dn + i2d3...*dn + ... + in]。在将数组索引翻译成 TAC 时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。\n目标代码生成\n同中间代码生成,全局数组自行思考实现。\n对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,Step5 栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针 sp 进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。\n思考题\n\nC 语言规范规定,允许局部变量是可变长度的数组(Variable Length Array,VLA),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似 int n = 5; int a[n]; 这种,但仍然不允许类似 int n = ...; int m = ...; int a[n][m]; 这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?\n\n\n提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。\n你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。\n\n"},"docs/step11/spec.html":{"url":"docs/step11/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep11 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : (function | declaration)*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ; )\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier (',' type Identifier)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('[' Integer ']')* ('=' expression)? ';'\n\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | unary '=' expression\n\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n | postfix '[' expression ']'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\nstep11 语义规范\n11.1 一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。\n11.2 我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。\n\n所以,我们不要求支持变长数组 int a[n]; 或不定长数组 int a[];。\n\n11.3 对于下标运算 a[b],要求 a 是一个数组类型,b 是一个整数类型,a[b] 是 a 中的第 b 个元素(从 0 开始计数)。\n11.4 下标运算越界是未定义行为。\n\n即便是类似 int a[4][5]; a[1][7] 这种,同样也是未定义行为。\n\n"},"docs/step12/intro.html":{"url":"docs/step12/intro.html","title":"实验要求","keywords":"","body":"实验指导 step12:为数组添加更多支持\nstep12 的目标是支持数组的初始化和传参:\n语法上没有太大改动,\n数组的初始化:\n\ndeclaration\n : type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';'\n\n\n\n\n数组的传参:\n\nfunction\n : type Identifier '(' parameter_list ')' (compound_statement | ';')\nparameter_list\n : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)?\n\n\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 12 准备报告。\n你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step12/example.html":{"url":"docs/step12/example.html","title":"通过例子学习","keywords":"","body":"step12 实验指导\n本实验指导使用的例子为:\nint func(int param[]){\n param[0] = 1;\n return 0;\n}\n\nint main() {\n int arr[4] = {1,2};\n func(arr);\n return arr[0] + arr[1] + arr[2];\n}\n\n词法语法分析\n我们需要增加一个数组的初始化列表,可以直接修改上一节数组的AST结点增加一个数组用于记录初始化元素。\n函数的参数列表需要加上数组类型。\n语义分析\n由于 step 12 里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。\nint fun(int a[][12]){\n a[0][1] = 1;\n return 0;\n}\n\n中间代码生成\n在C语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。\n而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为 0。例如:\nint arr[3]={1,2};\n// 等价于\nint arr[3]={1,2,0};\n\n当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个 memset 这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。\n// fill_n 函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)\nint fill_n(int *dst, int res, int cnt);\n\n因此,上述初始化可以等价地转化为:\nint arr[3];\nfill_n(arr, 0, 3);\na[0] = 1;\na[1] = 2;\n\n目标代码生成\n数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。\n思考题\n\n作为函数参数的数组类型第一维可以为空。事实上,在 C/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?\n\n总结\n恭喜你实现了 MiniDecaf 语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。\n"},"docs/step12/spec.html":{"url":"docs/step12/spec.html","title":"规范","keywords":"","body":"规范\n每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。\nstep12 语法规范\n灰色部分表示相对上一节的修改。\n\n\nprogram\n : (function | declaration)*\n\nfunction\n : type Identifier '(' parameter_list ')' ( compound_statement | ; )\n\ntype\n : 'int'\n\nparameter_list\n : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)?\n\ncompound_statement\n : '{' block_item* '}'\n\nblock_item\n : statement\n | declaration\n\nstatement\n : 'return' expression ';'\n | expression? ';'\n | 'if' '(' expression ')' statement ('else' statement)?\n | compound_statement\n | 'for' '(' expression? ';' expression? ';' expression? ')' statement\n | 'for' '(' declaration expression? ';' expression? ')' statement\n | 'while' '(' expression ')' statement\n | 'break' ';'\n | 'continue' ';'\n\ndeclaration\n : type Identifier ('=' expression)? ';'\n | type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';'\n\n\nexpression_list\n : (expression (',' expression)*)?\n\nexpression\n : assignment\n\nassignment\n : conditional\n | unary '=' expression\n\nconditional\n : logical_or\n | logical_or '?' expression ':' conditional\n\nlogical_or\n : logical_and\n | logical_or '||' logical_and\n\nlogical_and\n : equality\n | logical_and '&&' equality\n\nequality\n : relational\n | equality ('=='|'!=') relational\n\nrelational\n : additive\n | relational ('|'>'|'|'>=') additive\n\nadditive\n : multiplicative\n | additive ('+'|'-') multiplicative\n\nmultiplicative\n : unary\n | multiplicative ('*'|'/'|'%') unary\n\nunary\n : postfix\n | ('-'|'~'|'!') unary\n\npostfix\n : primary\n | Identifier '(' expression_list ')'\n\n | postfix '[' expression ']'\n\nprimary\n : Integer\n | '(' expression ')'\n | Identifier\n\n\n\nstep12 语义规范\n12.1 多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号\n\nint a[2][2] = {1, 2, 3, 4};\n会将数组变为\na[0][0] = 1;\na[0][1] = 2;\na[1][0] = 3;\na[1][1] = 4;\n\n12.2 数组传参是支持不定长度的\n\nint fun(int a[]) 是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题\n\n"},"docs/step13/readme.html":{"url":"docs/step13/readme.html","title":"选做二说明","keywords":"","body":"选做实验二说明\n选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个Step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。\n"},"docs/step13/intro.html":{"url":"docs/step13/intro.html","title":"实验要求","keywords":"","body":"实验指导 step13:寄存器分配算法改进\nstep13 的目标是实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法,并以此代替 step5 中提到的当前代码框架中的分配算法。\n语法上没有改动。\n我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 7 的实验报告需要放在 stage-7 这个 branch 下的 ./reports/stage-7.pdf。整个 stage 7 只需要提交一份报告。\n你需要:\n\n改进你的编译器,支持上面提到的寄存器分配算法。\n除了替换位于 backend/reg/bruteregalloc.py 的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看 step 6 的数据流分析一节。\n你需要为代码添加合理的注释以便批阅。\n你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。\n\n\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n详细说明你的代码的运行逻辑\n举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的?\n对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step13/example.html":{"url":"docs/step13/example.html","title":"实验指导","keywords":"","body":"step13 实验指导\n本节实验要求实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。\n下面简要介绍一些你可能需要的预备知识。\n回顾:启发式寄存器分配算法\n在step 6 的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。\n而在step5 中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下:\n\n首先检查是否存在空闲的寄存器,有则直接分配给当前变量。\n否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。\n否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。\n\n基于图染色的寄存器分配算法\n我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。\n重用一下 step 6 中活跃变量的例子:\n\n\n\nTAC 代码\n活跃变量集合\n相干寄存器\n\n\n\n\n_T0 = 4\n{_T0}\n\n\n\n_T1 = 3\n{_T0, _T1}\n(_T0,_T1)\n\n\n_T2 = _T0 * _T1\n{_T0}\n\n\n\n_T3 = _T0 * _T0\n{_T0, _T3}\n(_T0,_T3)\n\n\n_T2 = _T3 * _T3\n{_T0, _T2, _T3}\n(_T0,_T2),(_T0, _T3),(_T2, _T3)\n\n\n_T2 = _T0 * _T2\n{_T2, _T3}\n(_T2,_T3)\n\n\n_T1 = _T2 * _T3\n{_T1}\n\n\n\nreturn _T1\n{}\n\n\n\n这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配?\n容易发现,至少需要3个寄存器。因为 _T0,_T2,_T3 相互冲突,需要各一个寄存器,而 _T1 可以跟 _T2 或者 _T3 共用寄存器。\n这个思路相比代码框架中的启发式寄存器分配算法有以下好处:\n\n尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的 callee save/caller save 寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。\n方便全局优化寄存器分配,减少基本块之间的 move 指令。\n\n事实上,我们可以用图染色问题去描述“相互冲突的变量”:\n\n图染色问题:有 n 个结点,m 条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。\n\n寄存器分配问题:有 n 个变量,m 组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。\n\n\n\n上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。\n如何找到所有冲突的变量\n这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。\n如何解决寄存器分配对应的图染色问题\n假定我们有 k 种颜色可用于染色(对应 k 个寄存器可用于存放变量),那么可以依照下面的顺序执行\n\n寻找图中是否有连接了少于 k 条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于 k 条边的结点。\n如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少 k 条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。\n按删除的逆序恢复所有结点。\n当恢复一个从步骤1删除的结点时,因为当前它连接了少于 k 条边,所以我们总能为它指定一个颜色,使之不和相邻的最多 k-1 个点的颜色冲突。\n当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有 k 种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。\n\n\n将每种颜色对应到寄存器上,生成后端代码。\n\n基于复制指令的寄存器合并\n在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copy instructions)(其实就是赋值)传值的寄存器。\n例如下面的代码\nint f() {\n int a = 1;\n int b = a;\n int c = a + 2;\n int d = b + 3;\n return a + b + c + d;\n}\n\n用上面提过的活跃变量分析可以算出,在 c = a + 2 执行时 a 和 b 都是活跃变量。但观察代码可以发现 a b 事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。\n这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。\n可以直接合并这两个点吗?\n可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的 Chaitin 的解决方案。\n可以在保证合并后边数 的情况下合并这两个点吗?\n可以,但这样合并的点数比较少,优化效果差。这实际上是更早的 Briggs 的解决方案。\n可以不合并但强制这两个点同色吗?\n不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把 b,f涂成相同颜色。这样就会导致 j 的颜色和 b 相同,从而意外地和 f 相同,导致溢出到内存。\n\n这篇实验要求实现的论文的解决方案\n把图中当前所有结点中,连接了至少 k 条边的结点标记为 significant-degree 的。看上述图染色算法流程,可以发现如果一个点不是 significant-degree 的,它会在步骤1被删除。\n对于仅因复制指令相互冲突的一对点 (a,b),可以如此检查它们是否可以合并:\n\n统计与 a 或者 b有边相连的所有结点中有多少个 significant-degree 点。如果有 个,说明最多有 k-1 个结点不会在在步骤1被删除,因此如果 a b 合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的 a 和 b 一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。\n如果不能合并,那么把 a 和 b 中间的虚线边改为实线,表示不再考虑二者合并的情况。\n\n上面的说明只是简要介绍了算法的原理,请阅读论文 TOPLAS'1996: Iterated Register Coalescing 获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。\n"},"docs/contest/intro.html":{"url":"docs/contest/intro.html","title":"大实验简介","keywords":"","body":"大实验参考文档\n注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。\n介绍\n大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。\n参加大实验的同学应该需要自己从头设计一个符合 minidecaf 规范 的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。\n有两个原因我们要求同学们从头设计一个编译器:\n\n为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:IR 的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。\n大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。\n\n大实验在 2024 年相对于 2023 年有一些变化,主要体现在:\n\n增加了实验文档\n语法要求从 Sysy 语法改为了 MiniDecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低\n不再要求完成基础实验以后再进行大实验\n\n大实验的语法规范与 step12 的规范是一致的。不过有一点需要注意:\n\n我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的 RiscV 调用约定。\n\n你可以选择 C++,Rust 实现你的编译器,你的编译器生成的目标代码可以是 RISC-V 或者 ARM 架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。\n大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。\n注意:大实验工作量较大,并不推荐所有同学都参加。\n编译器的构成\n一个编译器主要由以下几个部分构成:\n\n前端:负责词法分析、语法分析、语义分析,生成抽象语法树(AST)。\n词法分析器(Lexer):将输入的源代码转换为一个个的标记(Token)。\n语法分析器(Parser):将标记(Token)转换为抽象语法树(AST)。\n语义分析器(Semantic Analyzer):检查AST是否符合语法规则和语义规则。\n\n\n中端:负责中间代码生成、优化。\n中间代码生成器(Intermediate Representation Generator):将 AST 转换为中间代码。\n优化器(Optimizer):对中间代码进行优化。\n\n\n后端:负责目标代码生成。\n目标代码生成器(Target Code Generator):将优化后的中间代码转换为目标机器代码。\n寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。\n\n\n\n可以通过后续的文档了解每个部分的更多细节。\n参考实现进度及顺序\n\n编写前端、设计 IR、完成中间代码生成 (两周)\n\n前端:你可以使用现有的框架完成前端(如:Antlr、Flex & Bison)辅助你生成 AST,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现 LR(1)、LL(1) 等分析器。\n设计 IR 也是需要进行代码编写的,可以参考基础实验框架的IR在代码层面是如何实现的(utils/tac)。\n中间代码生成:将 AST 转换为 IR,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。\n此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。\n\n\n\n完成后端(两周)\n\n实现后端代码生成、栈帧管理\n实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。\n\n\n增加中端优化和后端优化(剩下的时间)\n\n中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等\n后端优化:图染色寄存器分配、线性扫描法、指令折叠等等\n分工建议:两位同学负责中端优化,两位同学负责后端优化。\n\n\n\n\n进度检查\n\n第一次进度检查:第六周周六(10.19)\n\n你的编译器应该能完成将简单的程序转换为 RISC-V 汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)Stage 3 截止之前完成 Stage 1-3 的实验,不会有额外扣分。\n\n\n第二次进度检查(中期检查):第八周周六(11.2)\n\n这时候你的编译器应该能通过基础实验的所有测试样例(Stage 1-5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)Stage 4 截止前完成 Stage 1-4 ,不额外扣分。也可以继续大实验不做基础实验,但是至少要在 Stage-5 让你的编译器能够通过 Stage 1-5 的测试样例。\n你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评 5%))\n\n\n第三次进度检查:第十二周周六(11.23)\n\n你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除 5 分(总评 5%))\n\n\n第四次进度检查(期末检查):第十六周周末(12.29)\n\n你的编译器应该能通过所有的测试样例(Stage 1-6),包括附加测试样例。\n你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩)\n\n\n\n评分方法\n因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案:\n\n选项一 完成竞赛第二阶段的优化编译器,替代期末考试\n 成绩占比 90%,剩余 10% 为书面作业和日常成绩。\n 其中这90%构成为:\n\n50% 正确性测试:你需要通过 Stage 1-6 的所有测试样例以及附加测试的测试样例,这样你可以获得 50% 的正确性得分。\n10% 报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。\n30% 性能测试,将根据你的编译器的性能进行评分。\n性能评分方案:\n附加测试中performance部分测试样例,以 gcc 打开-O2优化的性能的 60% 为满分,按照比例折算。如果一个程序 gcc 编译后运行时间为 12s ,如果你的程序执行时间为 20s 即为满分。\n你的单个测试点的得分为:\nmin{100, 100 * GCC编译程序运行时间 * 1.67 / 你的程序运行时间}\n所有测试点取算数平均值,最后结果 * 30% 作为你的最终性能测试成绩。\n评测将会在我们提供的服务器上进行,通过 QEMU 模拟 RISC-V 或者 ARM 架构的 CPU 运行你的程序。经过测试 QEMU与 真实硬件的性能相对差值是比较恒定的(如比较 gcc -O1与-O2)。\n实验评测仓库在这里。\n你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。\n\n\n\n选项二 仅完成竞赛第一阶段(达到课程基础实验的要求)\n 实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个 step 的。根据通过测试样例情况评分。\n\n完成 Stage 1 - 5 实验成绩 35% ,书面作业和日常成绩 10% ,期末成绩 55%。\n完成 Stage 1 - 6 实验成绩 42% ,书面作业和日常成绩 10% ,期末成绩 48%。\n完成 Stage 1 - 7 实验成绩 50% ,书面作业和日常成绩 10% ,期末成绩 40%。\n\n\n\n"},"docs/contest/frontend.html":{"url":"docs/contest/frontend.html","title":"前端设计","keywords":"","body":"前端梗概\n前端的主要任务是将源代码转换为抽象语法树(Abstract Syntax Tree, AST),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。\n词法分析与语法分析\n词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。\n下面我们以 Antlr 框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如 Flex & Bison, lex & yacc 等。\nAntlr简介\nAntlr (Another Tool for Language Recognition) 是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。Antlr 支持多种语言,包括 Java、Python 和 C++。通过定义语法文件(.g4 文件),Antlr 能够帮助我们生成解析源代码所需的词法分析和语法分析工具。\n在这个项目中,我们推荐使用 Antlr 来处理 MiniDecaf 的词法分析和语法分析部分。\n第一部分:依赖环境准备\nANTLR 工具需要 JVM 才能执行。\n直接使用包管理器安装:\nsudo apt install openjdk-19-jdk\n\n1. 获取 ANTLR\n你需要从 ANTLR Download 下载 antlr-4.13.2-complete.jar(截至文档写作时此为最新版)。\n使用以下命令(记得把/path/to/antlr-4.13.2-complete.jar替换成你的 antlr 路径)测试是否能正常使用:\njava -jar /path/to/antlr-4.13.2-complete.jar\n\n你应该能看到类似以下的输出:\nANTLR Parser Generator Version 4.13.2\n -o ___ specify output directory where all output is generated\n -lib ___ specify location of grammars, tokens files\n -atn generate rule augmented transition network diagrams\n -encoding ___ specify grammar file encoding; e.g., euc-jp\n... ...\n\n3. ANTLR 运行时的编译链接\n1. 安装 ANTLR 运行时库\nANTLR 运行时库是解析器生成的代码在运行时所依赖的代码。对于 C++,你可以从 ANTLR4 runtime Cpp的 GitHub 仓库下载预编译的库或者自己编译安装。但是官方的 CMAKE 脚本会从官方 git 仓库下载 ANTLR C++ 运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接 clone ANTLR 运行时库的 C++ 源代码到你的代码仓库里,并为你的整个项目编写一个 CMAKE 文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与CMAKE文件实例.\n\n项目结构\nexample-tree/\n├── 3rd_party/\n│ └── antlr4-runtime/ # 第三方库 ANTLR 运行时目录(在源码的 src 目录下)\n│ ├── CMakeLists.txt # antlr4-runtime 的 CMake 配置文件,需要你手动添加一个\n│ └── antlr4-runtime.h\n│ └── antlr4-common.h\n│ └── ...\n├── CMakeLists.txt # 根目录下的 CMake 配置文件\n└── src/ # 源代码目录\n ├── frontend/ # 前端代码目录\n │ ├── lexer/ # 词法分析相关代码\n │ │ └── *.cpp # 词法分析器源文件\n │ │ └── *.h # 词法分析器头文件\n │ ├── parser/ # 语法分析相关代码\n │ │ └── *.cpp # 语法分析器源文件\n │ │ └── *.h # 语法分析器头文件\n │ └── ast/ # 抽象语法树相关代码\n │ ├── *.cpp # AST 源文件\n │ ├── *.h # AST 头文件\n ├── backend/ # 后端代码目录\n ├── midend/ # 中间代码目录\n └── main.cpp # 程序入口文件\n\n对应的 CMakeLists.txt\n# 指定 CMake 的最小版本要求\ncmake_minimum_required(VERSION 3.10)\n\n# 设置项目名称和使用的语言(CXX 代表 C++)\nproject(my_compiler CXX)\n\n# 设置 C++ 标准为 C++17\nset(CMAKE_CXX_STANDARD 17)\n\n# 设置 C++ 编译器标志,这里没有额外添加,使用默认\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS}\")\n\n# 设置调试模式下的编译器标志,开启 DEBUG 宏\nset(CMAKE_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG\")\n\n# 使用 GLOB_RECURSE 模式递归查找 src 目录下所有的 .cpp 文件\nfile(GLOB_RECURSE SRC \"src/*.cpp\")\n\n# 添加项目的 src 目录到头文件搜索路径\ninclude_directories(src)\n\n# 添加第三方库目录 antlr4-runtime 到头文件搜索路径\ninclude_directories(3rd_party/antlr4-runtime)\n\n# 添加 antlr4-runtime 子目录作为子项目进行构建\nadd_subdirectory(3rd_party/antlr4-runtime)\n\n# 创建名为 my_compiler 的可执行文件,将所有源文件编译链接到这个可执行文件中\nadd_executable(my_compiler ${SRC})\n\n# 将 antlr4_runtime 库与 my_compiler 可执行文件链接\ntarget_link_libraries(my_compiler antlr4_runtime)\n\n\n为 antlr4-runtime 添加一个相应的 CMakeLists.txt\n\n\n# 3rd_party/antlr4-runtime/CMakeLists.txt\nfile(GLOB_RECURSE ANTLR4_SRC \"*.cpp\")\n\nadd_library(antlr4_runtime STATIC ${ANTLR4_SRC})\n\n第二部分:文法文件的编写与 parse tree 的生成\n终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的 C 语言子集 simpleC 的文法文件 simpleC.g4,并利用它生成一个 parse tree。最终把一个简单的 C 语言程序 test.c 转换为一个 parse tree。\n\ntest.c\nint main(){\n int a = 1 ;\n int b = a + 2 ;\n int c = a + b + 1 ;\n return c ;\n}\n\n\nparse tree\nparse tree:\n(program\n (funcDeclaration int main ( ) {\n (statements\n (statement int a =\n (expression 1) ;)\n (statement int b =\n (expression\n (expression a) +\n (expression 2)) ;)\n (statement int c =\n (expression\n (expression\n (expression a) +\n (expression b)) +\n (expression 1)) ;)\n (statement return\n (expression c) ;)) }))\n\n\n1. 编写simpleC.g4\n.g4 文件是 ANTLR 使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的 .g4 文件包含以下几个部分:\n\n语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为 ANTLR 是对大小写敏感的)\n规则:定义语言中各种结构的模式。\n词法规则:定义词法单元(如关键字、标识符、符号等)。\n忽略规则:通常用来忽略空格、换行等空白字符。\n操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。\n\n示例 .g4 文件结构\n// 文件名: SimpleC.g4\n\ngrammar SimpleC; // 语法定义\n\n// 程序的起始规则\nprogram: funcDeclaration ;\n\n// 函数声明规则\nfuncDeclaration: Type ID LP RP LC statements RC ;\n\n// 语句的规则\nstatements: statement* ;\n\n// 声明和表达式\nstatement: Type ID ASSIGN expression SEMI // varDeclaration\n | expression SEMI\n | 'return' expression SEMI\n ;\n\n// 表达式的规则\nexpression: expression PLUS expression // AddExpr\n | expression MINUS expression // SubExpr\n | expression MUL expression // MulExpr\n | expression DIV expression // DivExpr\n | '(' expression ')' // ParenExpr\n | INT // IntExpr\n | ID // ID\n ;\n\n// 类型的规则(这里只支持 int 类型)\nType: 'int' ;\n\n// 整数的规则\nINT: [0-9]+ ;\n\n// 标识符的规则\nID: [a-zA-Z_] [a-zA-Z0-9_]* ;\n\n// 忽略空格和换行\nWS: [ \\t\\r\\n]+ -> skip ;\n\n// 定义括号和符号\nLP: '(' ;\nRP: ')' ;\nLC: '{' ;\nRC: '}' ;\nSEMI: ';' ;\nASSIGN: '=' ;\nPLUS: '+' ;\nMINUS: '-' ;\nMUL: '*' ;\nDIV: '/' ;\n\n通过编写 .g4 文件,我们能够为 ANTLR 提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。\n2. 使用文法文件生成 lexer & parser\n在确认环境配置无误后,我们可以使用 ANTLR 和文法文件生成所需的 lexer & parser,只需要执行\njava -jar /path/to/antlr-4.13.2-complete.jar -Dlanguage=Cpp -no-listener -visitor -o src/frontend/lexer_parser simpleC.g4\n\n-no-listener 和 -visitor 选项分别用于禁止生成 listener(默认是激活的)和激活 visitor 模式。如果你还不知道 visitor 是什么,不用担心,我们稍后会看到。\n-o 选项用于设置输出目录。我们将在 src/frontend/lexer_parser 目录中输出生成的代码。\n3. 使用 lexer & parser\n现在我们可以看到如何在 C++ 程序中使用我们生成的解析器。\n// src/main.cpp\n#include \"antlr4-runtime.h\"\n#include \"frontend/lexer/SimpleCBaseVisitor.h\"\n#include \"frontend/lexer/SimpleCLexer.h\"\n#include \"frontend/lexer/SimpleCParser.h\"\n#include \n#include \n\nusing namespace antlr4;\nusing namespace tree;\nusing namespace std;\n\nint\nmain(int argc, const char* argv[])\n{\n ifstream f_stream;\n f_stream.open(argv[1]);\n ANTLRInputStream input(f_stream);\n SimpleCLexer lexer(&input);\n CommonTokenStream tokens(&lexer);\n SimpleCParser parser(&tokens);\n ParseTree* tree = parser.program();\n cout toStringTree(&parser, true) \n这是我们程序的主文件,展示了如何在 C++ 中设置使用 ANTLR。前几行(3-5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。\n16-21 行展示了使用 ANTLR 解析器的标准方式:\n\n我们将输入转换为 ANTLR 格式\n我们创建一个在该输入上工作的词法分析器\n我们使用词法分析器产生一个 token 流\n我们创建一个在令牌流上工作的解析器\n然后,21 行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。\n\n现在,使用 cmake 构建并运行我们自己实现的编译器,你将会看到 test.c 对应的 parse tree 被输出到终端中。\n./my_compiler test.c\n\n总的来说,我们现在利用 ANTLR 实现了词法分析器分析输入(即字符)并产生 token,然后解析器分析 token 以产生 parser tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用 visitor 模式遍历这个树并对这个树的每个节点进行一些操作。\n第三部分:AST 的生成\n在生成 AST 时,我们通常是在解析树(parse tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(AST)。AST 的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。\n1. 定义 AST 结点\n首先,我们需要为 AST 定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的 If 语句结点的定义:\nclass IfNode : public ASTNode {\npublic:\n std::unique_ptr cond; // 条件表达式\n std::unique_ptr then; // then 语句块\n std::unique_ptr other; // optional 的 else 语句块\n bool has_otherwise;\n IfNode(std::unique_ptr cond, std::unique_ptr then,\n std::unique_ptr other = nullptr)\n : cond(std::move(cond)), then(std::move(then)), other(std::move(other)),\n has_otherwise(other != nullptr) {}\n};\n\n这个 IfNode 结点包含条件表达式cond、then 语句块和可选的 else 语句块。\n2. 使用 Visitor 模式生成 AST\n在生成 AST 时,我们需要遍历解析树(parse tree)并根据其结构生成对应的 AST 结点。这里我们可以使用 Visitor 模式,针对解析树的不同节点调用对应的处理函数,来生成合适的 AST 结点。\n假设我们有一个解析树 IfContext,对应的语法规则如下:\nifStatement\n : 'if' '(' expr ')' statement ('else' statement)?\n ;\n\n我们可以继承 ANTLR 自动生成的 BaseVisitor 函数,为 IfContext 实现 Visitor 函数,以生成 IfNode:\nclass ASTBuilderVisitor : public SimpleCBaseVisitor> {\npublic:\n // 访问 ifStatement 节点\n std::unique_ptr visitIfStatement(SimpleCParser::IfStatementContext *ctx) override {\n // 访问并生成条件表达式的 AST 结点\n auto cond = visit(ctx->expr());\n\n // 访问并生成 then 语句的 AST 结点\n auto thenBranch = visit(ctx->statement(0));\n\n // 检查是否有 else 分支,并生成对应的 AST 结点\n std::unique_ptr elseBranch = nullptr;\n if (ctx->statement(1)) {\n elseBranch = visit(ctx->statement(1));\n }\n\n // 构建 IfNode,并返回\n return std::make_unique(std::move(cond), std::move(thenBranch), std::move(elseBranch));\n }\n};\n\n这个 ASTBuilderVisitor 类的 visitIfStatement 方法遍历解析树中的 ifStatement 结点,生成 IfNode 并填充其条件表达式、then 和 else 分支。通过 Visitor 模式,代码变得结构清晰且便于扩展。\n生成 AST 的完整流程\n\n编写 Antlr 语法文件,定义源语言的解析规则。\n使用 Antlr 生成词法分析器和语法分析器,解析源代码生成解析树。\n实现 Visitor 模式的遍历代码,逐个解析树结点处理并生成 AST 结点。\n利用 AST 结点构建抽象语法树,最终生成中间表示或目标代码。\n\n通过这种方式,我们能够将解析树转换为精简的抽象语法树(AST),为后续的中端和后端处理提供基础。\n第四部分:语义分析\n语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出 MiniDecaf 的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。\n符号解析(namer)\n符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(AST),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。\n符号表\n符号解析的核心工具是符号表(symbol table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。\nclass SymbolTable {\npublic:\n std::unordered_map> table;\n std::shared_ptr parent; // 指向父作用域的符号表\n\n SymbolTable(std::shared_ptr parent = nullptr)\n : parent(parent) {}\n\n // 在当前作用域查找符号\n std::shared_ptr lookup(const std::string &name){\n //···\n }\n\n // 向符号表中插入新的符号\n void insert(const std::string &name, std::shared_ptr symbol) {\n //···\n }\n};\n\n在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。\n作用域管理\n符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。\nclass SemanticAnalyzer {\npublic:\n std::shared_ptr currentScope;\n\n void enterScope() {\n currentScope = std::make_shared(currentScope);\n }\n\n void exitScope() {\n currentScope = currentScope->parent;\n }\n\n void declareVariable(const std::string &name, const std::shared_ptr &symbol) {\n currentScope->insert(name, symbol);\n }\n\n std::shared_ptr resolveVariable(const std::string &name) {\n return currentScope->lookup(name);\n }\n};\n\n通过 enterScope() 和 exitScope() 来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。\n类型检查(typer)\n类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。\n类型系统\n编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。\n以下是一个简单的类型检查器示例:\nclass TypeCheckerVisitor : public ASTVisitor {\npublic:\n std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override {\n auto leftType = visit(node->left); // 检查左操作数的类型\n auto rightType = visit(node->right); // 检查右操作数的类型\n\n // 检查操作数的类型是否匹配\n if (!leftType->equals(rightType)) {\n throw std::runtime_error(\"Type mismatch in binary expression.\");\n }\n\n // 返回表达式的类型\n return leftType;\n }\n\n std::shared_ptr visitVariableDecl(VariableDeclNode *node) override {\n // 检查变量声明的类型是否正确\n auto varType = node->type;\n if (!isValidType(varType)) {\n throw std::runtime_error(\"Invalid type for variable.\");\n }\n\n return varType;\n }\n\n // 其他类型检查逻辑...\n};\n\n在该类型检查器中,我们遍历 AST 中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。\n类型转换\n\n由于 MiniDecaf 只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。\n\n类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。\nclass TypeCheckerVisitor : public ASTVisitor {\npublic:\n std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override {\n auto leftType = visit(node->left);\n auto rightType = visit(node->right);\n\n // 进行隐式类型转换\n if (leftType->isInteger() && rightType->isFloat()) {\n leftType = floatType(); // 将整数提升为浮点数\n } else if (leftType->isFloat() && rightType->isInteger()) {\n rightType = floatType();\n }\n\n if (!leftType->equals(rightType)) {\n throw std::runtime_error(\"Type mismatch in binary expression.\");\n }\n\n return leftType;\n }\n};\n\n通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。\n预期目标\n完成符号解析和类型检查后,编译器应该能够:\n\n通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用;\n检查所有的操作数和运算符的类型是否匹配;\n报告语义错误,如未定义的符号、类型不匹配等。\n\n通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。\n前端参考资料\n\nAntlr 官方文档\nMiniDecaf 教程\n编译原理经典书籍 Dragon Book\n\n前端预期目标\n完成这部分内容后,你的编译器应该能够通过 Antlr 生成词法分析器和语法分析器,能够将 MiniDecaf 程序解析为抽象语法树(AST),并完成对 MiniDecaf 程序的语义分析。\n"},"docs/contest/midend/midend.html":{"url":"docs/contest/midend/midend.html","title":"中端设计","keywords":"","body":"中端介绍\n中端的设计包括:中间表示的设计、中端代码生成和中端优化。\n中间表示\n前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(Intermediate Representation, IR)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的AST转换为中端代码。\n什么是中间表示?\n中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。\n由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下:\n\n缩小调试范围,通过把 AST 到汇编的步骤一分为二。如果目标代码有误,通过检查 IR 是否正确就可以知道:是AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。\n适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。\n\n便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。\n\n\n例如以下是一个IR代码的例子:\n_main:\n _T1 = 0\n _T2 = 100\n _T3 = 0\n_L0:\n _T4 = _T1 \n从这个IR例子中,我们可以看到,相对于c语言,IR中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在IR中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,IR中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。\n我们将在中间表示设计中介绍IR设计时候需要考虑的地方和并列举一些实例。\n中间代码生成\n前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。\n如以下是一个简单的例子:\nint main(){\n int a = 2;\n int b = 0;\n if(a)\n b = 1;\n else\n b = -1;\n return b;\n}\n\n生成的AST可能如下:\nProgram\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(2)\n |- (children[1]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"b\")\n |- (init) IntLiteral(0)\n |- (children[2]) If\n |- (cond) Identifier(\"a\")\n |- (children[0]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) IntLiteral(1)\n |- (children[1]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) UnaryOp(NEG)\n |- (expr) IntLiteral(1)\n |- (children[3]) Return\n |- (expr) Identifier(\"b\")\n你需要通过遍历AST的节点来将其转换为IR。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。\n例如上述代码转化为IR后可能如下:\n_main:\n _T0 = 2 # 代表a = 2\n _T1 = 0 # 代表b = 0\n bnez _T0, _L0, _L1 # 如果a != 0,跳转到_L0,否则跳转到_L1\n_L0:\n _T2 = 1 # 代表b = 1\n jump _L2 # 跳转到_L2,跳过else块\n_L1:\n _T2 = -1 # 代表b = -1\n jump _L2 # 跳转到_L2\n_L2:\n ret _T2\n\n我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。\n中端优化\n中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。\n一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的 IR 代码:\n_T1 = 5\n_T2 = _T1 + 6\n_T3 = _T2 + 7\n_T4 = _T3 + 8\n_T5 = _T4 + 9\nret _T5\n\n经过常量传播优化后,可以得到:\n_T1 = 5\n_T2 = 11\n_T3 = 18\n_T4 = 26\n_T5 = 35\nret _T5\n\n进一步如果我们进行死代码消除,可以得到:\n\n死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。\n\n_T5 = 35\nret _T5\n\n中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。\n我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如Use-Def链、Def-Use链、可达定义分析等。\n我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。\n中端参考资料\n本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。\n\nGCM & GVM \n\nEngineering A Compiler\n\nLLVM IR\n\nSSA book\n\n\n预期目标\n完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。\n"},"docs/contest/midend/ir.html":{"url":"docs/contest/midend/ir.html","title":"中间表示设计","keywords":"","body":"中间表示设计\n这里我们以一种经典 IR —— 三地址码为例,介绍中间表示的设计。\n三地址码\n三地址码(Three Address Code, TAC)是一种经典的 IR 设计,TAC 看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是 “虚拟寄存器” (也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。\nmain: # main 函数入口标签\n _T0 = 1 # 加载立即数\n _T1 = _T0 # 临时变量赋值操作\n _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1\n _T3 = NEG _T0 # 取负操作 _T3 = -_T0\n return _T2 # 函数返回\n\n以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。下面是另一个IR输出格式的例子:\ni32 main() {\n_B0:\n i32 _T0 = 1\n i32 _T1 = _T0\n i32 _T2 = _T0 + _T1\n i32 _T3 = -_T0\n return i32 _T2\n}\n\n你会发现,这种IR输出格式包含了一些类型信息,也更加易读。\nTAC 指令与汇编指令比较类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。\n我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句?\n\n算术语句:这是计算机最基础的语义。\n二元运算(如加、减、乘、除)\n形式:dst = op src1, src2\n示例:_T2 = ADD _T0, _T1\n\n\n一元运算(如取负、取位反)\n形式:dst = op src\n示例:_T3 = NEG _T0\n\n\n\n\n跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。\n条件跳转语句\n形式:branch cond, label1, label2\n示例:branch _T0, _L1, _L2\n\n\n无条件跳转语句\n形式:jump label\n示例:jump _L0\n\n\n\n\n函数调用语句\n形式:dst = call (func_name, arg1, arg2, ...)\n示例:_T2 = call (foo, _T0, _T1)\n\n\n赋值语句\n形式:dst = src\n示例:_T2 = _T0\n\n\n访存语句\n加载操作:dst = load addr, offset\n示例:_T2 = load _T0, 0\n存储操作:store src, addr, offset\n示例:store _T0, _T1, 0\n\n\n内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的 malloc 不同,主要用于在栈上分配内存)\n形式:dst = alloc size\n示例:_T2 = alloc 40\n\n\n返回语句\n形式:return src\n示例:return _T0\n\n\n\n有了这些语句以后,我们的IR就可以描述源程序的语义了。\n内存数据结构\n中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。\n我们可以为所有指令定义一个基类 Instruction,然后根据不同的指令类型定义不同的子类。\nstruct Instruction {\n Type type;\n};\n\n下面以二元运算指令为例,展示如何定义一个具体的指令类。\n二元运算需要两个操作数,并且会产生一个计算结果。\n而操作数可能是一个立即数,也可能是一个变量。例如以下的情况:\n_T2 = ADD _T0, _T1\n_T3 = ADD _T0, 2\n因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体:\nstruct Operand {\n union{\n int value;\n int reg_id;\n };\n bool is_reg;\n ... ...\n};\n\n我们使用一个 union 来存储操作数的值或者寄存器编号,使用一个 bool 来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要 is_reg 这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。\n有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中Opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器:\nenum Opcode {\n ADD, SUB, MUL, DIV\n};\n\nstruct Binary : public Instruction {\n Opcode opcode; // 操作码\n Operand src1; // 操作数一\n Operand src2; // 操作数二\n Operand dst; // 目标寄存器\n};\n\n一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。\n跳转语句应该怎么定义?这里我们需要引入基本块的概念。\n在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体:\nstruct BasicBlock {\n std::vector instructions;\n std::string label;\n};\n\n基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可:\nstruct Jump : public Instruction {\n BasicBlock *target; // 跳转目标\n};\n\n我们是以函数为单位来组织基本块的,函数定义为如下的结构体:\nstruct Function {\n std::string name;\n std::vector blocks;\n};\n\n整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体:\nstruct Program {\n std::vector functions;\n std::vector globals;\n};\n\n你会发现,我们的程序组织成了一个树状结构,即 Program 包含多个 Function,每个 Function 包含多个 BasicBlock,每个 BasicBlock 包含多条 Instruction。\n一些tips:\n\n你可以在Instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将 Binary 和 Unary 都继承自 Arithmetic,将 Jump 继承自 ControlFlow, Arithmetic 和 ControlFlow 都继承自 Instruction。\n你可以在Instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。\n你完全可以不按照我们给出的这些结构来设计你的 IR,这里有一些参考:\n北大编译实验Koopa IR\nLLVM IR\n\n\n\n静态单赋值(SSA)\n进一步地,你可以实现符合静态单赋值要求的 IR ,静态单赋值的 IR 在编译器中有着广泛的应用,比如 LLVM 的 IR 就是一种静态单赋值的 IR。在静态单赋值的 IR 中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。\n"},"docs/contest/midend/irgen.html":{"url":"docs/contest/midend/irgen.html","title":"中间代码生成","keywords":"","body":"中间代码生成\n介绍\n前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用 Alloca、Load、Store 指令来简单地实现 SSA 形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是SSA)。\n部分处理思路\n整体思路是通过遍历AST的节点,根据节点类型进行相应的处理。推荐先根据AST的遍历顺序写一个框架,再填充具体的处理逻辑。\n由于每个组的AST和IR设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。\n注意:\n\n本部分仅供参考,你需要根据自己设计的AST和IR进行调整。\n在遍历AST的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到IR的Data对象的映射表等。\n\nprogram\n对于program节点,先新建一个IR的Program对象,然后我们只需要再遍历子节点。\n\n如果子节点是function,就新建一个IR的Function对象,再访问该function节点,从而将该函数的前端信息存入Function对象中,最后将其加入到当前Program对象中的functions列表。\n如果子节点是declaration,说明这是一个全局变量,就新建一个Data对象,再访问该declaration节点,从而将该全局变量的前端信息存入Data对象中,最后将其加入到当前Program对象中的global_data列表。\n\nparameter_list\n对于parameter_list节点,可以把前几个寄存器编号分配给参数。\n\n如果是标量参数,要另外在栈上开空间。(这是为了满足 SSA 形式)\n如果是数组参数,则可以直接保存在寄存器中。\n\ndeclaration\n对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足 SSA 形式,哪怕是局部标量,也要用Alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。\n如果有初始化,\n\n对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增Store指令,表示将得到的寄存器的值存入该标量对应的地址。\n对于数组则需要遍历Integer节点,并分别使用Store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。\n\nlvalue\nlvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释)\n\n先通过前端变量到IR的Data对象的映射表,找到该节点所表示的前端变量对应的Data对象。\n如果这是个全局变量,则新增LoadAddr指令,表示加载全局变量的地址,获取对应地址的寄存器\n如果这是个局部变量,则直接通过Data对象获取对应地址的寄存器\n\n\n如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的GetElementPtr指令,表示通过数组基地址和下标获取元素的地址。\n目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。\n如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增Load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。\n什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。\n\n\n\n中场休息\n看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list, declaration, lvalue节点的例子,希望能帮到你。\nint a = 1;\nint foo(int x, int y[]) {\n return x + y[1];\n}\nint main() {\n int b[2][3] = {1, 2, 3, 4, 5, 6};\n return foo(a, b[1]);\n}\n\n生成的AST可能如下:\nProgram\n |- (children[0]) Declaration\n |- (spec) Specifier(TINT)\n |- VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(1)\n |- (children[1]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"foo\")\n |- (params) ParameterList\n |- (children[0]) Parameter\n |- (spec) Specifier(TINT)\n |- (decl) Declarator(Identifier(\"x\"))\n |- (children[1]) Parameter\n |- (spec) Specifier(TINT)\n |- (decl) Declarator(Identifier(\"y\"), ArrayType())\n |- (body) Block\n |- (children[0]) Return\n |- (expr) BinOp(ADD)\n |- (lhs) Identifier(\"x\")\n |- (rhs) ArrayRef\n |- (array) Identifier(\"y\")\n |- (index) IntLiteral(1)\n |- (children[2]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (params) ParameterList # Empty\n |- (body) Block\n |- (children[0]) Declaration\n |- (spec) Specifier(TINT)\n |- (decl) Declarator(Identifier(\"b\"), ArrayType(2, ArrayType(3, TINT)))\n |- (init) InitList\n |- (children[0]) InitList\n |- (children[0]) IntLiteral(1)\n |- (children[1]) IntLiteral(2)\n |- (children[2]) IntLiteral(3)\n |- (children[1]) InitList\n |- (children[0]) IntLiteral(4)\n |- (children[1]) IntLiteral(5)\n |- (children[2]) IntLiteral(6)\n |- (children[1]) Return\n |- (expr) Call\n |- (func) Identifier(\"foo\")\n |- (args) ArgumentList\n |- (children[0]) Identifier(\"a\")\n |- (children[1]) ArrayRef\n |- (array) Identifier(\"b\")\n |- (index) IntLiteral(1)\n上述代码转化为IR后可能如下:\ni32 foo(i32 _T0, i32* _T1) {\n_B0:\n alloca i32* _T2 = 4\n store *(i32* _T2 + 0) = i32 _T0\n load i32 _T3 = *(i32* _T2 + 0)\n i32 _T4 = 1\n i32* _T5 = elementptr: i32* _T1[i32 _T4]\n load i32 _T6 = *(i32* _T5 + 0)\n i32 _T7 = i32 _T3 + i32 _T6\n return i32 _T7\n}\ni32 main() {\n_B0:\n alloca i32[3]* _T0 = 24\n i32 _T1 = 1\n store *(i32[3]* _T0 + 0) = i32 _T1\n i32 _T2 = 2\n store *(i32[3]* _T0 + 4) = i32 _T2\n i32 _T3 = 3\n store *(i32[3]* _T0 + 8) = i32 _T3\n i32 _T4 = 4\n store *(i32[3]* _T0 + 12) = i32 _T4\n i32 _T5 = 5\n store *(i32[3]* _T0 + 16) = i32 _T5\n i32 _T6 = 6\n store *(i32[3]* _T0 + 20) = i32 _T6\n i32* _T7 = LoadAddr $a\n load i32 _T8 = *(i32* _T7 + 0)\n i32 _T9 = 1\n i32* _T10 = elementptr: i32[3]* _T0[i32 _T9]\n i32 _T11 = call foo(i32 _T8, i32* _T10)\n return i32 _T11\n}\n\n在本例中,\n\nfoo函数的参数表示为_T0, _T1。为了满足 SSA 形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_T2来进行。对于y[1],利用下标和getElementptr指令可以得到其地址,然后通过load指令可以得到其值。(getElementptr指令是为了写起来方便快捷;这里你也可以通过基地址_T1和下标1,构造出_T1 + 1 * 4的式子来计算出y[1]的地址)\nmain函数中对于数组b,先使用Alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在LoadAddr指令获取a的地址之后,还要用Load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。\n\nexpression\n访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理:\n\nunary '=' expression,表示赋值表达式。\n对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。\n对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。\n最后新增Store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。\n\n\nconditional,表示条件表达式。\n如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then 和 else 是两个表达式节点,对于if语句,这两个变量是两个语句节点。\n如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。\n\n\n具体示例可以参考短路求值。\n\nif\n\n先给当前函数新增一个基本块true_bb表示if语句的true分支入口。\n如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。\n给当前函数新增一个基本块next_bb表示if之后的基本块。\n分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。\n由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。\n\n\n将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从true_bb跳转到next_bb。\n如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个Jump指令,表示从false_bb跳转到next_bb。\n最后将当前基本块改为next_bb。\n例:\n int main(){\n int a = 2;\n int b = 0;\n if(a)\n b = 1;\n else\n b = -1;\n return b;\n }\n\n 生成的AST可能如下:\n Program\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(2)\n |- (children[1]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"b\")\n |- (init) IntLiteral(0)\n |- (children[2]) If\n |- (cond) Identifier(\"a\")\n |- (children[0]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) IntLiteral(1)\n |- (children[1]) Assign\n |- (lhs) Identifier(\"b\")\n |- (rhs) UnaryOp(NEG)\n |- (expr) IntLiteral(1)\n |- (children[3]) Return\n |- (expr) Identifier(\"b\")\n 上述代码转化为IR后可能如下:\n i32 main() {\n _B0:\n alloca i32* _T0 = 4\n i32 _T1 = 2\n store *(i32* _T0 + 0) = i32 _T1\n alloca i32* _T2 = 4\n i32 _T3 = 0\n store *(i32* _T2 + 0) = i32 _T3\n load i32 _T4 = *(i32* _T0 + 0)\n if i32 _T4 == 0 jump _B2 else jump _B1\n _B1:\n i32 _T5 = 1\n store *(i32* _T2 + 0) = i32 _T5\n jump _B3\n _B2:\n i32 _T6 = 1\n i32 _T7 = -i32 _T6\n store *(i32* _T2 + 0) = i32 _T7\n jump _B3\n _B3:\n load i32 _T8 = *(i32* _T2 + 0)\n return i32 _T8\n }\n\n 在本例中,生成了_B1, _B2, _B3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_B0的结尾是一个Branch指令,_B1, _B2结尾都是Jump指令,表示从true_bb、false_bb跳转到next_bb。\n\n\nwhile\n这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。\n\n给当前函数新增一个基本块body_bb表示while语句的循环体入口。\n给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。\n给当前函数新增一个基本块next_bb表示while之后的基本块。\n开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。\n由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。\n\n\n将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从body_bb跳转到body_cond_bb。\n将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。\n由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。\n\n\n最后将当前基本块改为next_bb。\n例: int main(){\n int a = 0;\n while(a \n 生成的AST可能如下: Program\n |- (children[0]) Function\n |- (ret_t) TInt\n |- (ident) Identifier(\"main\")\n |- (body) Block\n |- (children[0]) VarDecl\n |- (type) TInt\n |- (ident) Identifier(\"a\")\n |- (init) IntLiteral(0)\n |- (children[1]) While\n |- (cond) BinaryOp(LT)\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(10)\n |- (body) Block\n |- (children[0]) If\n |- (cond) BinaryOp(EQ)\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(5)\n |- (children[0]) Assign\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(10)\n |- (children[1]) Break\n |- (children[1]) Assign\n |- (lhs) Identifier(\"a\")\n |- (rhs) BinaryOp(ADD)\n |- (lhs) Identifier(\"a\")\n |- (rhs) IntLiteral(1)\n |- (children[2]) Return\n |- (expr) Identifier(\"a\")\n 上述代码转化为IR后可能如下: i32 main() {\n _B0:\n alloca i32* _T0 = 4\n i32 _T1 = 0\n store *(i32* _T0 + 0) = i32 _T1\n load i32 _T2 = *(i32* _T0 + 0)\n i32 _T3 = 10\n i32 _T4 = i32 _T2 \n 在本例中,_B0的最后是第一个while语句的条件部分,while语句还生成了_B1, _B2, _B3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_B4, _B5两个基本块。多出来的_B6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_B6?提示:如果break;语句后面加上a = 1;语句,IR会如何改变?)\n\n预期目标\n完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成满足 SSA 形式的 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。\n"},"docs/contest/midend/ssa.html":{"url":"docs/contest/midend/ssa.html","title":"静态单赋值","keywords":"","body":"静态单赋值\n\n静态单赋值这一小节参考并改编自北航的编译课程实验文档:\nhttps://buaa-se-compiling.github.io/miniSysY-tutorial/challenge/mem2reg/help.html\n在此表示感谢!\n\n静态单赋值(Static Single Assignment, SSA)是编译器中间表示(IR)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。\n例如,考虑使用 IR 编写程序计算 1 + 2 + 3 的值,一种可能的写法为:\n_T0 = 1\n_T1 = 2\n_T2 = 3\n_T3 = _T0 + _T1\n_T3 = _T3 + _T2\nret _T3\n\n很遗憾,上述程序并不符合 SSA 的要求,因为其中变量 _T3 被赋值了两次。正确的写法应该为:\n_T0 = 1\n_T1 = 2\n_T2 = 3\n_T3 = _T0 + _T1\n_T4 = _T3 + _T2\nret _T4\n\n我们为什么要这样做呢?\n因为 SSA 可以简化每个变量的属性,进而简化编译器的优化过程。\n例如,考虑下面这段伪代码:\ny = 1\ny = 2\nx = y\n\n很显然,其中变量 y 的第一次赋值是不必须的,因为变量 y 被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(Reaching Definition Analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。\n但如果将上述代码变为 SSA 形式:\ny1 = 1\ny2 = 2\nx1 = y2\n\n上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到 x1 的值来自于 y2 这一信息。\n正因如此,许多编译器优化算法都建立在 SSA 的基础之上,例如:死代码消除(dead code elimination)、常量传播(constant propagation)、值域传播(value range propagation)等。\n我们如何实现 SSA 呢?\n例如,考虑使用 IR 编写程序使用循环计算 5 的阶乘。\n按照 C 语言的思路,我们可能给出如下写法:\n_L0:\n _T0 = 0\n _T1 = 1\n _T2 = 2\n _T3 = _T0 + _T1 # int temp = 1\n _T4 = _T0 + _T2 # int i = 2\n _T5 = 5\n_L1:\n _T6 = _T4 \n我们注意到,变量 _T3 和 _T4 由于循环体的存在可能被赋值多次,因此上述写法并不符合 SSA 的要求。\n一种可能的方案是使用 Phi 指令。Phi 指令的语法是 = PHI [, ], [, ] ... 。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。\n由此,我们的程序可以改写为:\n_L0:\n _T0 = 2\n _T1 = 1\n_L1:\n _T2 = PHI [_T0, _L0], [_T6, _L2] # int i = 2\n _T3 = PHI [_T1, _L0], [_T7, _L2] # int temp = 1\n _T4 = 5\n _T5 = _T2 \n由此,上述程序中每一个变量只被赋值了一次,满足了 SSA 的要求。(注意,SSA 仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次)\n另一种可能的方案是使用 Alloca、Load 和 Store 的组合。SSA 要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用 Alloca 指令分配到内存中,之后每次访问变量都通过 Load 或 Store 指令显式地读写内存。使用上述方案编写的程序满足 SSA 的要求,且避免了繁琐地构造 Phi 指令,但频繁地访问内存将导致严重的性能问题。\n有没有更好的解决方案呢?\n有,我们可以将两种方案结合起来。\n在前端生成中间代码时,首先使用第二种方案利用 Alloca、Load、Store 指令快速地构建满足 SSA 要求的代码。\n随后,在上述代码的基础上, 将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入 Phi 指令。\n这一解决方案也被称为 mem2reg 技术。\nmem2reg 使得我们可以在生成中间代码时,使用 Alloc、Load 和 Store 的组合针对局部变量生成符合 SSA 要求的代码。\n举个例子,一种可能的中间代码表示为:\nmain:\n _T0 = alloc 4\n _T1 = alloc 4\n store _T0, 1\n load _T2, _T0\n _T4 = _T2 > 0\n beqz _T4, _L2\n store _T2, 1\n_L1:\n load _T5, _T2\n ret _T5\n_L2:\n _T6 = 0 - 1\n store _T2, _T6\n jump _L1\n\n在此基础上,进行 mem2reg 转化:\nmain:\n _T0 = 1 > 0\n beqz _T0, _L2\n_L1:\n _T2 = phi [1, main], [_T3, _L2]\n ret _T2\n_L2:\n _T3 = 0 - 1\n jump _L1\n\n需要注意的是,所有的 Phi 指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的 Phi 指令的顺序对结果没有影响)。\n在实现 mem2reg 时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。\n\n相关的解释和详细说明可以参考:\n如何构建 SSA 形式的 CFG:https://szp15.com/post/how-to-construct-ssa/\n\n随后,我们需要实现 SSA 构造算法。一种常用的算法是将整个过程分为:插入 phi 函数和变量重命名,两个阶段。\n在第一阶段,记录每个局部变量相关的 Alloc 和 Store 指令,并由此在基本块的开头插入 Phi 指令。\n在第二阶段,遍历所有基本块,对其中局部变量相关的 Alloc,Load 和 Store 指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的 Phi 指令。\n\n相关的解释和详细说明可以参考:\nStatic Single Assignment Book 的 Chapter3:https://pfalcon.github.io/ssabook/latest/\n\n"},"docs/contest/midend/cp.html":{"url":"docs/contest/midend/cp.html","title":"常量传播","keywords":"","body":"常量传播/常量折叠\n常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。\n常量传播通常依赖Use-Def和Def-Use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。\n例如,对于如下代码:\n_main:\n _T0 = 2 \n _T1 = 0 \n _T2 = _T0 + 3 \n _T3 = _T1 + 5 \n _T4 = _T2 * 2 \n _T5 = _T3 - _T1 \n _T6 = _T4 + _T5 \n ret _T6\n经过常量传播/常量折叠优化后,代码变为:\n_main:\n _T0 = 2 \n _T1 = 0 \n _T2 = 5 \n _T3 = 5 \n _T4 = 10 \n _T5 = 5 \n _T6 = 15\n ret _T6\n常量传播/常量折叠的实现\n常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下:\n\n遍历所有语句,找出常量定义,将其全部加入常量表。例如:\n_T0 = 2 \n_T1 = 0 \n_T2 = _T0 + 3\n_T0和_T1的值是常量,将_T0和_T1的值分别存入常量表。\n\n依据Def-Use关系,找出所有用到常量_T0和_T1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_T2的值为5,也是一个常量,将_T2的值加入常量表。\n\n重复上述过程,直到常量表不再增加为止。\n\n\n"},"docs/contest/midend/dce.html":{"url":"docs/contest/midend/dce.html","title":"死代码消除","keywords":"","body":"死代码消除\n死代码消除(Dead code elimination, DCE)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。\n死代码消除通常依赖于Use-Def和Def-Use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。\n这里介绍一种 DCE 的方法(来源于《高级编译器设计与实现》(鲸书)):\n\n首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。\n然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。\n当以上迭代函数稳定不变时,所有未标记的指令都可以认为是Dead Code,可以删除。\n\n具体实现上,可以借助du/ud链来实现:\n\n维护一个set,存储所有必要值的定义指令。\n找出函数所有的必要值,标记这些值的定义指令。\n对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。\n对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。\n重复上一步,直到set不再变化。\n函数中的指令,如果不在set中,就可以认为是Dead Code。\n\n此处举个例子:\n_main:\n _T0 = 1\n _T1 = 2\n _T2 = _T1 + 5\n _T3 = _T0 + 2\n _T4 = _T3 * 5 \n return _T4 # _T4 是必要值\n\n顺着ud链,可以找到 _T4 = _T3 * 5,因此 _T3 也是必要值。继续找到 _T3 = _T0 + 2,因此 _T0 也是必要值。最终 _T0、_T3、_T4 都是必要值,而 _T1、_T2 的定义指令都可以认为是Dead Code。\n因此可以优化为:\n_main:\n _T0 = 1\n _T3 = _T0 + 2\n _T4 = _T3 * 5 \n return _T4\n\n"},"docs/contest/backend.html":{"url":"docs/contest/backend.html","title":"后端设计","keywords":"","body":"后端设计\n编译器后端的主要功能是将中间表示(IR)转换为目标架构的汇编代码,在我们的课程实验中即将TAC翻译为RISC-V汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。\n代码生成\n目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将IR翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。\n指令选择\n对于一条IR指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些IR指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。\n这里举几个例子:\n\n逻辑与和逻辑或。可详见step4。\n函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。\nSSA IR中的Phi指令。通常Phi指令会被翻译为mv指令,但留意多条Phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。\n\n寄存器分配\nIR里通常会假设数量无限的虚拟寄存器(或称作变量),但目标ISA(Instruction Set Architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。\n课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度)\n常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。\n寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spill weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。\n栈帧确定和最终代码生成\n在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。\n在这里我们介绍一种可能的实现方式。我们暂不考虑VLA(variable-length array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为StackObject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如\n\nLoadFromStack t0, obj, offset: 将栈上对象obj偏移offset(立即数)处的内容加载到 t0\nStoreToStack t0, obj, offset:将t0中的内容写入到栈上对象obj偏移offset处\nLoadStackAddr t0, obj, offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0\n\n代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。\n最终我们将以上的这些“指令”展开。例如LoadFromStack可以保守地展开为以下RISC-V指令序列:\nli t0, (some immediate offset)\nadd t0, sp, t0\nld t0, 0(t0)\n\n但大多数时候ld t0, offset(sp)就足够了。需要注意的是StoreToStack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为LoadStackAddr和一条store指令。\n确定栈帧后生成函数的prologue和epilogue,其中主要包括callee-saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g. 必须是8的整数倍)。\n附:函数调用相关\n处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在Iterated Register Coalescing的论文中并没有提及函数调用约定的处理方式,在这里以RISC-V为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个C语言片段:\nint f(int x) {\n // lots of stuff...\n return x;\n}\n\n在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。\nint swap(int x, int y) {\n // ...\n swap(y, x);\n // ...\n}\n\n对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。\n可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。\n具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参)\n\n调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量T1到Tn,然后按照mv Ti, xi的方式将全部xi移入Ti中,接下来再生成mv aj, Ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。\n处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv xi, ai即可。\n\n以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下:\nswap:\n mv x, a0 # 1\n mv y, a1 # 2\n\n # first move phase\n mv _T0, x # 3\n mv _T1, y # 4\n\n # second move phase\n mv a0, _T1 # 5\n mv a1, _T0 # 6\n call swap\n\n在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码:\nswap:\n mv t0, a0\n mv a0, a1\n mv a1, t0\n call swap\n\n这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_T0与a1相干涉(指令4的Use集合、指令3的LiveOut集合包含a1,_T0在指令3的Def集合中),因此_T0不能被分配到a1;同时_T0也与a0相干涉(指令6的Use集合,指令5的LiveOut集合包含_T0,a0在指令5的Def集合中),最终_T0被分配到一个新的寄存器t0。而_T1可以安全地被分配到a1,故指令4被视作无用指令消除。\n在生成函数调用的代码时,除传参外,还需要考虑caller-saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在caller-saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有caller-saved寄存器加入到call指令的Def集合中,剩下的事情交给寄存器分配算法处理。考虑以下C语言片段:\nint getint();\nvoid putint(int);\n\nint main() {\n int x = getint();\n putint(x);\n return x;\n}\n\n在寄存器分配前可能对应如下代码:\nmain:\n # prologue\n\n call getint\n mv x, a0\n\n mv a0, x # ... omitted\n call putint\n\n mv a0, x\n # epilogue\n ret\n\n采用上述方式,x处于call putint的LiveOut集合中,会与全部的caller-saved寄存器相干涉,这样x就会自动被分配到callee-saved寄存器上。经过后续优化可能的最终汇编代码如下:\nmain:\n # prologue\n call getint\n mv s0, a0\n call putint\n mv a0, s0\n # epilogue\n ret\n\n目标架构相关优化\n这里简单地举几个例子。\n\n指令选择相关的窥孔优化\n 此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。\n 例如以下的RISC-V指令序列\n li t0, 0\n bne a0, t0, label1\n\n 可以被替换为bne a0, zero, label1,后续再通过无用指令消除去掉li t0, 0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(RISC-V的I型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。\n 再举一个ARM的例子。ARM的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列\n mov r1, r1, LSL #2\n add r0, r0, r1\n ldr r0, [r0]\n\n 可以被合并为一条指令:\n ldr r0, [r0, r1, LSL #2]\n\n 这种汇编代码模式在数组访问中较为常见。\n\n指令调度\n 指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造DAG,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。\n\n\n"},"REFERENCE.html":{"url":"REFERENCE.html","title":"参考资料","keywords":"","body":"参考资料\n\nWriting a C Compiler: by Nora Sandler\n\nAn Incremental Approach to Compiler Construction : by Abdulaziz Ghuloum\n\nMonkey: The programming language that lives in books\n\nC17 标准草案 N2176(N2176 是 C17 标准正式发布前的最后一版草案,根据 C17 标准的编者之一 Jens Gustedt 的博文,其与 C17 标准相比只有表述上的差异)\n\nRISC-V 手册\n\nRISC-V(非官方)汇编指令用法\n\n\n"}}} \ No newline at end of file diff --git a/search_plus_index.json b/search_plus_index.json index 4c1ef2bb..199f97b7 100644 --- a/search_plus_index.json +++ b/search_plus_index.json @@ -1 +1 @@ -{"./":{"url":"./","title":"实验简介","keywords":"","body":"MiniDecaf 编译实验 实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。 实验概述 MiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step。每个 step 大家都会完成一个可以运行的编译器,把不同的 MiniDecaf 程序代码编译成 RISC-V 汇编代码,可以在 QEMU/SPIKE 硬件模拟器上执行。随着实验内容一步步推进,MiniDecaf 语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用 MiniDecaf 语言实现的快速排序程序,与 C 语言相同。 int qsort(int a[], int l, int r) { int i = l; int j = r; int p = a[(l+r)/2]; while (i p) j = j - 1; if (i > j) break; int u = a[i]; a[i] = a[j]; a[j] = u; i = i + 1; j = j - 1; } if (i l) qsort(a, l, j); return 0; } 2024 年秋季学期基本沿用了 2023 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。 从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。 实验起点和基本要求 本次实验一共设置 13 个步骤(其中 step 0 和 step 1 为实验框架熟悉,不需要修改框架代码)。后续的 step 2-13 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。 我们以 stage 组织实验,各个 stage 组织如下: 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。 变量和赋值(step5)。在这个 stage 中你将第一次支持变量声明与赋值。 作用域和块语句(step6)。在这个 stage 中你的编译器将支持作用域,以便支持后续的条件和循环。 条件和循环(step7-step8)。在这个 stage 中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。 函数(step9)。在这个 stage 中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。 全局变量和数组(step10-step12)。在这个 stage 中,你将支持全局变量和数组,数组中包括全局数组和局部数组。 寄存器分配算法(step13)。在这个 stage 中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。 其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。 stage1 - stage5 为 5 个基础关卡,你需要通过它们以拿到一定的分数(35%)。 stage6 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评 7% 的成绩并替代期末考试对应权重)。 stage7 为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评 8% 的成绩并替代期末考试对应权重)。注意,你需要在完成 stage6 后才能尝试 stage7,否则无法获得对应分数。 我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。 我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。 诚信守则 请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。 实验提交 大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf-你的学号 ,将作业提交到那个仓库即可。 每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git checkout -b 来创建一个新的分支。 本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。 .gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件; prepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。 在 CI 中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过 CI。 我们只接受 pdf 格式的实验报告。你需要将报告放在仓库的 ./reports/.pdf 路径,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。 实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 评分标准 对于每个阶段(stage): 80% 的成绩是自动化测试的结果,你可以直接在 git.tsinghua 的 CI 测试中看到。 20% 的成绩是实验报告,其中对实验内容的描述占 10%,对思考题的回答占 10%。 评分会以每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。 如果你认为成绩有问题,请及时与助教联系。 时间安排及补交政策请看实验进度安排。 学术规范 由于实验有一定难度,同学之间相互学习和指导是提倡的。 对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。 如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。 我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。 代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。 相关资源 实验指导书(首页有实验报告提交要求) 实验指导书勘误表 课程问答墙 实验思路指导与问答墙 参考资料 Writing a C Compiler: by Nora Sandler nqcc http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf 备注 1. 关于名字由来,由于往年的实验叫 Decaf,我们在新的且更简单的语言规范下复用了 Decaf 的编译器框架,所以今年的实验就叫 MiniDecaf 了。 ↩ "},"docs/misc/schedule.html":{"url":"docs/misc/schedule.html","title":"实验进度安排","keywords":"","body":"实验进度安排 所有截止时间均为所标日期的23:59:59(UTC+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。 必做部分: 第三周周日(9.29):Stage 0 截止 熟悉框架和基础知识 (占比:0%) stage 0 不需要你编写任何代码,stage 0的思考题请与stage 1一起提交。 第四周周日(10.6):Stage 1 截止 常量表达式(占比:7%) 第六周周日(10.20):Stage 2 截止 变量(占比:7%) 第八周周日(11.3):Stage 3 截止 作用域(占比:7%) 第十周周日(11.17):Stage 4 截止 控制语句(占比:7%) 第十四周周日(12.15):Stage 5 截止 函数(占比:7%) 函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。 选做部分: 选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。 第十五周周日(12.22):Stage 6 截止 全局变量和数组(占比:7%) 第十六周周日(12.29):Stage 7 截止 寄存器分配与代码优化(占比:8%) 补交政策 假设 a 日 24:00 是某个 stage 的截止时间; a + k (k 提交/补交时间是该 stage 截止 10 天内这个 stage 的 branch 最后一次触发 CI 的时间; 更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。 如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。 选做实验不接受补交。 "},"docs/step0/errate.html":{"url":"docs/step0/errate.html","title":"勘误表","keywords":"","body":"勘误表 在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。   Q:使用 pip install -r ./requirements.txt 命令无法正确安装依赖? A:如果你安装了多版本的 python,使用 pip 命令未必会对应 3.9 版本的包管理器。请尝试使用 python3.9 -m pip install -r ./requirements.txt 安装依赖。   Q: 代码框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。 经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错: utils.error.IllegalArgumentException: error: encounter a non-returned basic block 请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢? A:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。   Q:我怎样才能知道我的提交通过了所有测试用例? A:可以通过本地测试或者通过 CI 结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。   Q:如何提交课程报告? A: 请将实验报告以 pdf 格式提交到 git.tsinghua 自己的仓库中,放在仓库根目录下的 reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 reports/stage-1.pdf。 最新的 CI 会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作 pass。 如果关于报告提交有任何问题,请及时联系助教。 "},"docs/ref/riscv.html":{"url":"docs/ref/riscv.html","title":"RISC-V 参考资料","keywords":"","body":"RISC-V相关内容补充 RISC-V官方资料 不建议阅读,太过冗长,这对于编译知识提升非常有限。 RISC-V 官方 请下载ISA Specifications (Ratified)中的Volume 1, Unprivileged Specification。 如果你时间充足,你可以阅读: Chapter 24 RV32/64G Instruction Set Listings Chapter 25 RISC-V Assembly Programmer’s Handbook 如何快速查询RISC-V指令 在线编译器 你可以使用Compiler Explorer (godbolt.org)来快速获得一个riscv指令的实现 在左边输入以下例子 int mod(int x, int y) { // 注意:此处不要直接写一个可以计算得到结果的式子 // 比如5 % 8会被编译器优化为5 return x % y; } 把右边的编译器选为RISC-V(32-bits)中的任何一个,在编译选项中写上-O2(减少不必要的指令生成),翻译一条指令看看效果。 本地编译器 你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 或者 -O2 选项): int foo(int x) { return !x; } 不出意外你会获得如下结果: foo: seqz a0,a0 ret "},"docs/step0/intro.html":{"url":"docs/step0/intro.html","title":"实验环境简介","keywords":"","body":"实验环境简介 2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。 服务器环境如下: Ubuntu 23.04 python 3.11.4 注意: 禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。 为了安全起见,服务器仅可通过校内网络访问。 服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。 提示: 如何使用 ssh 登陆服务器? ssh username@ip -p port # 假如你的账号为 2024000001,服务器 ip 地址为 192.168.1.1,端口为 223,则命令为: ssh 2024000001@192.168.1.1 -p 223 建议配置 ssh 免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。 vscode 也是可以使用ssh远程写代码的,参考这里。 如果你使用我们提供的服务器,你可以直接来看RISC-V 的工具链使用和运行实验框架。 "},"docs/step0/riscv_env.html":{"url":"docs/step0/riscv_env.html","title":"RISC-V 环境配置","keywords":"","body":"RISC-V 环境配置 必做:RISC-V 的 gcc 和 qemu 我们的编译器只生成 RISC-V 汇编,然后再使用 gcc 把 RISC-V 汇编变成 RISC-V 可执行文件,最后用 qemu/spike 等模拟器来运行 RISC-V 可执行文件。 注意这里的 gcc 和常说的 gcc 不一样。 常说的 gcc 运行在我们的 x86 机器上、把 C 编译到 x86 可执行文件; 而这里的 gcc 虽然也运行在我们的 x86 机器上,却要编译到 RISC-V 可执行文件。 这种“gcc 跑在 x86 却编译出 RISC-V 代码”的操作被称为交叉编译(cross compilation)。 因此我们不能直接使用有些系统自带的 gcc,这种 gcc 生成的可执行程序只能在你本机(x86)上运行。 我们需要下载安装 riscv64-unknown-elf-gcc,用来生成 RISC-V 可执行程序。 建议各位同学使用我们提供的 RISC-V 工具链,由 SiFive 预编译的较新版本的工具链对 32 位的支持存在问题。 我们提供了预编译的 riscv64-unknown-elf-gcc 和 qemu/spike 模拟器,不过只能在 Linux/Mac 下运行(qemu 对应 Linux,spike 对应 Mac),Windows 的同学可以使用 WSL,或者运行一个虚拟机。 命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。 下面是环境配置指南,请阅读自己的系统的那一小节。 你的编译器 gcc qemu/spike MiniDecaf 源文件 ------------> RISC-V 汇编 -----> 可执行文件 --------> 输出 Windows 用户环境配置指南 下面描述了 WSL 的一种参考方法。 你还可以开一个 Linux 虚拟机,使用 Virtualbox 或 VMWare 等,然后参考下面 Linux 配置。 Win10 设置 参考 https://blog.csdn.net/daybreak222/article/details/87968078 ,设置“开发者模式”以及“启用子系统功能”。 打开Microsoft Store,搜索Ubuntu,选择ubuntu20.04. 按照下面的 Linux 用户环境配置指南安装 riscv 工具链。 Ubuntu 用户环境配置指南 建议使用 Ubuntu 20.04 及更高的版本,你可以直接使用 apt 来安装用户态的 qemu,即 apt install qemu-user。 如果使用的是低版本的 WSL,通过 Windows 应用商店可以很容易地安装 Ubuntu 20.04 LTS; 如果在机器上直接安装了较低版本的 Ubuntu, 可以参考这个教程进行升级,升级时注意备份。 如果出于某些原因必须使用低版本的 Ubuntu,你需要自己编译出可用的用户态 QEMU。 git clone https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git cd qemu && ./configure --prefix=/usr/local --target-list=riscv32-linux-user make make install qemu-riscv32 --version # 检查是否安装成功 从这里下载预编译好的 RISC-V 工具链并解压。 安装工具链 cp riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/* /usr/ -r 在第 2. 步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量: 首先把文件夹riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/改名为 riscv-prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc 文件, 把export PATH=$PATH:/path/to/riscv-prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to 需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令source ~/.bashrc使修改生效。 (如果你不用系统自带的 bash 而是用 zsh 之类的 shell,那加到 ~/.zshrc 等 shell 配置文件里) macOS 用户环境配置指南 从这里下载预编译好的 RISC-V 工具链并解压到你喜欢的目录。 由于 macOS 不支持 QEMU 的用户态模式,我们使用 Spike 模拟器和一个简易内核 riscv-pk 提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种: 从这里下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,不过还需要通过 Homebrew 安装依赖 device tree compiler: $ brew install dtc 通过 Homebrew 安装 Spike(会自动安装 dtc): $ brew tap riscv/riscv $ brew install riscv-isa-sim 然后从这里上下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,只用里面的 pk。 Homebrew 也提供了 riscv-pk,不过那是 64 位的,而我们需要 32 位的,请使用我们预编译的 riscv-pk 或自行编译。 请注意我们提供的预编译 pk 是 x86 版本,如果你是其他平台(如M1 Mac),可以尝试自行根据 pk 的源码进行编译,附 Github 仓库链接。 (可选)设置环境变量,方法与 Linux 一样,见上一节。如果不设置每次使用 gcc 和 spike 时都要输入完整路径。不过对于 pk 设置环境变量不管用,要么把它放到系统目录 /usr/local/bin/pk,要么每次都用完整路径。 测试你 GCC 和 Spike 是否成功安装,详见RISC-V 的工具链使用。 必做:测试你是否正确配置好了环境 创建 test.c 文件,其中写入如下内容 #include int main() { printf(\"Hello world!\\n\"); } 编译 test.c 文件,gcc 应该输出一个可执行文件 a.out。但 a.out 是 RISC-V 可执行文件,所以我们的 X86 计算机无法运行。 $ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 test.c $ ls a.out a.out $ ./a.out # 如果没有安装qemu模拟器,则会出现如下错误:\"bash: ./a.out: cannot execute binary file: Exec format error\" 后面RISC-V 的工具链使用总结了 gcc 和 qemu 在编译实验中可能需要的用法。 使用 qemu 执行 a.out,具体操作如下 Linux用户 $ qemu-riscv32 a.out Hello world! 注意:安装了qemu之后,直接运行 ./a.out 往往也可以调用qemu环境正确执行,并得到\"Hello world!\"输出。 Mac OS用户,假设你已经将spike加入环境变量,将pk加入系统目录 $ spike --isa=RV32G pk a.out bbl loader Hello world! 备注 1. 开头的 $ 表示接下来是一条命令,记得运行的时候去掉 $。例如,让你运行 $ echo x,那你最终敲到终端里的是 echo x(然后回车)。如果开头没有 $,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。 ↩ "},"docs/step0/riscv.html":{"url":"docs/step0/riscv.html","title":"RISC-V 的工具链使用","keywords":"","body":"RISC-V 相关信息 RISC-V 是一个很像 MIPS 的 RISC 指令集架构,编译实验要求你的编译器把 MiniDecaf 程序编译到 RISC-V 汇编。 指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\"。 另外这里也有(非官方的)指令用法说明。 不过事实上,很多时候看 gcc 输出的汇编比看什么文档都有用。 RISC-V 工具使用 我们提供预先编译好的 RISC-V 工具,在环境配置中已经叙述了安装和使用方法。 下面汇总一下。 注意,我们虽然是用的工具前缀是 riscv64, 但我们加上参数 -march=rv32im -mabi=ilp32 以后就能编译到 32 位汇编 1。 使用时记得加这个参数,否则默认编译到 64 位汇编。 我们假设你已经正确设置好了环境变量,否则运行 riscv64-unknown-elf-gcc 或 qemu-riscv32 或 spike 时请用完整路径。 gcc 编译 input.c 到汇编 input.s,最高优化等级(否则输出的汇编会很冗长) # input.c 的内容 $ cat input.c int main(){return 233;} # 编译到 input.s $ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 -S input.c # gcc 的编译结果 $ cat input.s .file \"input.c\" .option nopic .attribute arch, \"rv32i2p0_m2p0\" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .text.startup,\"ax\",@progbits .align 2 .globl main .type main, @function main: li a0,233 ret .size main, .-main .ident \"GCC: (SiFive GCC 8.3.0-2020.04.0) 8.3.0\" gcc 编译 input.s 到可执行文件 a.out # input.s 的内容,就是上面汇编输出的简化版本 $ cat input.s .text .globl main main: li a0,233 ret # 编译到 a.out $ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 input.s # 输出结果,能看到是 32 位的 RISC-V 可执行文件 $ file a.out a.out: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, not stripped 【Linux 用户】qemu 运行 a.out,获取返回码 # 运行 a.out $ qemu-riscv32 a.out # $? 是 qemu 的返回码,也就是我们 main 所 return 的那个值 $ echo $? 233 【macOS 用户】Spike 模拟器运行 a.out,获取返回码 # 运行 a.out # /usr/local/bin/pk 替换为你自己的 pk 路径 $ spike --isa=RV32G /usr/local/bin/pk a.out bbl loader # $? 是 spike 的返回码,也就是我们 main 所 return 的那个值 $ echo $? 233 1. 这里的 rv32im 表示使用 RV32I 基本指令集,并包含 M 扩展(乘除法)。本实验中我们不需要其他扩展。 ↩ "},"docs/step0/env.html":{"url":"docs/step0/env.html","title":"实验框架环境配置","keywords":"","body":"实验框架环境配置 Python 实验框架环境配置 关于操作系统,助教推荐使用 Linux 环境(如 Ubuntu,Debain 或 Windows 下的 WSL 等),当然你也可以在类 Unix 系统环境(Mac OS)中进行开发。助教不推荐直接在 Window 中搭建开发环境。你需要安装或保证如下软件满足我们的要求: python >= 3.9 助教强烈建议使用类似 Miniconda 或venv的系统管理不同的Python环境。你可以方便地使用miniconda安装最新的Python版本,安装好之后使用pip安装依赖即可。 框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性,请保证你所使用的 python 版本高于此版本。 如果你没有使用虚拟环境,可以参考下面的指导。Linux 环境下安装 Python 3 可以尝试如下命令: > sudo add-apt-repository ppa:deadsnakes/ppa > sudo apt update > sudo apt install python3 此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的 Python3 版本: > python3 --version 框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse: $ python3 -m pip install -r ./requirements.txt argparse 框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。 ply ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考 ply 的文档。 助教在项目中使用 type hints,如果你习惯在 vscode 中进行开发的话同时推荐使用 pylance 这一插件。 由于 python 的跨平台性,理论上也可以在 Windows 下进行开发。但不保证Windows和在线测试环境下程序行为的一致性。 "},"docs/step0/testing.html":{"url":"docs/step0/testing.html","title":"运行实验框架","keywords":"","body":"运行实验框架 配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。 接下来我们会用到 git。 git 的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里 。 按照本文档的前几节(RISCV 环境配置和实验框架环境配置)配置好实验环境。 助教已经为每位同学在 git.tsinghua.edu.cn 创建了一个仓库,其中 minidecaf 的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块 git clone --recursive 。 由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用 git submodule update --remote --merge 来手动更新。 注意:由于子模块使用 ssh 链接,你需要将你的 ssh 公钥添加到你的 git.tsinghua 账号上,才能将其克隆下来。 按照测例的 README 运行测试 step1,实验框架给出的初始代码可以通过 step1 的所有测例。 测试运行的 输出结果 大致如下。 $ STEP_UNTIL=1 ./check.sh gcc found qemu found parallel found OK testcases/step1/multi_digit.c OK testcases/step1/newlines.c ...... 其他测试点,太长省略 "},"docs/step1/arch.html":{"url":"docs/step1/arch.html","title":"MiniDecaf 编译器结构","keywords":"","body":"MiniDecaf 编译器结构 MiniDecaf 编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入 MiniDecaf 源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(Abstract Syntax Tree, AST),接下来通过扫描 AST 进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描 AST 生成中间代码 —— 三地址码;在编译器后端中,将三地址码转换为 RISC-V 汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。 我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的 step 作详细介绍。 词法分析和语法分析 此部分对应框架源码位置: 词法分析程序位于 frontend/lexer/;语法分析程序位于 frontend/parser/;语法树位于 frontend/ast/。 编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描 MiniDecaf 源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的 MiniDecaf 程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(Abstract Syntax Tree, AST)。比如,对于下面这一段简单的MiniDecaf 代码: if (i) i = 1; 它对应的完整语法分析树可能长这样: if_stmt |- \"if\" |- \"(\" |- Identifier(\"i\") |- \")\" |- assign_stmt |- Identifier(\"i\") |- \"=\" |- Int(1) |- \";\" 其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样: if_stmt |- (condition) Identifier(\"i\") |- (body) assign_stmt |- (lh) Identifier(\"i\") |- (rh) Int(1) AST省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。 词法分析和语法分析的最终结果是一棵跟所输入的 MiniDecaf 源程序相对应的语法树。本阶段的实验重点是掌握 LEX 和 YACC 的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、LALR(1) 分析等理论知识在实践中的应用。 语义分析 此部分对应框架源码位置: 符号表构建位于 frontend/typecheck/namer.py;类型检查位于 frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于 frontend/scope/。 语法分析树的建立可以说明所输入的 MiniDecaf 源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。 可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。 具体来说,在这一阶段中,我们需要对 AST 进行两遍扫描,分别完成以下的检查: 符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。 类型检查:各语句和表达式是否类型正确。 如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。 符号表构建 针对 MiniDecaf 程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1) 在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2) 符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。 step1-4 中只需要考虑常量的计算,直到 step5 才需要考虑符号表构建。 类型检查 完成符号表构建后,我们就可以自顶向下地遍历 AST,对每个语句和表达式逐一进行类型检查,并在 AST 上进行类型标注。对于静态类型(statically-typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typing rules)。 在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。 事实上,由于 MiniDecaf 代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑 int 和 int 数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。 中间代码生成 三地址码定义位于 utils/tac/;中间代码生成位于 frontend/tacgen/tacgen.py。 在对 AST 进行语义分析后,我们将在这一阶段把带有类型标注的 AST 翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。 由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下: 通过把 AST 到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查 IR 是否正确就可以知道:是 AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。 通过 IR 可以适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。 接下来,将对我们所使用的中间代码 —— 三地址码 (TAC) 做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的 TAC 并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。 三地址码 三地址码(Three Address Code, TAC)看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。 main: # main 函数入口标签 _T0 = 1 # 加载立即数 _T1 = _T0 # 临时变量赋值操作 _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1 _T3 = NEG _T0 # 取负操作 _T3 = -_T0 return _T2 # 函数返回 以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。 TAC 程序由标签和指令构成: 标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的 main 函数入口),以及作为分支语句的跳转目标(TAC 指令不支持 MiniDecaf 语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。 TAC 指令与汇编指令类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。 操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于 step10 才需要考虑,届时再介绍其处理方法)。如上例所示,TAC 中的临时变量均用 \"_Tk\" 的形式表示(k表示变量的编号)。 TAC 程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,MiniDecaf 只支持 int 类型和 int 数组类型,其值和地址都可以用一个32位整数存储,故 MiniDecaf 程序中的变/常量和 TAC 中的变/常量可以直接对应。 数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在 step11 详细讨论。 控制流、数据流分析和寄存器分配 数据流图定义及优化在 backend/dataflow/ 中;寄存器分配在 backend/reg/ 中 控制流和数据流分析 一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。 所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。 关于数据流分析的细节,我们将在 step7 做详细介绍。 寄存器分配 所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在 step5 中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。 目标平台汇编代码生成 目标平台汇编代码生成在 backend/asm.py | subroutineinfo.py 以及 backend/riscv/ 中。 通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用 addi 汇编指令来翻译 ADD 中间代码指令。需要特别提出的是,RISC-V 指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。 课程实验的目标平台为 RISC-V,RISC-V 是一个与 MIPS 类似的 RISC 指令集架构,编译实验要求所实现的编译器把 MiniDecaf 程序编译到 RISC-V 汇编代码。指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\",另外这里也有(非官方的)指令用法说明。下图给出了 RISC-V 的32个整数寄存器的相关说明,其中需要特别注意的寄存器有 ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了 RISC-V 的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是 caller-saved 还是 callee-saved。 "},"docs/step1/provided.html":{"url":"docs/step1/provided.html","title":"已提供的语法特性","keywords":"","body":"已经提供的语法特性 为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的 while 循环实现,同学们可以参考着完成 for 循环的实现。 下面我们列出了所有框架中已经完成的特性: step1 中我们提供了所有实现。 step2 中我们提供了取负运算的实现。 step3 中我们提供了加法和逻辑或操作运算的实现。 step5 中我们提供了基础数据结构——符号表的实现。 step6 中我们提供了基础数据结构——单层作用域的实现。 step7 中我们提供了 if 语句的实现。 step8 中我们提供了 while 循环的实现。 此外,我们提供了 step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。 "},"docs/step1/intro.html":{"url":"docs/step1/intro.html","title":"实验要求","keywords":"","body":"实验指导 step1:一个仅有 return 的 main 函数 实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在 stage 1 的报告中(注意不是 stage 0)完成通过例子学习一节末尾的思考题。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 1 准备报告。 "},"docs/step1/example.html":{"url":"docs/step1/example.html","title":"通过例子学习","keywords":"","body":"通过例子学习,一个仅有 return 的主函数编译全流程: 本步骤主要涉及的语法为主函数和 return 语句,完成本步骤之后,你的编译器将支持将一个仅有 return 的主函数编译为 32 位 RISC-V 汇编代码,并通过 RISC-V 工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触 MiniDecaf 编译实验框架,我们给大家的代码框架中已经包含所有 step1 的实现,大家可以直接运行通过 step1 的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。 下面我们将通过一个简单的 step1 测试用例,一起走过它的编译全流程: int main() { return 2024; } 词法分析 & 语法分析 在词法分析 & 语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的 AST,我们使用了 lex/yacc 库来实现这一点。yacc 是一个根据 EBNF 形式的语法规范生成相应 LALR parser 的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对 lex/yacc 的使用,结合我们的文档,来快速上手 lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行 lex/yacc 的入门,但这不是必须的。 在实验框架中,我们使用的是 lex/yacc 的一个纯 python 实现,称为 python-lex-yacc(简称 ply),其使用方法与 lex/yacc 有一些差异。 Python-lex-yacc 快速入门 程序的入口点在 main.py,它通过调用 frontend.parser.parser(位于 frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于 frontend/lexer/ply_lexer.py 的词法分析器进行词法分析。语法的定义和语法分析器都位于 frontend/parser/ply_parser.py,而词法的定义位于 frontend/lexer/lex.py。AST 节点的定义位于 frontend/ast/tree.py 中。以下表示中的符号都出自于这几个文件。 这部分的工作流程如下: 读内容 词法分析 & 语法分析 语义分析 readCode parser.parse Namer.transform & Typer.transform MiniDecaf 源文件 --------> 字节流 -----------> AST -------------------------------> ... 当程序读入程序的字符流之后,它首先会被 lexer 处理,并被转化为如下形式的一个 Token 流: Int Identifier(\"main\") LParen RParen LBrace Return Integer(2024) Semi RBrace 在frontend/lexer/lex.py文件中你可以看到每个 Token 是如何定义的,每个token都会以t_开头。如t_Semi = \";\"代表分号被解析以后会转化为 Semi 这个Token。而对于一些复杂的 Token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0-9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码: def t_Integer(t): r\"[0-9]+\" # can be accessed from `t_Interger.__doc__` t.value = int(t.value) return t 之后,这些 token 会被 yacc 生成的 LALR(1) parser 转化为如下形式的 AST: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) IntLiteral(2024) 得到的 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。 在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有parser = yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。 def p_program(p): \"\"\" program : function \"\"\" p[0] = Program(p[1]) def p_function_def(p): \"\"\" function : type Identifier LParen RParen LBrace block RBrace \"\"\" p[0] = Function(p[1], p[2], p[6]) 我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program -> function,同时代码中的p[0] = Program(p[1])代表了构建AST的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0] = Program(p[1])最后就会变为p[0] = Program(Function(...)),这里Program、Function类的定义在frontend/ast/tree.py文件中,你可以看到Function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。 尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c) 语义分析 在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误: main 函数是否存在。(frontend/typecheck/namer.py:37) 在实际操作中,我们遍历 AST 所用的方法就是的 Visitor 模式,通过 Visitor 模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于 Visitor 的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如 gcc 根据优化等级不同会有数百个不等的 pass。下面,我们将指出,step1 中我们是如何实现符号表构建 pass 和类型检查 pass 的,同学们可以选择去看相应的代码注释与实现细节。 frontend/typecheck/namer.py 和 typer.py 分别对应了符号表构建和类型检查这两次遍历。在框架中,Namer 和 Typer 都是继承 frontend/ast/visitor.py 中的 Visitor 类来通过 Visitor 模式遍历 AST 。 中间代码生成 在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的 Visitor 模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在 step1 当中,我们只需要提取 return 语句返回的常量,为之分配一个临时变量,再生成相应的 TAC 返回指令即可。不难看出,本例对应的三地址码为: main: # main 函数入口标签 _T0 = 2024 # 为立即数 2024 分配一个临时变量 return _T0 # 返回 下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。 utils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。 frontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。这个文件里除了类型TACGen之外还有一个辅助类TACFuncEmitter,它用于处理产生TAC代码过程中一些相对底层的细节。在本框架中,TAC 程序的生成以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 TACFuncEmitter 来生成对应的 TAC 函数代码。如果你增加了 TAC 指令,则可能需要在 TACFuncEmitter 类中增加生成相应指令的代码。 目标代码生成 目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有: 如何将一个立即数装载到指定寄存器中? RISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2024,就是将立即数 2024 加载到寄存器 t0 中。 如何设置返回值? 在 RISC-V 中,a0 和 a1 是 gcc 调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在 a0 和 a1 中。也就是说,如果你有一个 32 位的返回值,你可以放在 a0 中返回,如果你有两个 32 位的返回值,你就需要把它们分别放在 a0 和 a1 中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。 在我们的实验要求中,返回值均是单个 32 位的值。因此在当前步骤中你只需要了解,将需要返回的值放入 a0 寄存器中,然后在后面加上一条 ret 指令即可完成函数返回的工作。 综上所述,我们上述中间代码翻译成如下 RISC-V 汇编代码: .text # 代码段 .global main # 声明全局符号 main main: # 主函数入口符号 li t0, 2024 # 加载立即数 2024 到 t0 寄存器中 mv a0, t0 # 将返回值放到 a0 寄存器中 ret # 返回 实验框架中关于目标代码生成的文件主要集中 backend 文件夹下,step1 中你只需要关注 backend/riscv 文件夹中的 riscvasmemitter.py 以及 utils/riscv.py 即可。具体来说 backend/asm.py 中会先调用 riscvasmemitter.py 中的 selectInstr 方法对每个函数内的 TAC 指令选择相应的 RISC-V 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitFunc 方法生成每个函数的 RISC-V 汇编。 思考题 在我们的框架中,从 AST 向 TAC 的转换经过了 namer.transform, typer.transform 两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么? int main(){ return 10; } 我们的框架现在对于 return 语句没有返回值的情况是在哪一步处理的?报的是什么错? 为什么框架定义了 frontend/ast/tree.py:Unary、utils/tac/tacop.py:TacUnaryOp、utils/riscv.py:RvUnaryOp 三种不同的一元运算符类型? "},"docs/step1/visitor.html":{"url":"docs/step1/visitor.html","title":"Visitor 模式速成","keywords":"","body":"Visitor 模式速成 编译器的构造中会使用到很多设计模式,Visitor 模式就是常见的一种。 基础的设计模式都在 OOP 课程中覆盖,这里重提一下 Visitor 模式,并以框架中的代码为示例进行介绍。 我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。Visitor 模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个 DFS 遍历。 让我们考虑 step1 的文法: program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : Integer 以这个文法对应的一段 MiniDecaf 代码为示例: int main() { return 2; } 它会对应如下的 AST 结构: program function type(int) identifier(main) param_list return int(2) 我们用缩进表示树结构,其中 program, function, type, identifier, param_list, block, return, int 等均为 AST 上的结点类型。 在框架中,我们有以下的 AST 结点类实现(进行了适当的简略): ''' frontend/ast/node.py ''' class Node: # 所有 AST 结点的基类 # ... ''' frontend/ast/tree.py ''' class Program(ListNode[Union[\"Function\", \"Declaration\"]]): # 程序,AST 的根结点类型 # ... class Function(Node): # 函数 # ... class Statement(Node): # 语句基类 # ... class Return(Statement): # return 语句 # ... class TypeLiteral(Node): # 类型基类 # ... class TInt(TypeLiteral): # 整型 # ... 假设在经过了词法分析和语法分析后,我们已经成功将 MiniDecaf 代码转化为了 AST 结构。现在,我们想要编写代码对 AST 进行扫描。很容易写出递归的 DFS 遍历: def dfs(node: Node): if isinstance(node, Program): for func in node.functions: dfs(func) elif isinstance(node, Function): # do something for scanning a function node elif isinstance(node, Return): # ... dfs 函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,dfs 函数根据被遍历的结点类型不同,执行不同的遍历逻辑。 那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的 Visitor。此外,为了便于实现,我们不使用 isinstance 来判断结点类型,而是调用结点自身的一个 accept 函数,并把不同的 visitXXX 函数抽象到一个接口里,各种具体的 Visitor 来实现这个接口。 ''' frontend/ast/node.py ''' class Node: # 所有 AST 结点的基类 def accept(self, v: Visitor[T, U], ctx: T) -> Optional[U]: raise NotImplementedError ''' frontend/ast/tree.py ''' class Program(ListNode[Union[\"Function\", \"Declaration\"]]): # ... def accept(self, v: Visitor[T, U], ctx: T): return v.visitProgram(self, ctx) class Function(Node): # ... def accept(self, v: Visitor[T, U], ctx: T): return v.visitFunction(self, ctx) # ... ''' frontend/ast/visitor.py ''' class Visitor(Protocol[T, U]): def visitOther(self, node: Node, ctx: T) -> None: return None def visitProgram(self, that: Program, ctx: T) -> Optional[U]: return self.visitOther(that, ctx) def visitFunction(self, that: Function, ctx: T) -> Optional[U]: return self.visitOther(that, ctx) # ... 之后,如果我们想要编写一种遍历 AST 的方法,可以直接继承 Visitor 类,并在对应结点的 visit 成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建: class Namer(Visitor[ScopeStack, None]): def visitProgram(self, program: Program, ctx: ScopeStack) -> None: # ... for child in program: if isinstance(child, Function): child.accept(self, ctx) def visitFunction(self, func: Function, ctx: ScopeStack) -> None: # ... # ... 如果想要访问某个子结点 child,直接调用 child.accept(self, ctx) 即可。 "},"docs/step1/spec.html":{"url":"docs/step1/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step1 语法规范 我们采用 EBNF (extended Barkus-Naur form) 记号书写语法规范,采用类似 ANTLR 的记号: 小写字母打头的是非终结符(如 program),大写字母打头的是终结符(如 Identifier),可以用字符串字面量表示终结符(如 'int') 后面会用到:( 和 ) 表示分组,| 表示选择,* 零或多次,+ 一或多次,? 零或一次。 很容易通过增加新的非终结符,去掉这些符号。例如 x+ 就可以被替换成新的非终结符 y,并且 y : x | x y。 EBNF 也有很多写法,另一种是用尖括号表示非终结符 ::= 等。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : Integer step1 语义规范 1.1 MiniDecaf 的 int 类型具体指 32 位有符号整数类型,范围 [-2^31, 2^31-1],补码表示。 1.2 编译器应当只接受 [0, 2^31-1] 范围内的整数常量, 不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号-后,可以用负号配合正整数常量来间接表示负整数常量。 1.3 如果输入程序没有 main 函数,编译器应当报错。 "},"docs/step2/intro.html":{"url":"docs/step2/intro.html","title":"实验要求","keywords":"","body":"实验指导 step2:一元运算符 step2 中,我们要给整数常量增加一元运算:取负 -、按位取反 ~ 以及逻辑非 !。 语法上,我们需要修改 expression 的定义,从 expression : Integer 变成: expression : unary unary : Integer | ('-'|'!'|'~') unary 三个操作的语义和 C 以及常识相同,例如 ~0 == -1,!!2 == 1。 稍微一提,关于按位取反,我们使用补码存储 int;关于逻辑非,只有 0 表示逻辑假,其他的 int 都是逻辑真。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 2 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 如何检查我是否通过自动测试(CI) 在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。 如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。 "},"docs/step2/example.html":{"url":"docs/step2/example.html","title":"通过例子学习","keywords":"","body":"step2 实验指导 我们按照上一节划分的编译器阶段,分阶段给出 step2 实验指导。本实验指导使用的例子为: 需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的 MiniDecaf 程序。 -1 词法语法分析 在 step2 中,我们引入了一元运算,因此需要引入新的抽象语法树节点: 节点 成员 含义 Unary 操作数 operand,运算类型 op 一元运算 注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。 语义分析 由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。 代码没有特别需要修改的地方。 中间代码生成 在 step1 中,我们只需为 return 语句的返回的整型常量分配一个临时变量即可。而从 Step2 开始,语法树上出现了各种运算操作结点。在生成 TAC 的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。 针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 NEG T0 对参数取负 按照上文说的,-1 在语法树上对应父-子两个结点,父结点为取负操作,子结点为常量 1。在生成过程中,首先使用 Visitor 模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。 因此,测例可以翻译成如下的中间代码: _T0 = 1 _T1 = NEG _T0 目标代码生成 step2 目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。以 NEG 中间表达指令为例,RISC-V 汇编中有 neg 指令与其对应,因此上述中间代码可以翻译为如下的 RISC-V 汇编: li t0, 1 neg t1, t0 如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里 实现细节 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。 相比于step 0, 我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:-1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供): 首先,我们应该把 - 看作一个符号,而不应该将 -1 看作一个整体,因为我们还可能遇到 -x 这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对 - 的处理。 我们能发现 -, !, ~ 等符号都可以作为一元运算符出现,比如!x, ~a, -10,我们将这类一元运算操作都称为 unary ,一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和 AST 节点了。 因此我们希望生成的 AST 应当变为如下形式: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) Unary |- (op) Minus |- (expr) IntLiteral(1) 看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 1 这个数字是一个表达式, -1 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。 词法分析 & 语法分析 在 frontend/lexer/lex.py 里加入新的 lex token 定义,以便lexer可以解析 -: t_Minus = \"-\" 在 ply 的 lexer 中,定义的新 token 需要以 t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。 在 frontend/ast/tree.py 里加入新的 AST 节点定义(以及相应的其它东西): class Unary(Expression): def __init__(self, op: Operator, operand: Expression): ... 并在 frontend/ast/visitor.py 中加入相应的分派函数。 它将在后续的 parser 语义计算中被用到。 在 frontend/parser/ply_parser.py 里加入新的 grammar rule: def p_expression_precedence(p): # 定义的新语法规则名。可以随便起,但必须以 `p_` 开头以被 ply 识别。 \"\"\" expression : unary unary : primary \"\"\" # 以 [BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) 定义的新语法规则,以 docstring 的形式提供。 p[0] = p[1] # 这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。 # 语法分析器直接产生的实际上是一棵语法分析树,而构建 AST 这一数据结构则通过相应语法制导的语义计算过程来完成。 def p_unary_expression(p): \"\"\" unary : Minus unary \"\"\" p[0] = tree.Unary(UnaryOp.Neg, p[2]) 这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unary : Minus unary,其中p[0]代表的就是第一个unary, p[1]则是Minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的-通过backward_search对应到我们在代码中enum的UnaryOp.Neg(frontend/ast/node.py:40)。 现在尝试运行 python main.py --input example.c --parse 看看效果吧。(记得修改example.c) 怎么从 AST 变为 TAC 的? 什么是 TAC ,如果你没读前面的章节,你可以快速看看这一部分。 这一步就是 TACGen.transform 函数(frontend/tacgen/tacgen.py)做的事了, TACGen.transform 接受一个AST树输入,输出一个TAC表示,请确保你已经对Visitor 模式有所了解,或者假设你已经知道在遍历 AST 时 accept 函数会对不同类型的 AST Node 调用不同的visit 函数。例如,visit (children[0]) Return 时,遇到的子节点是 (expr) Unary,那么 accept 最终会调用visitUnary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。 下面的描述中一定要记得区分accept和直接对于mv.visitXXX的调用,前者是在遍历AST时调用的,后者是在 TACFuncEmitter 类中调用的。并且希望大家一定要对着代码看。 Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) Unary |- (op) Minus |- (expr) IntLiteral(1) 继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序,我们将TACGen.transform代码贴了一些在这里: def transform(self, program: Program) -> TACProg: labelManager = LabelManager() tacFuncs = [] for funcName, astFunc in program.functions().items(): # in step9, you need to use real parameter count emitter = TACFuncEmitter(FuncLabel(funcName), 0, labelManager) astFunc.body.accept(self, emitter) tacFuncs.append(emitter.visitEnd()) return TACProg(tacFuncs) 现在我们开始正式遍历 AST 树,transform 会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入 visitBlock 函数,visitBlock 函数对于在block中的所有子节点调用了child.accept(self, mv),在这个例子中则会调用Return 语句对应的visitor,进入visitReturn。继续向下,visitReturn 又对于 return AST Node 中的 expr 调用了 stmt.expr.accept(self, mv) ,又进入了visitUnary,同理,expr.operand.accept(self, mv)会进入visitIntLiteral。 到了此处出现了不同,我们发现visitIntLiteral中第一次调用了mv的成员函数 mv.visitLoad(expr.value) 这里进入了TACFuncEmitter.visitLoad: def visitLoad(self, value: Union[int, str]) -> Temp: temp = self.freshTemp() self.func.add(LoadImm4(temp, value)) return temp self.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将 1 load 到一个虚拟寄存器 temp 中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。 到此为止我们得到的TAC代码如下: FUNCTION: _T0 = 1 _T1 = - _T0 return _T1 现在尝试运行 python main.py --input example.c --tac 看看效果吧。 怎么从TAC到汇编代码 这一步是 Asm.transform 函数(backend/asm.py)处理的,Asm.transform 接受一个 TAC 输入,输出汇编代码。 def transform(self, prog: TACProg): analyzer = LivenessAnalyzer() reg_alloc = BruteRegAlloc(emitter) for func in prog.funcs: emitter = RiscvAsmEmitter(Riscv.AllocatableRegs, Riscv.CallerSaved) pair = emitter.selectInstr(func) builder = CFGBuilder() cfg: CFG = builder.buildFrom(pair[0]) analyzer.accept(cfg) reg_alloc.accept(cfg, pair[1]) return emitter.emitEnd() 我们先忽略LivenessAnalyzer和Control Flow Graph(CFG)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectInstr),指令选择将中端TAC代码转换为riscv汇编代码,selectInstr函数中,我们也采用了visitor模式遍历指令序列, _T0 = 1 这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li _T0, 1),主要讲讲和_T1 = - _T0 和 return _T1翻译过程发生了什么。 先看visitUnary函数: def visitUnary(self, instr: Unary) -> None: op = { TacUnaryOp.NEG: RvUnaryOp.NEG, # You can add binary operations here. }[instr.op] self.seq.append(Riscv.Unary(op, instr.dst, instr.operand)) 这里将中端的TacUnaryOp.NEG翻译为了后端的RvUnaryOp.NEG,在后端输出汇编时,我们直接将RvUnaryOp.NEG转换为小写字符串取了11位以后的字符,直接输出为neg(参考Unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在RvUnaryOp中增加对应的同名的enum字段。 你可以试试,将RvUnaryOp.NEG中名字改为RvUnaryOp.XXX看看输出的汇编代码会发生什么变化吧。 再看visitReturn函数,我们这里的return是一个带返回值函数的return def visitReturn(self, instr: Return) -> None: if instr.value is not None: self.seq.append(Riscv.Move(Riscv.A0, instr.value)) else: self.seq.append(Riscv.LoadImm(Riscv.A0, 0)) self.seq.append(Riscv.JumpToEpilogue(self.entry)) 这里会进入第一个分支,由于 Risc-V 的调用约定将A0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条Move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。 你可能会觉得,这一步不就是将 TAC 一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如T2 = T1 || T0,这里的逻辑或需要将T1、T0进行或操作后,再判断其值是否为1。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。 物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。 现在尝试运行 python main.py --input example.c --riscv 看看效果吧。 思考题 我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个 minidecaf 表达式,只使用-~!这三个单目运算符和从 0 到 2147483647 范围内的非负整数,使得运算过程中发生越界。 提示:发生越界的一步计算是-。 总结 本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。 "},"docs/step2/spec.html":{"url":"docs/step2/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step2 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : unary unary : Integer | ('-'|'!'|'~') unary step2 语义规范 2.1 运算符 - 的结果是其操作数的相反数。 2.2 运算符 ~ 的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是 1 当且仅当其对应的二进制位是 0)。 2.3 当操作数不等于 0 时,逻辑非运算符 ! 的结果为 0;当操作数等于 0 时,其结果为 1。 2.4 MiniDecaf 中,负数字面量不被整体作为一个 token。它被看成是一个取负符号、后面是它的绝对值。 所以我们无法用字面量表示 -2147483648,但可以写成 -2147483647-1(待我们加上四则运算后)。 2.5 整数运算越界是未定义行为(undefined behavior),即对程序的行为无任何限制。 例如 -(-2147483647-1) 是未定义行为。这一条规则对于后续 step 引入的运算符也都适用。 对于含有未定义行为的 C/C++ 程序,在启用优化选项编译时,编译器可能产生意料之外的结果。 "},"docs/step3/intro.html":{"url":"docs/step3/intro.html","title":"实验要求","keywords":"","body":"实验指导 step3:加减乘除模 step3 我们要增加的是:加 +、减 -、乘 *、整除 /、模 % 以及括号 ( )。 语法上我们继续修改 expression,变成 expression : additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' 新特性的语义、优先级、结合性和 C 以及常识相同,例如 1+2*(4/2+1) == 7。 我们这种表达式语法写法可能比较繁琐,但它有几个好处: 和 C17 标准草案保持一致 把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 3 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 如何检查我是否通过自动测试(CI) 在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。 如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。 "},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导 本实验指导使用的例子为: 1+3 词法语法分析 在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点: 节点 成员 含义 Binary 左操作数 lhs,右操作数 rhs,运算类型 op 二元运算 对有兴趣的同学:虽然 -2 和 2-3 里面的 - 意义不同,但 lexer 不知道这点(parser 才知道),所以它们都会用同样的 token kind - 表示。 但有时,可能需要后续阶段告诉 lexer(或 parser)一些信息,最经典的例子是 “typedef-name identifier problem”。 语义分析 同 Step2。 中间代码生成 与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 作用 ADD T0,T1 将两个参数相加 因此,测例可以翻译成如下的中间代码: _T0 = 1 _T1 = 3 _T2 = ADD _T0, _T1 目标代码生成 step3 目标代码生成步骤的关键点与 step2 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。 li t0, 1 li t1, 3 add t2, t0, t1 思考题 我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是 0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如 x86-64 或 ARM)中和 RISCV-32 的 qemu 模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化) #include int main() { int a = 左操作数; int b = 右操作数; printf(\"%d\\n\", a / b); return 0; } 总结 本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。 "},"docs/step3/precedence.html":{"url":"docs/step3/precedence.html","title":"优先级和结合性","keywords":"","body":"优先级和结合性 操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下: 优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1 + 2 * 3应该解析成语法树add (1 mul (2 3))(前序表示),不能解析成mul (add (1 2) 3) 结合性是一个操作符的性质,例如-是左结合的,所以表达式1 - 2 - 3应该解析成sub (sub (1 2) 3),不能解析成sub (1 sub (2 3)) 我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。 但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习C或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的: expression : expression ('+'|'-') expression | expression ('*'|'/'|'%') expression | ('-'|'~'|'!') expression | Integer | '(' expression ')' 当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。 之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤: 把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。 指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了C语言操作符的优先级和结合性,因为我们的MiniDecaf语言是C语言的一个子集,所以这张表格也足够我们的语言使用了。 "},"docs/step3/spec.html":{"url":"docs/step3/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step3 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' step3 语义规范 3.1 二元操作符 * 的结果是操作数的乘积。 3.2 二元操作符 / 的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符 % 的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为 0,则其行为都是未定义的。当 b 不为 0 时,表达式 (a/b)*b + a%b 应该等于 a。 3.3 二元操作符 + 的结果是操作数的和。 3.4 二元操作符 - 的结果是第一个操作数减去第二个操作数所得的差。 3.5 除非特别声明,子表达式求值顺序是未规定行为(unspecified behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。 例如:执行 int a=0; (a=1)+(a=a+1); 之后 a 的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。 "},"docs/step4/intro.html":{"url":"docs/step4/intro.html","title":"实验要求","keywords":"","body":"实验指导 step4:比较和逻辑表达式 step4 我们要增加的是: 比较大小和相等的二元操作:、、>=, >, ==, != equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive 逻辑与 &&、逻辑或 || expression : logical_or logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality 新特性的语义、优先级、结合性和 C 以及常识相同,例如 1=2 是逻辑真(int 为 1)。 但特别注意,C 中逻辑运算符 || 和 && 有短路现象,我们不要求。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 4 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 如何检查我是否通过自动测试(CI) 在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。 如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。 "},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导 本实验指导使用的例子为: 1 词法语法分析 本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。 语义分析 同 Step2。 中间代码生成 针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 LT T0,T1 给出 T0结果,成立为1,失败为0 需要特别注意的是,在 C 语言中,逻辑运算符 || 和 && 有短路现象,我们的实现中不要求大家考虑它们的短路性质。 因此,测例可以翻译成如下的中间代码: _T0 = 1 _T1 = 2 _T2 = LT _T0, _T1 目标代码生成 step4 目标代码生成步骤的关键点与 step3 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。 li t0, 1 li t1, 2 slt t2, t0, t1 逻辑表达式会麻烦一点,因为 gcc 可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出 land 和 lor 对应的不使用跳转的汇编。 IR 汇编 lor or t3,t1,t2 ; snez t3,t3 land snez d, s1; sub d, zero, d; and d, d, s2; snez d, d; 注意 RISC-V 汇编中的 and 和 or 指令都是位运算指令,不是逻辑运算指令。 思考题 在 MiniDecaf 中,我们对于短路求值未做要求,但在包括 C 语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处? 总结 本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。 恭喜你!到目前为止,你已经成功实现了一个基于 MiniDecaf 语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个 Stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️ "},"docs/step4/spec.html":{"url":"docs/step4/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step4 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : logical_or logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' step4 语义规范 4.1 关系操作符 (小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。 关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如 0 的含义与 (0 相同,即“如果 0 小于 1,那么判断是否有 1 小于 2,否则判断是否有 0 小于 2”。 4.2 判等操作符 ==(等于)和 !=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为 1。 其优先级的设定会导致其含义在某些时候可能会反直观,例如,0 的运算结果为 1。 4.3 当操作数都非 0 时,逻辑与操作符 && 的结果为 1;否则其结果为 0。 4.4 当操作数有一个非 0 时,逻辑或操作符 || 的结果为 1;否则其结果为 0。 4.5 逻辑操作符 || 和 && 依然遵循语义规范 3.5,即其操作数的求值顺序是未指定行为。 换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。 "},"docs/step5/intro.html":{"url":"docs/step5/intro.html","title":"实验要求","keywords":"","body":"实验指导 step5:局部变量和赋值 这一步我们终于要增加变量了,包括: 变量的声明 变量的使用(读取/赋值) 此外,我们的 main 函数内部可以包含多条语句和声明了。 为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入 栈帧 的概念,并介绍它的布局。 语法上,step5 的改动如下: function : type Identifier '(' ')' '{' statement* '}' statement : 'return' expression ';' | expression? ';' | declaration declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : logical_or | Identifier '=' expression primary : Integer | '(' expression ')' | Identifier 我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。 请将你的作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 2 的实验报告需要放在 stage-2 这个 branch 下的 ./reports/stage-2.pdf。注意报告的标题是 stage-2 而不是 step-5。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step5/example.html":{"url":"docs/step5/example.html","title":"通过例子学习","keywords":"","body":"step5 实验指导 本实验指导使用的例子为: int main() { int x = 2024; return x; } 词法语法分析 针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供): 节点 成员 含义 TInt 无 整型 Identifier 名称 value 标识符(用于表示变量名) Assignment 同 Binary 赋值运算 Declaration 类型 var_t,标识符 ident,初始表达式 init_expr 变量声明 请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。 语义分析 从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。 在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。 类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为: int main() { int x = 2024; return x + y; } 那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2024; 这条语句后已经为其定义),而 y 无法找到,因此编译器需要在扫描到 y 对应的结点时报错。 符号表总是和作用域相关的。例如,在 C 语言中,我们可以在全局作用域中定义名为 \"a\" 的全局变量,同时在 main 函数中定义名为 \"a\" 的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑 main 函数作用域对应的单张符号表即可。 此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在 step11 中,我们会将左值的范围进一步包括数组元素。 对应到框架代码上: frontend/symbol 目录下为符号的实现。其中 symbol.py 为符号类的基类,varsymbol.py 为变量符号。在本节中,同学们只需要考虑变量符号即可。 frontend/scope 目录下为符号表的实现。其中 scope.py 为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个 Scope 对象,用以维护 main 函数中所有出现过的变量符号即可。 中间代码生成 我们首先来看本节指导用例所对应的中间代码: main: _T1 = 2024 _T0 = _T1 return _T0 针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 ASSIGN T0,T1 临时变量的赋值 从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于 MiniDecaf 语言中的基本类型只有 int 型,而 TAC 里的临时变量也是 32 位整数,因此,我们可以把 MiniDecaf 局部变量和 TAC 临时变量对应起来。 在扫描到 int x = 2024; 这条语句时,中间代码先把立即数 2024 加载到临时变量 _T1 中,然后再把 _T1 的值赋给临时变量 _T0,此时 _T0 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T0。例如,测例中直接用返回 _T0 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T0 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。 请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。 目标代码生成 本节指导用例对应如下 RISC-V 汇编代码: .text .global main main: li t1, 2024 mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令 mv a0, t0 ret 简单的启发式寄存器分配算法 在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。 实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 Step6 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。 基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条 TAC 指令(例如 _T2 = ADD _T1, _T0),对于每个源操作数对应的临时变量(本例中 _T1 和 _T0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的 _T2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。 在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。 在实验框架中已经给出寄存器分配算法的代码,集中在 backend/reg/bruteregalloc.py 中,主要有以下几个函数: accept:根据每个函数的 DFG(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。 bind:将一个 Temp(临时变量)与寄存器绑定。 unbind:将一个 Temp(临时变量)与相应寄存器解绑定。 localAlloc:根据活跃变量信息对一个 BasicBlock(基本块)内的指令进行寄存器分配。 allocForLoc:每一条指令进行寄存器分配。 allocRegFor:根据活跃变量信息决定为当前 Temp(临时变量)分配哪一个寄存器。 栈帧 上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。 栈帧的概念 在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在 Step11 中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。 需要注意的是,由于我们目前只支持一个 main 函数,直到 Step9 才会有多函数支持。所以现在关于栈帧的讨论,就只针对 main 函数的栈帧,并且集中于临时变量的存储和加载。 假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp 指向当前栈帧的栈底,sp 指向当前栈帧的栈顶,fp 和 sp 之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在 Step6 介绍,在当前的步骤不需要考虑)。 栈帧的建立与销毁 栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的 prologue。prologue 所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的 epilogue。epilogue 所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回 貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp 和 fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。 一个例子 #include int calculate() { int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int result = a + b + c + d + e; return result; } int main() { int result = calculate(); printf(\"%d\\n\", result); return 0; } 在这个示例中,我们在 calculate 函数内部声明了 5 个局部整数变量(a 到 e)。假设我们的处理器只有 4 个通用寄存器,在这种情况下,我们无法将 5 个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程: main 函数调用 calculate 函数,将返回地址压入栈中。 calculate 函数执行 prologue,将 fp 的值保存到栈中,然后将 sp 的值赋给 fp,此时 fp 和 sp 的值相同,都指向栈顶。 calculate 函数分配栈帧空间,在这个例子中,假设 a 到 d 保存在寄存器中,e 保存在栈帧中,因此需要分配 4 字节的栈帧空间。sp 指向栈顶,因此 sp 的值减去 4,即可得到 e 的地址。 计算完成后,calculate 函数执行 epilogue,将 fp 的值赋给 sp,并恢复 fp 的值,然后将返回地址弹出栈中,跳转到返回地址。 思考题 请将你的整个stage-2作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。 我们假定当前栈帧的栈顶地址存储在 sp 寄存器中,请写出一段 risc-v 汇编代码,将栈帧空间扩大 16 字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc-v 汇编中 addi reg0, reg1, 表示将 reg1 的值加上立即数存储到 reg0 中。) 有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的 Rust 代码(你不需要精确了解它的含义,大致理解即可): fn main() { let a = 0; let a = f(a); let a = g(a); } 其中f(a)中的a是上一行的let a = 0;定义的,g(a)中的a是上一行的let a = f(a);。 如果 MiniDecaf 也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?) 总结 Step5 主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。 "},"docs/step5/spec.html":{"url":"docs/step5/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step5 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement* '}' type : 'int' statement : 'return' expression ';' | expression? ';' | declaration declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : logical_or | Identifier '=' expression logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier step5 语义规范 5.1 每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。 5.2 变量的初始化表达式指定了变量的初始值。 5.3 同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。 5.4 对未声明的变量的使用是错误。 5.5 没有被初始化的(局部)变量的值是不确定的。 在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。 例如,int a = a + 1;,这样一条声明在语义上等价于 int a; a = a + 1; 5.6 局部变量的名字可以为 main。 5.7 赋值运算 = 的左操作数必须是一个可修改的左值(modifiable lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在 int a; a = 1; 中,a 即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。 就 step5 来说,这一点其实几乎已经被语法保证,因为其 = 的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。 5.8 在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。 5.9 赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。 5.10 一个函数中可以有任意多条 return 语句。 5.11 当 main 函数执行至 } 时,应终止执行并返回 0。 "},"docs/step6/intro.html":{"url":"docs/step6/intro.html","title":"实验要求","keywords":"","body":"实验指导 step6:作用域和块语句 step6 我们要增加块语句的支持。 虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。 随之而来一个问题是:不同变量可以重名了。 重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。 因此,变量名不能唯一标识变量了,同一个变量名 a 出现在代码不同地方可能标识完全不同的变量。 我们需要在符号表构建的过程中,确定 AST 中出现的每个变量名分别对应那个变量。 语法上改动不大 function : type Identifier '(' ')' compound_statement compound_statement : '{' block_item* '}' statement : 'return' expression ';' | compound_statement block_item : statement | declaration 语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。 当然,如果变量在使用前还是必须先被声明。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 3 的实验报告需要放在 stage-3 这个 branch 下的 ./reports/stage-3.pdf。注意报告的标题是 stage-3 而不是 step-6。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step6/example.html":{"url":"docs/step6/example.html","title":"通过例子学习","keywords":"","body":"step6 实验指导 本实验指导使用的例子为: int main() { int x = 1; { x = 2; int x = 3; } x = 4; return x; } 词法语法分析 针对块语句,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 Block 子语句列表 children 语句块 语义分析 从 Step6 开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管 main 函数里定义了变量 x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句 x = 2; 中的 x 就是指 main 作用域中定义的 x,而随后通过 int x = 3; 我们定义了另一个变量 x,这个 x 只在内部大括号括起的作用域内生效。 在 Step5 中,我们只维护了 main 的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(Scope Stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。 接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有 main 函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入 main 函数时,开启一个局部作用域,在扫描 int x = 1; 时定义变量符号 x,并将其加入栈顶作用域对应的符号表中。如下所示: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域(栈顶) 变量 x 接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描 x = 2; 时,我们需要分析 x 这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域 变量 x 局部作用域(栈顶) 空 对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量 x 为止。由于在栈顶作用域对应的符号表中不存在变量符号 x,于是向下继续查找。在 main 函数对应的作用域中,可以找到变量符号 x。因此,语句 x = 2; 中的 x 对应 main 函数作用域里定义的变量 x。 接下来,当扫描到语句 int x = 3; 时,定义了另一个变量 x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域 变量 x 局部作用域(栈顶) 变量 x 请务必注意上表中的两个变量 x 是不同的变量。 接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域(栈顶) 变量 x 最后,扫描语句 x = 4; 时,从栈顶作用域符号表查找 x,所找到的变量 x 为 main 作用域定义的 x 变量。 中间代码生成 本步骤中无须新增新的 TAC 指令。 让我们来看看示例所对应的 TAC 代码: main: _T1 = 1 _T0 = _T1 # int x = 1; _T2 = 2 _T0 = _T2 # x = 2 _T4 = 3 _T3 = _T4 # int x = 3; _T5 = 4 _T0 = _T5 # x = 4; return _T0 显然,两个代码块里的变量 x 是不同的变量,因此它们分别对应着不同的临时变量。其中,_T0 对应着 main 作用域里的 x,而 _T3 则对应着内层代码块定义的变量 x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。 目标代码生成 不需要新增新的中间代码指令。 代码框架需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。 实现提示 在 step5 中,namer/typer 遍历时的上下文信息(参数 ctx)是单一的作用域。到了 step 6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义 class Namer(Visitor[Scope, None]) 应改为 class Namer(Visitor[YourType, None]),其中 YourType 是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在 frontend/scope/ 下。class Typer 也需要如上改动。 之前 step5 的全局唯一的作用域可以被当作“函数作用域使用”,在 visitFunction 入栈。然后在新的 visitBlock 中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。 当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用 Scope.lookup 实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑 Typer / Namer 中的每一个 Scope.lookup ,看她们是否需要换成新函数。 后续 stage-4 时,你需要一个机制来检查 break/continue 语句是否在一个循环内。这可以通过修改 namer/typer 中的对应结点来实现。另外,别忘了循环本身也是一个作用域! 后续如果你选做“全局变量”部分,可以在 Namer 和 Typer 的 transform 方法中先将全局作用域加入栈底,再往上才是 visitFunction 的函数作用域。 思考题 请画出下面 MiniDecaf 代码的控制流图。int main(){ int a = 2; if (a "},"docs/step6/dataflow.html":{"url":"docs/step6/dataflow.html","title":"数据流分析","keywords":"","body":"数据流分析 编译优化的基础是数据流分析。 基本块(basic block)和控制流图(control-flow graph)是用于进行上述分析的数据结构。 以下讲述数据流分析的内容中,所有的 CondBranch 指令为条件跳转指令,Branch 指令为跳转指令。 基本块 基本块是指一段这样的代码序列: 除出口语句外基本块中不含任何的 Branch、Beqz(条件为假时跳转)、Bnez(条件为真时跳转)或者 Return 等跳转语句(但可以包含 Call 语句)。 除入口语句外基本块中不含任何的 Label 标记,即不能跳转到基本块中间。 在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。 下面的例子中,代码中不同的基本块被标以不同的颜色: 也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。 控制流图 控制流图是一个有向图:它以基本块作为结点,如果一个基本块 A 执行完之后,有可能跳转到另一个基本块 B,则图中包含从 A 对应结点到 B 对应结点的有向边。对于以 Branch 语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以 CondBranch 语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。 为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行: 划分基本块。 建立基本块之间的连接关系。 基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程: 当遇到一个 Label 标记而且存在跳转语句跳转到这个行号时。 当遇到 Branch、CondBranch 或者 Return 等跳转语句时。 整个操作序列扫描完毕后,我们就成功建立了所有基本块。 在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图: 如果当前基本块以 Branch 结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。 如果当前基本块以 CondBranch 结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共 2 条边)。 如果当前基本块以 Return 结尾,则不需要加入新的边。 在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。 上面例子对应的控制流图如下: 活跃变量和活跃变量方程 从编译器中端出来的中间代码中,我们对 TAC 中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。 因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。 根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要 spill 到栈上)。 由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(liveness analysis),或者称为“活跃变量分析”。 一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。 下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合: TAC 代码 活跃变量集合 _T0 = 4 {_T0} _T1 = 3 {_T0, _T1} _T2 = _T0 * _T1 {_T0} _T3 = _T0 * _T0 {_T0, _T3} _T2 = _T3 * _T3 {_T0, _T2, _T3} _T2 = _T0 * _T2 {_T2, _T3} _T1 = _T2 * _T3 {_T1} return _T1 空集 一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念, 我们需要先引入下面四种针对基本块的集合: Def 集合:一个基本块的 Def 集合是在这个基本块内被定值的所有变量。所谓的定值 (definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:Store 语句不给任何变量定值,Load 语句则会给对应变量定值)。 LiveUse 集合:一个基本块的 LiveUse 集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。 LiveIn 集合:在进入基本块入口之前必须是活跃的那些变量。 LiveOut 集合:在离开基本块出口的时候是活跃的那些变量。 其中 Def 和 LiveUse 是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。 有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程: 该方程说的是一个基本块的 LiveOut 集合是其所有后继基本块的 LiveIn 集合的并集,而且 LiveIn 集合是 LiveUse 集合的变量加上 LiveOut 集合中去掉 Def 集合以后的部分。 这个方程的直观意义是: 一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。 在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本 块之前就要具有的了)。 根据这个方程,我们可以通过迭代更新的办法求出每个基本块的 LiveIn、LiveOut 集合,以下是求解的伪代码: for i 获得了每个基本块的 LiveIn 和 LiveOut 集合以后,我们需要进一步地计算基本块内每个 TAC 语句的 LiveIn 和 LiveOut 集合。如果我们把基本块内所有 TAC 语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的 “控制流图” 有以下三种特点: 每个节点的出度都是 1,也就是说 LiveOut(B) = LiveIn(Succ(B))。 由于每个结点只含有一个语句,因此其 Def 集要么是空集,要么只含有一个元素。 由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其 LiveUse 集合就是源操作数对应的所有变量。 基于上面三个特点,已经求出基本块的 LiveOut 集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出 LiveIn、LiveOut。 "},"docs/step6/spec.html":{"url":"docs/step6/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step6 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' compound_statement type : 'int' compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | compound_statement declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier step6 语义规范 6.1 根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。 6.2 (更新 5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。 在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a + 1 的值是不确定的。 int a = 1; { int a = a + 1; } 6.3 (更新 5.3)对于同一个标识符,在同一个作用域中至多有一个声明。 6.4 (更新 5.4)使用不在当前开作用域中的变量名是不合法的。 "},"docs/step7/intro.html":{"url":"docs/step7/intro.html","title":"实验要求","keywords":"","body":"实验指导 step7: step7 我们要支持条件语句,包括 if 语句和条件表达式(又称三元/三目表达式,ternary expression)。 语法上的改动是: if 表达式 statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? 条件表达式 assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional if 语句的语义和 C 语言相同,注意条件表达式优先级只比赋值高。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 7 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step7/example.html":{"url":"docs/step7/example.html","title":"通过例子学习","keywords":"","body":"step7 实验指导 本实验指导使用的例子为: int main() { int x = 1; if (x) x = 2; else x = 3; return x; } 词法语法分析 针对 if 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供): 节点 成员 含义 If 分支条件 cond,真分支 then,假分支 otherwise if 分支语句 仿照 if 节点,还需要类似地实现条件表达式节点。 悬吊 else 问题 这一节引入的 if 语句既可以带 else 子句也可以不带,但这会导致语法二义性:else 到底和哪一个 if 结合? 例如 if(a) if(b) c=0; else d=0;,到底是 if(a) {if(b) c=0; else d=0;} 还是 if(a) {if(b) c=0;} else d=0;? 这个问题被称为 悬吊 else(dangling else) 问题。 如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。 我们人为规定:else 和最近的 if 结合,也就是说上面两种理解中只有前者合法。 为了让 parser 能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有 else 的 if。 按照这个规定,parser 看到 if(a) if(b) c=0; else d=0; 中第一个 if 时,选择没有 else 的 if; 而看到第二个时只能选择有 else 的 if ,也就使得 else d=0; 被绑定到 if(b) 而不是 if(a) 了。 需要说明的是 bison 默认在 shift-reduce conflict 的时候选择shift,从而对悬挂else进行就近匹配。 语义分析 本步骤中语义分析没有特别需要增加的内容,只需要在扫描到 if 语句和条件表达式时递归地访问其子结点即可。请注意 if 语句不总是有 else 分支,所以在递归到子结点时,请先判断子结点是否存在。 中间代码生成 从本步骤开始,由于 MiniDecaf 程序出现了分支结构,我们需要开始考虑跳转语句了。在 Step1-4 中,TAC 代码中的标签只有标志 main 函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用 _Lk 来表示跳转用标签,以此和函数入口标签区分开来。 为了实现 if 语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 作用 BEQZ T0, Label 若 T0 的值为0,则跳转到 LABEL 标签处 JUMP Label 跳转到 LABEL 标签处 现在让我们来看看示例所对应的 TAC 代码: main: _T1 = 1 _T0 = _T1 BEQZ _T0, _L1 _T2 = 2 _T0 = _T2 JUMP _L2 _L1: _T3 = 3 _T0 = _T3 _L2: return _T0 在这段 TAC 代码中,x 对应的临时变量为 _T0。如果 x 的值为真(不等于0),那么应当执行 then 分支 x = 2;,否则执行 else 分支 x = 3;。因此,我们设置了两个跳转标签 _L1 和 _L2,分别表示 else 分支开始位置和整个 if 语句的结束位置。如果 x 为假,那么应当跳转到 _L1 处,我们使用一条 BEQ 指令来执行。如果 x 为真,那么按顺序执行 then 分支的代码,并在该分支结束时,用一条 JMP 指令跳转到 if 语句的结束位置,从而跳过 else 分支。在 TAC 生成过程中,每当扫描到 if 语句时,都需要调用 TAC 的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。 当然,如果一条 if 语句没有 else 分支,那么只需要一个跳转标签即可。例如我们将例子中的 if 语句修改为 if (x) x = 2;,则对应的 TAC 代码可简化为: main: _T1 = 1 _T0 = _T1 BEQ _T0, _L1 _T2 = 2 _T0 = _T2 _L1: return _T0 同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。 目标代码生成 Step7 中目标代码生成主要是指令的选择以及 label 的声明,RISC-V 提供了与中间代码中 BEQZ 和 JUMP 类似的指令: step7: # RISC-V 汇编标签 beqz t1, step7 # 如果 t1 为 0,跳转到 step7 标签处 j step7 # 无条件跳转到 step6 标签处 思考题 我们的实验框架里是如何处理悬吊 else 问题的?请简要描述。 在实验要求的语义规范中,条件表达式存在短路现象。即: int main() { int a = 0; int b = 1 ? 1 : (a = 2); return a; } 会返回 0 而不是 2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。 总结 本节主要就是引入了跳转,后面 Step8 循环语句还会使用。 "},"docs/step7/spec.html":{"url":"docs/step7/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step7 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' block_item* '}' type : 'int' compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | compound_statement | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier 注意:if 的 then 分支和 else 分支需要是一个语句(statement)而非声明(declaration)。 例如 if (1) int a; 不是合法的 MiniDecaf 程序。 step7 语义规范 7.1 条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于 0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于 0,我们会对第三个操作数求值。当第一个操作数的值为 0 时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非 0 时,条件表达式的求值结果为第三个操作数所求得的值。 不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。 7.2 对于 if 语句而言,当控制条件不等于 0 时,会执行第一个子句;当控制条件等于 0 时,如果有 else 分支,就会执行第二个语句,否则整个 if 语句的执行便已经完成。 7.3 如果出现悬吊 else(dangling else),要求 else 优先和最接近的没有匹配 else 的 if 匹配。 例如 if (0) if (0) ; else ; 等价于 if (0) { if (0) ; else; } 而非 if (0) { if (0) ; } else ;。 "},"docs/step8/intro.html":{"url":"docs/step8/intro.html","title":"实验要求","keywords":"","body":"实验指导 step8:循环语句 step8 我们要增加对循环语句,以及 break/continue 的支持: statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' 循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 8 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step8/example.html":{"url":"docs/step8/example.html","title":"通过例子学习","keywords":"","body":"step8 实验指导 本实验指导使用的例子为: for (int i = 0; i 词法语法分析 针对循环语句和 break/continue 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 While 循环条件 cond,循环体 body while 循环语句 For 初始语句 init,循环条件 cond,更新语句 update,循环体 body for 循环语句 Break 无 break 语句 Continue 无 continue 语句 其中,while 和 break 语句的实现已经在框架中给出,同学们可以参考并实现 for 和 continue 语句。 语义分析 本步骤语义分析阶段的处理方式和 Step7 中的 if 语句相类似,但是请额外注意以下两点: for 循环要自带一个作用域。在示例里,for (int i = 0; i 语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for (int i = 0; i 这也是合法的 MiniDecaf 程序。因此,在符号表构建阶段,扫描到 for 结点时,不要忘记开启一个局部作用域。 break 和 continue 语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到 break 和 continue 结点时,若当前不处于任何循环内,则报错。 中间代码生成 本步骤中没有需要新增的 TAC 指令。不过为了实现循环语句,需要仔细地考虑如何将 MiniDecaf 循环语句翻译成 TAC 的分支跳转指令。由于 while 循环可以看作 for 循环的特例,我们选择了 for 循环作为示例。 让我们先来看看示例对应的 TAC 代码: _T1 = 0 _T0 = _T1 # int i = 0; _L1: # begin label _T2 = 5 _T3 = LT _T0, _T2 BEQZ _T3, _L3 # i 为了实现所有可能的跳转,对每个 for 循环我们都需要定义三个跳转标签:begin, loop 和 break。它们的作用如下: begin 标签(示例中的 _L1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到 break 标签(示例中的 _L3)处。 loop 标签(示例中的 _L2)是执行 continue 语句时应当跳转到的位置。 break 标签是整个循环结束后的位置。如果循环条件不满足,或者执行了 break 语句,那么应当跳转到此处,执行循环之后的指令。 请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。 由于循环语句可以嵌套,所以 TAC 语句生成过程中需要动态维护 loop 标签和 break 标签,这样才能确定每一条 break 和 continue 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。 utils/tacgen/tacgen.py 里的 TACFuncEmitter 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 break/continue 标签的维护。 目标代码生成 由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。 思考题 将循环语句翻译成 IR 有许多可行的翻译方法,例如 while 循环可以有以下两种翻译方式: 第一种(即实验指导中的翻译方式): label BEGINLOOP_LABEL:开始下一轮迭代 cond 的 IR beqz BREAK_LABEL:条件不满足就终止循环 body 的 IR label CONTINUE_LABEL:continue 跳到这 br BEGINLOOP_LABEL:本轮迭代完成 label BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿 第二种: cond 的 IR beqz BREAK_LABEL:条件不满足就终止循环 label BEGINLOOP_LABEL:开始下一轮迭代 body 的 IR label CONTINUE_LABEL:continue 跳到这 cond 的 IR bnez BEGINLOOP_LABEL:本轮迭代完成,条件满足时进行下一次迭代 label BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿 从执行的指令的条数这个角度(label 不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好? 我们目前的 TAC IR 中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它 IR 中存在双目标分支(标签)的条件分支指令,其形式如下: br cond, false_target, true_target 其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。 你认为中间表示的哪种条件分支指令设计(单目标 vs 双目标)更合理?为什么?(言之有理即可) "},"docs/step8/spec.html":{"url":"docs/step8/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step8 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' compound_statement type : 'int' compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier step8 语义规范 方便起见,我们称 for 循环括号中的三个表达式/声明自左向右依次为 init、ctrl 和 post。 例如 for (i=0; i 中,i=0 是 init,i 是 ctrl,i=i+1 是 post。 8.1 有两种循环语句:for 循环、while 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。 8.2 while 循环的控制表达式的求值在循环体的每次执行之前。 8.3 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。 8.4 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。 8.5 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 for 循环的 init 是一条声明,则其所声明的变量所属的作用域是整个 for 循环语句的作用域(包含 init、ctrl、post 和循环体)。 例如,for (int i=0;;i=i+1) { int i=1; return i; } 是合法的代码片段。 8.7 continue 语句和 break 语句要么出现在循环体里,要么其就是循环体。 8.8 执行一条 continue 语句,意味着将程序的执行跳转至该条 continue 语句所在的最小的循环语句的循环体的末尾。 例如,for (int i=0;i 等价于 for (int i=0;i。 8.9 执行一条 break 语句,意味着终止该条 break 语句所在的最小的循环语句的执行。 "},"docs/step9/intro.html":{"url":"docs/step9/intro.html","title":"实验要求","keywords":"","body":"实验指导 step9:函数 step9 开始,我们要支持多函数了。 我们需要支持函数的声明和定义: program : function* function : type Identifier '(' parameter_list ')' (compound_statement | ';') parameter_list : (type Identifier (',' type Identifier)*)? 我们还需要支持函数调用: expression_list : (expression (',' expression)*)? unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' 语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持 void 返回类型,这可以通过忽略函数的 int 返回值实现。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 5 的实验报告需要放在 stage-5 这个 branch 下的 ./reports/stage-5.pdf。注意报告的标题是 stage-5 而不是 step-9。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step9/example.html":{"url":"docs/step9/example.html","title":"通过例子学习","keywords":"","body":"step9 实验指导 本实验指导使用的例子为: int func(int x, int y) { return x + y; } int main() { return func(1, 2); } 词法语法分析 针对函数特性,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 Function 返回类型 return_type,函数名 ident,参数列表 params,函数体 body 函数 Parameter 参数类型 var_type,变量名 ident 函数参数 Call 调用函数名 ident,参数列表 argument_list 函数调用 语义分析 本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历 AST 构建符号表的过程中,栈底符号表一直存在,不会被弹出。 此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成: int func(int x, int y) { int x = 1; return x + y; } 那么语义检查时应当报错。 函数符号的实现在 frontend/symbol/funcsymbol.py 中。 中间代码生成 为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 CALL LABEL(T0, T1, ...) 调用函数 LABEL,传入的实参为T0、T1等 下面是一段含有函数调用的代码片段: T0 = CALL foo(T1, T2) T1和T2作为被调用函数foo的实参,而调用后的返回值保存在T0中。 实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。 在早先的文档中,函数调用涉及CALL和PARAM两种指令。CALL指令只对应实际汇编代码的函数调用,而PARAM T0指令用于传递一个参数。 假设我们有若干个参数,可以依次使用 PARAM 命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量 _T0, _T1 ... 中。比如我们有这样一段 TAC 程序: PARAM A PARAM B PARAM C XX = CALL XXX 那么,在进入 XXX 函数时,相当于执行了: _T0 = A _T1 = B _T2 = C 因此,示例可以对应如下的 TAC 程序: func: _T2 = ADD _T0, _T1 return _T2 # 参数 x 和 y 分别对应 _T0, _T1 main: _T0 = 1 PARAM _T0 # 将 _T0 的值作为参数 x _T1 = 2 PARAM _T1 # 将 _T1 的值作为参数 y _T3 = CALL func # 调用函数 return _T3 同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。 思考 在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案): 中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)? 到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言? 如果你感兴趣,可以了解一下LLVM IR。 目标代码生成 下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。 .text .global main func: # start of prologue addi sp, sp, -56 # end of prologue # start of body add t0, a0, a1 mv a0, t0 j func_exit # end of body func_exit: # start of epilogue addi sp, sp, 56 # end of epilogue ret main: # start of prologue addi sp, sp, -56 sw ra, 52(sp) # end of prologue # start of body li t0, 1 li t1, 2 mv a0, t0 mv a1, t1 call func mv t0, a0 mv a0, t0 j main_exit # end of body main_exit: # start of epilogue lw ra, 52(sp) addi sp, sp, 56 # end of epilogue ret 首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。 完成这个步骤的过程中你可能需要回顾step 2中对于后端翻译的介绍和step 5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。 函数调用 程序代码里的一个函数调用,包含了下面一系列的操作: (汇编)保存 caller-saved 寄存器。 准备参数,完成传参。 执行汇编中的函数调用指令,开始执行子函数直至其返回。 拿到函数调用的返回值,作为函数调用表达式的值。 具体依赖于1的处理方式,可能需要恢复 caller-saved 寄存器。 上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。 调用约定 我们给出RISC-V标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。 RISC-V 的标准调用约定 caller-saved 和 callee-saved 寄存器 上表给出 RISC-V 中 32 个整数寄存器的分类。所谓 caller-saved 寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓 callee-saved 寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些 callee-saved 寄存器的值。 具体的保存方法并不限制,但一般都使用栈来保存。 函数参数以及返回值的传递 函数参数(32 位 int)从左到右存放在 a0 - a7 寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第 9 个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用 gcc 编译程序进行验证。 返回值(32 位 int)放在 a0 寄存器中。 实战教学 我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。 要做什么 由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。 只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复callee-saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。 你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。 对于调用者的处理 这里我们需要关注源文件backend/reg/bruteregalloc.py中的BruteRegAlloc类。 根据调用约定,调用其它函数后caller-saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前caller-saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如callee-saved寄存器或栈上。因此我们先将活跃且在caller-saved寄存器中的临时变量保存到栈上,这实际上让所有caller-saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。 保存活跃的临时变量:首先保存所有位于caller-saved寄存器中且活跃的临时变量,然后解除所有caller-saved寄存器与临时变量的绑定关系。你可以用subEmitter.emitStoreToStack和unbind来达到上述效果。 这是否意味着原本就在caller-saved寄存器中的参数也被丢到了栈上?似乎有些多余? 是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。 将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是caller-saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(Temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv ai, xj;如果vi的值不在物理寄存器中,调用emitLoadFromStack。(思考: 如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题? 你有更高效的解决方案吗?) 为什么有的临时变量可能在寄存器中? 因为我们在步骤1中只操作了caller-saved寄存器。如果某个临时变量存放在callee-saved寄存器中,那么它不会在上一步骤被放到栈上。 用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitLoadFromStack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitStoreToStack,我们需要手动生成一条NativeStoreWord指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。 进行真正的函数调用:可以使用emitNative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。 妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。 记录函数调用情况(可选):你也许需要在SubroutineEmitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。 对于被调用者的处理 这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的RiscvSubroutineEmitter类和backend/reg/bruteregalloc.py中的BruteRegAlloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。 处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitFunc函数中。框架的现有部分已经帮助大家处理好了callee-saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是callee-saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。) 处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。BruteRegAlloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind, unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。 一些可能带来困惑的地方 ra是一个caller-saved寄存器,但它有着和callee-saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它caller-saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个callee-saved寄存器。 你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。 思考题 你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用 vs 传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。 具体而言,某个“一整条函数调用”的中间表示大致如下: _T3 = CALL foo(_T2, _T1, _T0) 对应的“传参和调用分离”的中间表示类似于: PARAM _T2 PARAM _T1 PARAM _T0 _T3 = CALL foo 为何 RISC-V 标准调用约定中要引入 callee-saved 和 caller-saved 两类寄存器,而不是要求所有寄存器完全由 caller/callee 中的一方保存?为何保存返回地址的 ra 寄存器是 caller-saved 寄存器? 总结 到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。 "},"docs/step9/spec.html":{"url":"docs/step9/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step9 语法规范 灰色部分表示相对上一节的修改。 program : function* function : type Identifier '(' parameter_list ')' ( compound_statement | ';') type : 'int' parameter_list : (type Identifier (',' type Identifier)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' primary : Integer | '(' expression ')' | Identifier 我们暂不要求支持不包含函数体的函数声明。 step9 语义规范 9.1 在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。 9.2 在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。 在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。 9.3 函数是可以递归调用的。 9.4 (更新 5.10)执行一条 return 语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的 caller,语句中的表达式的值会返还给 caller 作为函数调用的表达式的值。一个函数可以有任意多条 return 语句。 9.5 函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。 例如,int f(int x) { int x; } 不合法,但 int f(int x) { { int x; } } 合法。 9.6 如果一个不是 main 的函数执行到了它的 },且其返回值被 caller 所使用,则这是一个未定义行为。 对于感兴趣的同学:C 语言中规定只有使用了返回值才是未定义行为,而 C++ 中规定不管返回值有没有被使用,都是未定义行为。 我们没有支持 void 类型,但可以忽略返回值达到类似的效果。 “执行到了 }” 意味着执行时没有通过 return 返回,例如 int f(){if(0) return 0;}。 实现的时候,你可以直接让所有函数都默认返回 0,语义规范说 main 之外的函数没有 return 是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回 0 当然也是可以的,而且更清晰简单。 "},"docs/step10/intro.html":{"url":"docs/step10/intro.html","title":"实验要求","keywords":"","body":"实验指导 step10:全局变量 step10 我们要支持的是全局变量,语法改动非常简单: program : (function | declaration)* 全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的 .bss 段或 .data 段里。 访问它也不能通过 fp 加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。 汇编课上应该讲过,实际中(包括 gcc 和 qemu)使用的可执行文件的格式是 ELF(Executable and Linking Format)。 .text 是其中存放代码的段(section),.bss 和 .data 都是其中存放数据的段,前者零初始化后者须指定初始值。 对有兴趣的同学: 全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。 简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。 当然,广义上的编译器就囊括了这所有阶段。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 10 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step10/example.html":{"url":"docs/step10/example.html","title":"通过例子学习","keywords":"","body":"step10 实验指导 本实验指导使用的例子为: int x = 2024; int main() { return x; } 词法语法分析 针对全局变量,我们需要新设计 AST 节点来表示它,只需修改根节点的孩子类型即可:原先表示整个 MiniDecaf 程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。 语义分析 本步骤引入全局变量,在引入全局变量之后,AST 根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历 AST 构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。 中间代码生成 经过 Step5 的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 LOAD T1, offset 临时变量 T1 中存储地址,加载与该地址相差 offset 个偏移的内存地址中的数据 LOAD_SYMBOL symbol symbol 为字符串,加载 symbol 符号所代表的地址 有了上述两条指令,可以将测试用例翻译如下: main: _T0 = LOAD_SYMBOL x _T1 = LOAD _T0, 0 return T1 需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。 请注意,翻译所得的 TAC 代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。 目标代码生成 Step10 中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。 翻译中间代码 实际上,我们提供的中间代码设计和 RISC-V 汇编的思想是一致的,RISC-V 汇编中有对应 LOAD 和 LOAD_SYMBOL 的指令,我们直接给出翻译结果: main: la t0, x # _T0 = LOAD_SYMBOL x lw t1, 0(t0) # _T1 = LOAD _T0, 0 mv a0, t1 ret 将全局变量放到特定的数据段中 到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的 x 变量符号究竟存在哪里,如果所生成的汇编程序不给出 x 的定义,程序是有bug的。实际上,RISC-V 提供了一系列的汇编指令,用以声明全局变量 x 所对应的数据段。 下面给出 RISC-V 用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可: .data .globl x x: .word 2024 上例中,.data 表示输出到 data 数据段;.globl x 声明 x 为全局符号;.word 后是一个 4 字节整数,是 x 符号对应的初始值。 按照汇编约定,data 段中存放已初始化的全局变量,未初始化的全局变量则存放在 bss 段中。举例而言,下面的示例将未初始化的全局变量 x 存放到 bss 段中。其中,.space 表示预留一块连续的内存,4 表示存储空间大小为 4 字节。 .bss .globl x x: .space 4 思考题 写出 la v0, a 这一 RiscV 伪指令可能会被转换成哪些 RiscV 指令的组合(说出两种可能即可)。 参考的 RiscV 指令链接:https://github.com/TheThirdOne/rars/wiki/Supported-Instructions "},"docs/step10/spec.html":{"url":"docs/step10/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step10 语法规范 灰色部分表示相对上一节的修改。 program : (function | declaration)* function : type Identifier '(' parameter_list ')' ( compound_statement | ; ) type : 'int' parameter_list : (type Identifier (',' type Identifier)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' primary : Integer | '(' expression ')' | Identifier step10 语义规范 10.1 对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如 2123),对初始化表达式是非字面量的情况不做任何要求(例如 a 或 f() 或 2+3)。 C 其实也支持非字面量的编译期常量,例如 int a=1+3;。编译器可以计算出 1+3==4 然后让它等价于 int a=4;。 但为了实现简便,我们就不要求支持这点。 C 不允许 int a=f(); 因为 f() 不是编译器常量; 而 C++ 甚至可以支持 int a=f();,其大致实现为 int a=0; 然后在 main 之前执行的初始化函数中 a=f();。 10.2 我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。 int a; int a=2; int a; int main(){ return a;} 是合法的 C 代码,不过不是合法的 C++ 代码,也许 C++ 的处理方式更符合你的直觉。 为了简单,我们不要求这点。比如对于形如 int a; int a=2; 或 int a; int a; 的代码片段,你可以以任意方式处理。 10.3 如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值 0。 "},"docs/step11/intro.html":{"url":"docs/step11/intro.html","title":"实验要求","keywords":"","body":"实验指导 step11:数组 step11 的目标是支持数组: 语法上没有太大改动, 数组的初始化: declaration : type Identifier ('[' Integer ']')* ('=' expression)? ';' 数组的下标操作 postfix : primary | Identifier '(' expression_list ')' | postfix '[' expression ']' step11 难度不大,但有了数组让我们能够写很多有意思的程序了,step11 之前甚至 MiniDecaf 连快速排序都写不了。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 11 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step11/example.html":{"url":"docs/step11/example.html","title":"通过例子学习","keywords":"","body":"step11 实验指导 本实验指导使用的例子为: int x[10]; int main() { int y[10]; return 0; } 词法语法分析 针对数组,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 IndexExpr 索引基底 base,索引下标 index 索引运算 语义分析 由于 step 11 里引入了数组,现在我们的变量类型不只是 int 型了,还包括 int 型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。 注意:引入数组后,左值不再一定是 identifier 了,还有可能是如 a[0][1] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。 frontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。 有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。 中间代码生成 数组和普通变量类似,可以分为局部数组和全局数组。 全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1. 需要申请更大的 bss 段内存)。 针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令 ALLOC 用于分配内存空间: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 ALLOC size 分配 size 字节的内存,并返回内存首地址 采用 ALLOC 指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分): main: T0 = ALLOC 40 # 一个 int 类型为 4 个字节 T1 = 0 return T1 通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。 除了分配数组,我们还需要考虑如何访问数组元素。通过 ALLOC 指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用 Step10 中引入的 LOAD 指令来实现,我们还需要引入一条类似的 STORE 指令将值写入数组元素。 那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int 型的大小为 4 个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组 a[d1][d2]...[dn],访问元素 a[i1][i2]...[in] 可以等价于访问 a[i1d2d3...dn + i2d3...*dn + ... + in]。在将数组索引翻译成 TAC 时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。 目标代码生成 同中间代码生成,全局数组自行思考实现。 对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,Step5 栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针 sp 进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。 思考题 C 语言规范规定,允许局部变量是可变长度的数组(Variable Length Array,VLA),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似 int n = 5; int a[n]; 这种,但仍然不允许类似 int n = ...; int m = ...; int a[n][m]; 这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动? 提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。 你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。 "},"docs/step11/spec.html":{"url":"docs/step11/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step11 语法规范 灰色部分表示相对上一节的修改。 program : (function | declaration)* function : type Identifier '(' parameter_list ')' ( compound_statement | ; ) type : 'int' parameter_list : (type Identifier (',' type Identifier)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('[' Integer ']')* ('=' expression)? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | unary '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' | postfix '[' expression ']' primary : Integer | '(' expression ')' | Identifier step11 语义规范 11.1 一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。 11.2 我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。 所以,我们不要求支持变长数组 int a[n]; 或不定长数组 int a[];。 11.3 对于下标运算 a[b],要求 a 是一个数组类型,b 是一个整数类型,a[b] 是 a 中的第 b 个元素(从 0 开始计数)。 11.4 下标运算越界是未定义行为。 即便是类似 int a[4][5]; a[1][7] 这种,同样也是未定义行为。 "},"docs/step12/intro.html":{"url":"docs/step12/intro.html","title":"实验要求","keywords":"","body":"实验指导 step12:为数组添加更多支持 step12 的目标是支持数组的初始化和传参: 语法上没有太大改动, 数组的初始化: declaration : type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';' 数组的传参: function : type Identifier '(' parameter_list ')' (compound_statement | ';') parameter_list : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)? 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 12 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step12/example.html":{"url":"docs/step12/example.html","title":"通过例子学习","keywords":"","body":"step12 实验指导 本实验指导使用的例子为: int func(int param[]){ param[0] = 1; return 0; } int main() { int arr[4] = {1,2}; func(arr); return arr[0] + arr[1] + arr[2]; } 词法语法分析 我们需要增加一个数组的初始化列表,可以直接修改上一节数组的AST结点增加一个数组用于记录初始化元素。 函数的参数列表需要加上数组类型。 语义分析 由于 step 12 里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。 int fun(int a[][12]){ a[0][1] = 1; return 0; } 中间代码生成 在C语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。 而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为 0。例如: int arr[3]={1,2}; // 等价于 int arr[3]={1,2,0}; 当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个 memset 这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。 // fill_n 函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位) int fill_n(int *dst, int res, int cnt); 因此,上述初始化可以等价地转化为: int arr[3]; fill_n(arr, 0, 3); a[0] = 1; a[1] = 2; 目标代码生成 数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。 思考题 作为函数参数的数组类型第一维可以为空。事实上,在 C/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计? 总结 恭喜你实现了 MiniDecaf 语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。 "},"docs/step12/spec.html":{"url":"docs/step12/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step12 语法规范 灰色部分表示相对上一节的修改。 program : (function | declaration)* function : type Identifier '(' parameter_list ')' ( compound_statement | ; ) type : 'int' parameter_list : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' | type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | unary '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' | postfix '[' expression ']' primary : Integer | '(' expression ')' | Identifier step12 语义规范 12.1 多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号 int a[2][2] = {1, 2, 3, 4}; 会将数组变为 a[0][0] = 1; a[0][1] = 2; a[1][0] = 3; a[1][1] = 4; 12.2 数组传参是支持不定长度的 int fun(int a[]) 是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题 "},"docs/step13/readme.html":{"url":"docs/step13/readme.html","title":"选做二说明","keywords":"","body":"选做实验二说明 选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个Step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。 "},"docs/step13/intro.html":{"url":"docs/step13/intro.html","title":"实验要求","keywords":"","body":"实验指导 step13:寄存器分配算法改进 step13 的目标是实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法,并以此代替 step5 中提到的当前代码框架中的分配算法。 语法上没有改动。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 7 的实验报告需要放在 stage-7 这个 branch 下的 ./reports/stage-7.pdf。整个 stage 7 只需要提交一份报告。 你需要: 改进你的编译器,支持上面提到的寄存器分配算法。 除了替换位于 backend/reg/bruteregalloc.py 的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看 step 6 的数据流分析一节。 你需要为代码添加合理的注释以便批阅。 你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 详细说明你的代码的运行逻辑 举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的? 对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step13/example.html":{"url":"docs/step13/example.html","title":"实验指导","keywords":"","body":"step13 实验指导 本节实验要求实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。 下面简要介绍一些你可能需要的预备知识。 回顾:启发式寄存器分配算法 在step 6 的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。 而在step5 中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下: 首先检查是否存在空闲的寄存器,有则直接分配给当前变量。 否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。 否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。 基于图染色的寄存器分配算法 我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。 重用一下 step 6 中活跃变量的例子: TAC 代码 活跃变量集合 相干寄存器 _T0 = 4 {_T0} _T1 = 3 {_T0, _T1} (_T0,_T1) _T2 = _T0 * _T1 {_T0} _T3 = _T0 * _T0 {_T0, _T3} (_T0,_T3) _T2 = _T3 * _T3 {_T0, _T2, _T3} (_T0,_T2),(_T0, _T3),(_T2, _T3) _T2 = _T0 * _T2 {_T2, _T3} (_T2,_T3) _T1 = _T2 * _T3 {_T1} return _T1 {} 这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配? 容易发现,至少需要3个寄存器。因为 _T0,_T2,_T3 相互冲突,需要各一个寄存器,而 _T1 可以跟 _T2 或者 _T3 共用寄存器。 这个思路相比代码框架中的启发式寄存器分配算法有以下好处: 尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的 callee save/caller save 寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。 方便全局优化寄存器分配,减少基本块之间的 move 指令。 事实上,我们可以用图染色问题去描述“相互冲突的变量”: 图染色问题:有 n 个结点,m 条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。 寄存器分配问题:有 n 个变量,m 组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。 上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。 如何找到所有冲突的变量 这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。 如何解决寄存器分配对应的图染色问题 假定我们有 k 种颜色可用于染色(对应 k 个寄存器可用于存放变量),那么可以依照下面的顺序执行 寻找图中是否有连接了少于 k 条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于 k 条边的结点。 如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少 k 条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。 按删除的逆序恢复所有结点。 当恢复一个从步骤1删除的结点时,因为当前它连接了少于 k 条边,所以我们总能为它指定一个颜色,使之不和相邻的最多 k-1 个点的颜色冲突。 当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有 k 种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。 将每种颜色对应到寄存器上,生成后端代码。 基于复制指令的寄存器合并 在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copy instructions)(其实就是赋值)传值的寄存器。 例如下面的代码 int f() { int a = 1; int b = a; int c = a + 2; int d = b + 3; return a + b + c + d; } 用上面提过的活跃变量分析可以算出,在 c = a + 2 执行时 a 和 b 都是活跃变量。但观察代码可以发现 a b 事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。 这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。 可以直接合并这两个点吗? 可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的 Chaitin 的解决方案。 可以在保证合并后边数 的情况下合并这两个点吗? 可以,但这样合并的点数比较少,优化效果差。这实际上是更早的 Briggs 的解决方案。 可以不合并但强制这两个点同色吗? 不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把 b,f涂成相同颜色。这样就会导致 j 的颜色和 b 相同,从而意外地和 f 相同,导致溢出到内存。 这篇实验要求实现的论文的解决方案 把图中当前所有结点中,连接了至少 k 条边的结点标记为 significant-degree 的。看上述图染色算法流程,可以发现如果一个点不是 significant-degree 的,它会在步骤1被删除。 对于仅因复制指令相互冲突的一对点 (a,b),可以如此检查它们是否可以合并: 统计与 a 或者 b有边相连的所有结点中有多少个 significant-degree 点。如果有 个,说明最多有 k-1 个结点不会在在步骤1被删除,因此如果 a b 合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的 a 和 b 一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。 如果不能合并,那么把 a 和 b 中间的虚线边改为实线,表示不再考虑二者合并的情况。 上面的说明只是简要介绍了算法的原理,请阅读论文 TOPLAS'1996: Iterated Register Coalescing 获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。 "},"docs/contest/intro.html":{"url":"docs/contest/intro.html","title":"大实验简介","keywords":"","body":"大实验参考文档 注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。 介绍 大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。 参加大实验的同学应该需要自己从头设计一个符合 minidecaf 规范 的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。 有两个原因我们要求同学们从头设计一个编译器: 为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:IR 的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。 大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。 大实验在 2024 年相对于 2023 年有一些变化,主要体现在: 增加了实验文档 语法要求从 Sysy 语法改为了 MiniDecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低 不再要求完成基础实验以后再进行大实验 大实验的语法规范与 step12 的规范是一致的。不过有一点需要注意: 我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的 RiscV 调用约定。 你可以选择 C++,Rust 实现你的编译器,你的编译器生成的目标代码可以是 RISC-V 或者 ARM 架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。 大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。 注意:大实验工作量较大,并不推荐所有同学都参加。 编译器的构成 一个编译器主要由以下几个部分构成: 前端:负责词法分析、语法分析、语义分析,生成抽象语法树(AST)。 词法分析器(Lexer):将输入的源代码转换为一个个的标记(Token)。 语法分析器(Parser):将标记(Token)转换为抽象语法树(AST)。 语义分析器(Semantic Analyzer):检查AST是否符合语法规则和语义规则。 中端:负责中间代码生成、优化。 中间代码生成器(Intermediate Representation Generator):将 AST 转换为中间代码。 优化器(Optimizer):对中间代码进行优化。 后端:负责目标代码生成。 目标代码生成器(Target Code Generator):将优化后的中间代码转换为目标机器代码。 寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。 可以通过后续的文档了解每个部分的更多细节。 参考实现进度及顺序 编写前端、设计 IR、完成中间代码生成 (两周) 前端:你可以使用现有的框架完成前端(如:Antlr、Flex & Bison)辅助你生成 AST,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现 LR(1)、LL(1) 等分析器。 设计 IR 也是需要进行代码编写的,可以参考基础实验框架的IR在代码层面是如何实现的(utils/tac)。 中间代码生成:将 AST 转换为 IR,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。 此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。 完成后端(两周) 实现后端代码生成、栈帧管理 实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。 增加中端优化和后端优化(剩下的时间) 中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等 后端优化:图染色寄存器分配、线性扫描法、指令折叠等等 分工建议:两位同学负责中端优化,两位同学负责后端优化。 进度检查 第一次进度检查:第六周周六(10.19) 你的编译器应该能完成将简单的程序转换为 RISC-V 汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)Stage 3 截止之前完成 Stage 1-3 的实验,不会有额外扣分。 第二次进度检查(中期检查):第八周周六(11.2) 这时候你的编译器应该能通过基础实验的所有测试样例(Stage 1-5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)Stage 4 截止前完成 Stage 1-4 ,不额外扣分。也可以继续大实验不做基础实验,但是至少要在 Stage-5 让你的编译器能够通过 Stage 1-5 的测试样例。 你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评 5%)) 第三次进度检查:第十二周周六(11.23) 你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除 5 分(总评 5%)) 第四次进度检查(期末检查):第十六周周末(12.29) 你的编译器应该能通过所有的测试样例(Stage 1-6),包括附加测试样例。 你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩) 评分方法 因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案: 选项一 完成竞赛第二阶段的优化编译器,替代期末考试 成绩占比 90%,剩余 10% 为书面作业和日常成绩。 其中这90%构成为: 50% 正确性测试:你需要通过 Stage 1-6 的所有测试样例以及附加测试的测试样例,这样你可以获得 50% 的正确性得分。 10% 报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。 30% 性能测试,将根据你的编译器的性能进行评分。 性能评分方案: 附加测试中performance部分测试样例,以 gcc 打开-O2优化的性能的 60% 为满分,按照比例折算。如果一个程序 gcc 编译后运行时间为 12s ,如果你的程序执行时间为 20s 即为满分。 你的单个测试点的得分为: min{100, 100 * GCC编译程序运行时间 * 1.67 / 你的程序运行时间} 所有测试点取算数平均值,最后结果 * 30% 作为你的最终性能测试成绩。 评测将会在我们提供的服务器上进行,通过 QEMU 模拟 RISC-V 或者 ARM 架构的 CPU 运行你的程序。经过测试 QEMU与 真实硬件的性能相对差值是比较恒定的(如比较 gcc -O1与-O2)。 实验评测仓库在这里。 你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。 选项二 仅完成竞赛第一阶段(达到课程基础实验的要求) 实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个 step 的。根据通过测试样例情况评分。 完成 Stage 1 - 5 实验成绩 35% ,书面作业和日常成绩 10% ,期末成绩 55%。 完成 Stage 1 - 6 实验成绩 42% ,书面作业和日常成绩 10% ,期末成绩 48%。 完成 Stage 1 - 7 实验成绩 50% ,书面作业和日常成绩 10% ,期末成绩 40%。 "},"docs/contest/frontend.html":{"url":"docs/contest/frontend.html","title":"前端设计","keywords":"","body":"前端梗概 前端的主要任务是将源代码转换为抽象语法树(Abstract Syntax Tree, AST),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。 词法分析与语法分析 词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。 下面我们以 Antlr 框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如 Flex & Bison, lex & yacc 等。 Antlr简介 Antlr (Another Tool for Language Recognition) 是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。Antlr 支持多种语言,包括 Java、Python 和 C++。通过定义语法文件(.g4 文件),Antlr 能够帮助我们生成解析源代码所需的词法分析和语法分析工具。 在这个项目中,我们推荐使用 Antlr 来处理 MiniDecaf 的词法分析和语法分析部分。 第一部分:依赖环境准备 ANTLR 工具需要 JVM 才能执行。 直接使用包管理器安装: sudo apt install openjdk-19-jdk 1. 获取 ANTLR 你需要从 ANTLR Download 下载 antlr-4.13.2-complete.jar(截至文档写作时此为最新版)。 使用以下命令(记得把/path/to/antlr-4.13.2-complete.jar替换成你的 antlr 路径)测试是否能正常使用: java -jar /path/to/antlr-4.13.2-complete.jar 你应该能看到类似以下的输出: ANTLR Parser Generator Version 4.13.2 -o ___ specify output directory where all output is generated -lib ___ specify location of grammars, tokens files -atn generate rule augmented transition network diagrams -encoding ___ specify grammar file encoding; e.g., euc-jp ... ... 3. ANTLR 运行时的编译链接 1. 安装 ANTLR 运行时库 ANTLR 运行时库是解析器生成的代码在运行时所依赖的代码。对于 C++,你可以从 ANTLR4 runtime Cpp的 GitHub 仓库下载预编译的库或者自己编译安装。但是官方的 CMAKE 脚本会从官方 git 仓库下载 ANTLR C++ 运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接 clone ANTLR 运行时库的 C++ 源代码到你的代码仓库里,并为你的整个项目编写一个 CMAKE 文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与CMAKE文件实例. 项目结构 example-tree/ ├── 3rd_party/ │ └── antlr4-runtime/ # 第三方库 ANTLR 运行时目录(在源码的 src 目录下) │ ├── CMakeLists.txt # antlr4-runtime 的 CMake 配置文件,需要你手动添加一个 │ └── antlr4-runtime.h │ └── antlr4-common.h │ └── ... ├── CMakeLists.txt # 根目录下的 CMake 配置文件 └── src/ # 源代码目录 ├── frontend/ # 前端代码目录 │ ├── lexer/ # 词法分析相关代码 │ │ └── *.cpp # 词法分析器源文件 │ │ └── *.h # 词法分析器头文件 │ ├── parser/ # 语法分析相关代码 │ │ └── *.cpp # 语法分析器源文件 │ │ └── *.h # 语法分析器头文件 │ └── ast/ # 抽象语法树相关代码 │ ├── *.cpp # AST 源文件 │ ├── *.h # AST 头文件 ├── backend/ # 后端代码目录 ├── midend/ # 中间代码目录 └── main.cpp # 程序入口文件 对应的 CMakeLists.txt # 指定 CMake 的最小版本要求 cmake_minimum_required(VERSION 3.10) # 设置项目名称和使用的语言(CXX 代表 C++) project(my_compiler CXX) # 设置 C++ 标准为 C++17 set(CMAKE_CXX_STANDARD 17) # 设置 C++ 编译器标志,这里没有额外添加,使用默认 set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS}\") # 设置调试模式下的编译器标志,开启 DEBUG 宏 set(CMAKE_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG\") # 使用 GLOB_RECURSE 模式递归查找 src 目录下所有的 .cpp 文件 file(GLOB_RECURSE SRC \"src/*.cpp\") # 添加项目的 src 目录到头文件搜索路径 include_directories(src) # 添加第三方库目录 antlr4-runtime 到头文件搜索路径 include_directories(3rd_party/antlr4-runtime) # 添加 antlr4-runtime 子目录作为子项目进行构建 add_subdirectory(3rd_party/antlr4-runtime) # 创建名为 my_compiler 的可执行文件,将所有源文件编译链接到这个可执行文件中 add_executable(my_compiler ${SRC}) # 将 antlr4_runtime 库与 my_compiler 可执行文件链接 target_link_libraries(my_compiler antlr4_runtime) 为 antlr4-runtime 添加一个相应的 CMakeLists.txt # 3rd_party/antlr4-runtime/CMakeLists.txt file(GLOB_RECURSE ANTLR4_SRC \"*.cpp\") add_library(antlr4_runtime STATIC ${ANTLR4_SRC}) 第二部分:文法文件的编写与 parse tree 的生成 终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的 C 语言子集 simpleC 的文法文件 simpleC.g4,并利用它生成一个 parse tree。最终把一个简单的 C 语言程序 test.c 转换为一个 parse tree。 test.c int main(){ int a = 1 ; int b = a + 2 ; int c = a + b + 1 ; return c ; } parse tree parse tree: (program (funcDeclaration int main ( ) { (statements (statement int a = (expression 1) ;) (statement int b = (expression (expression a) + (expression 2)) ;) (statement int c = (expression (expression (expression a) + (expression b)) + (expression 1)) ;) (statement return (expression c) ;)) })) 1. 编写simpleC.g4 .g4 文件是 ANTLR 使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的 .g4 文件包含以下几个部分: 语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为 ANTLR 是对大小写敏感的) 规则:定义语言中各种结构的模式。 词法规则:定义词法单元(如关键字、标识符、符号等)。 忽略规则:通常用来忽略空格、换行等空白字符。 操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。 示例 .g4 文件结构 // 文件名: SimpleC.g4 grammar SimpleC; // 语法定义 // 程序的起始规则 program: funcDeclaration ; // 函数声明规则 funcDeclaration: Type ID LP RP LC statements RC ; // 语句的规则 statements: statement* ; // 声明和表达式 statement: Type ID ASSIGN expression SEMI // varDeclaration | expression SEMI | 'return' expression SEMI ; // 表达式的规则 expression: expression PLUS expression // AddExpr | expression MINUS expression // SubExpr | expression MUL expression // MulExpr | expression DIV expression // DivExpr | '(' expression ')' // ParenExpr | INT // IntExpr | ID // ID ; // 类型的规则(这里只支持 int 类型) Type: 'int' ; // 整数的规则 INT: [0-9]+ ; // 标识符的规则 ID: [a-zA-Z_] [a-zA-Z0-9_]* ; // 忽略空格和换行 WS: [ \\t\\r\\n]+ -> skip ; // 定义括号和符号 LP: '(' ; RP: ')' ; LC: '{' ; RC: '}' ; SEMI: ';' ; ASSIGN: '=' ; PLUS: '+' ; MINUS: '-' ; MUL: '*' ; DIV: '/' ; 通过编写 .g4 文件,我们能够为 ANTLR 提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。 2. 使用文法文件生成 lexer & parser 在确认环境配置无误后,我们可以使用 ANTLR 和文法文件生成所需的 lexer & parser,只需要执行 java -jar /path/to/antlr-4.13.2-complete.jar -Dlanguage=Cpp -no-listener -visitor -o src/frontend/lexer_parser simpleC.g4 -no-listener 和 -visitor 选项分别用于禁止生成 listener(默认是激活的)和激活 visitor 模式。如果你还不知道 visitor 是什么,不用担心,我们稍后会看到。 -o 选项用于设置输出目录。我们将在 src/frontend/lexer_parser 目录中输出生成的代码。 3. 使用 lexer & parser 现在我们可以看到如何在 C++ 程序中使用我们生成的解析器。 // src/main.cpp #include \"antlr4-runtime.h\" #include \"frontend/lexer/SimpleCBaseVisitor.h\" #include \"frontend/lexer/SimpleCLexer.h\" #include \"frontend/lexer/SimpleCParser.h\" #include #include using namespace antlr4; using namespace tree; using namespace std; int main(int argc, const char* argv[]) { ifstream f_stream; f_stream.open(argv[1]); ANTLRInputStream input(f_stream); SimpleCLexer lexer(&input); CommonTokenStream tokens(&lexer); SimpleCParser parser(&tokens); ParseTree* tree = parser.program(); cout toStringTree(&parser, true) 这是我们程序的主文件,展示了如何在 C++ 中设置使用 ANTLR。前几行(3-5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。 16-21 行展示了使用 ANTLR 解析器的标准方式: 我们将输入转换为 ANTLR 格式 我们创建一个在该输入上工作的词法分析器 我们使用词法分析器产生一个 token 流 我们创建一个在令牌流上工作的解析器 然后,21 行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。 现在,使用 cmake 构建并运行我们自己实现的编译器,你将会看到 test.c 对应的 parse tree 被输出到终端中。 ./my_compiler test.c 总的来说,我们现在利用 ANTLR 实现了词法分析器分析输入(即字符)并产生 token,然后解析器分析 token 以产生 parser tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用 visitor 模式遍历这个树并对这个树的每个节点进行一些操作。 第三部分:AST 的生成 在生成 AST 时,我们通常是在解析树(parse tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(AST)。AST 的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。 1. 定义 AST 结点 首先,我们需要为 AST 定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的 If 语句结点的定义: class IfNode : public ASTNode { public: std::unique_ptr cond; // 条件表达式 std::unique_ptr then; // then 语句块 std::unique_ptr other; // optional 的 else 语句块 bool has_otherwise; IfNode(std::unique_ptr cond, std::unique_ptr then, std::unique_ptr other = nullptr) : cond(std::move(cond)), then(std::move(then)), other(std::move(other)), has_otherwise(other != nullptr) {} }; 这个 IfNode 结点包含条件表达式cond、then 语句块和可选的 else 语句块。 2. 使用 Visitor 模式生成 AST 在生成 AST 时,我们需要遍历解析树(parse tree)并根据其结构生成对应的 AST 结点。这里我们可以使用 Visitor 模式,针对解析树的不同节点调用对应的处理函数,来生成合适的 AST 结点。 假设我们有一个解析树 IfContext,对应的语法规则如下: ifStatement : 'if' '(' expr ')' statement ('else' statement)? ; 我们可以继承 ANTLR 自动生成的 BaseVisitor 函数,为 IfContext 实现 Visitor 函数,以生成 IfNode: class ASTBuilderVisitor : public SimpleCBaseVisitor> { public: // 访问 ifStatement 节点 std::unique_ptr visitIfStatement(SimpleCParser::IfStatementContext *ctx) override { // 访问并生成条件表达式的 AST 结点 auto cond = visit(ctx->expr()); // 访问并生成 then 语句的 AST 结点 auto thenBranch = visit(ctx->statement(0)); // 检查是否有 else 分支,并生成对应的 AST 结点 std::unique_ptr elseBranch = nullptr; if (ctx->statement(1)) { elseBranch = visit(ctx->statement(1)); } // 构建 IfNode,并返回 return std::make_unique(std::move(cond), std::move(thenBranch), std::move(elseBranch)); } }; 这个 ASTBuilderVisitor 类的 visitIfStatement 方法遍历解析树中的 ifStatement 结点,生成 IfNode 并填充其条件表达式、then 和 else 分支。通过 Visitor 模式,代码变得结构清晰且便于扩展。 生成 AST 的完整流程 编写 Antlr 语法文件,定义源语言的解析规则。 使用 Antlr 生成词法分析器和语法分析器,解析源代码生成解析树。 实现 Visitor 模式的遍历代码,逐个解析树结点处理并生成 AST 结点。 利用 AST 结点构建抽象语法树,最终生成中间表示或目标代码。 通过这种方式,我们能够将解析树转换为精简的抽象语法树(AST),为后续的中端和后端处理提供基础。 第四部分:语义分析 语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出 MiniDecaf 的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。 符号解析(namer) 符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(AST),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。 符号表 符号解析的核心工具是符号表(symbol table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。 class SymbolTable { public: std::unordered_map> table; std::shared_ptr parent; // 指向父作用域的符号表 SymbolTable(std::shared_ptr parent = nullptr) : parent(parent) {} // 在当前作用域查找符号 std::shared_ptr lookup(const std::string &name){ //··· } // 向符号表中插入新的符号 void insert(const std::string &name, std::shared_ptr symbol) { //··· } }; 在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。 作用域管理 符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。 class SemanticAnalyzer { public: std::shared_ptr currentScope; void enterScope() { currentScope = std::make_shared(currentScope); } void exitScope() { currentScope = currentScope->parent; } void declareVariable(const std::string &name, const std::shared_ptr &symbol) { currentScope->insert(name, symbol); } std::shared_ptr resolveVariable(const std::string &name) { return currentScope->lookup(name); } }; 通过 enterScope() 和 exitScope() 来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。 类型检查(typer) 类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。 类型系统 编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。 以下是一个简单的类型检查器示例: class TypeCheckerVisitor : public ASTVisitor { public: std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override { auto leftType = visit(node->left); // 检查左操作数的类型 auto rightType = visit(node->right); // 检查右操作数的类型 // 检查操作数的类型是否匹配 if (!leftType->equals(rightType)) { throw std::runtime_error(\"Type mismatch in binary expression.\"); } // 返回表达式的类型 return leftType; } std::shared_ptr visitVariableDecl(VariableDeclNode *node) override { // 检查变量声明的类型是否正确 auto varType = node->type; if (!isValidType(varType)) { throw std::runtime_error(\"Invalid type for variable.\"); } return varType; } // 其他类型检查逻辑... }; 在该类型检查器中,我们遍历 AST 中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。 类型转换 由于 MiniDecaf 只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。 类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。 class TypeCheckerVisitor : public ASTVisitor { public: std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override { auto leftType = visit(node->left); auto rightType = visit(node->right); // 进行隐式类型转换 if (leftType->isInteger() && rightType->isFloat()) { leftType = floatType(); // 将整数提升为浮点数 } else if (leftType->isFloat() && rightType->isInteger()) { rightType = floatType(); } if (!leftType->equals(rightType)) { throw std::runtime_error(\"Type mismatch in binary expression.\"); } return leftType; } }; 通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。 预期目标 完成符号解析和类型检查后,编译器应该能够: 通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用; 检查所有的操作数和运算符的类型是否匹配; 报告语义错误,如未定义的符号、类型不匹配等。 通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。 前端参考资料 Antlr 官方文档 MiniDecaf 教程 编译原理经典书籍 Dragon Book 前端预期目标 完成这部分内容后,你的编译器应该能够通过 Antlr 生成词法分析器和语法分析器,能够将 MiniDecaf 程序解析为抽象语法树(AST),并完成对 MiniDecaf 程序的语义分析。 "},"docs/contest/midend/midend.html":{"url":"docs/contest/midend/midend.html","title":"中端设计","keywords":"","body":"中端介绍 中端的设计包括:中间表示的设计、中端代码生成和中端优化。 中间表示 前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(Intermediate Representation, IR)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的AST转换为中端代码。 什么是中间表示? 中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。 由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下: 缩小调试范围,通过把 AST 到汇编的步骤一分为二。如果目标代码有误,通过检查 IR 是否正确就可以知道:是AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。 适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。 便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。 例如以下是一个IR代码的例子: _main: _T1 = 0 _T2 = 100 _T3 = 0 _L0: _T4 = _T1 从这个IR例子中,我们可以看到,相对于c语言,IR中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在IR中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,IR中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。 我们将在中间表示设计中介绍IR设计时候需要考虑的地方和并列举一些实例。 中间代码生成 前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。 如以下是一个简单的例子: int main(){ int a = 2; int b = 0; if(a) b = 1; else b = -1; return b; } 生成的AST可能如下: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(2) |- (children[1]) VarDecl |- (type) TInt |- (ident) Identifier(\"b\") |- (init) IntLiteral(0) |- (children[2]) If |- (cond) Identifier(\"a\") |- (children[0]) Assign |- (lhs) Identifier(\"b\") |- (rhs) IntLiteral(1) |- (children[1]) Assign |- (lhs) Identifier(\"b\") |- (rhs) UnaryOp(NEG) |- (expr) IntLiteral(1) |- (children[3]) Return |- (expr) Identifier(\"b\") 你需要通过遍历AST的节点来将其转换为IR。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。 例如上述代码转化为IR后可能如下: _main: _T0 = 2 # 代表a = 2 _T1 = 0 # 代表b = 0 bnez _T0, _L0, _L1 # 如果a != 0,跳转到_L0,否则跳转到_L1 _L0: _T2 = 1 # 代表b = 1 jump _L2 # 跳转到_L2,跳过else块 _L1: _T2 = -1 # 代表b = -1 jump _L2 # 跳转到_L2 _L2: ret _T2 我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。 中端优化 中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。 一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的 IR 代码: _T1 = 5 _T2 = _T1 + 6 _T3 = _T2 + 7 _T4 = _T3 + 8 _T5 = _T4 + 9 ret _T5 经过常量传播优化后,可以得到: _T1 = 5 _T2 = 11 _T3 = 18 _T4 = 26 _T5 = 35 ret _T5 进一步如果我们进行死代码消除,可以得到: 死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。 _T5 = 35 ret _T5 中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。 我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如Use-Def链、Def-Use链、可达定义分析等。 我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。 中端参考资料 本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。 GCM & GVM Engineering A Compiler LLVM IR SSA book 预期目标 完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。 "},"docs/contest/midend/ir.html":{"url":"docs/contest/midend/ir.html","title":"中间表示设计","keywords":"","body":"中间表示设计 这里我们以一种经典 IR —— 三地址码为例,介绍中间表示的设计。 三地址码 三地址码(Three Address Code, TAC)是一种经典的 IR 设计,TAC 看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是 “虚拟寄存器” (也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。 main: # main 函数入口标签 _T0 = 1 # 加载立即数 _T1 = _T0 # 临时变量赋值操作 _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1 _T3 = NEG _T0 # 取负操作 _T3 = -_T0 return _T2 # 函数返回 以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。下面是另一个IR输出格式的例子: i32 main() { _B0: i32 _T0 = 1 i32 _T1 = _T0 i32 _T2 = _T0 + _T1 i32 _T3 = -_T0 return i32 _T2 } 你会发现,这种IR输出格式包含了一些类型信息,也更加易读。 TAC 指令与汇编指令比较类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。 我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句? 算术语句:这是计算机最基础的语义。 二元运算(如加、减、乘、除) 形式:dst = op src1, src2 示例:_T2 = ADD _T0, _T1 一元运算(如取负、取位反) 形式:dst = op src 示例:_T3 = NEG _T0 跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。 条件跳转语句 形式:branch cond, label1, label2 示例:branch _T0, _L1, _L2 无条件跳转语句 形式:jump label 示例:jump _L0 函数调用语句 形式:dst = call (func_name, arg1, arg2, ...) 示例:_T2 = call (foo, _T0, _T1) 赋值语句 形式:dst = src 示例:_T2 = _T0 访存语句 加载操作:dst = load addr, offset 示例:_T2 = load _T0, 0 存储操作:store src, addr, offset 示例:store _T0, _T1, 0 内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的 malloc 不同,主要用于在栈上分配内存) 形式:dst = alloc size 示例:_T2 = alloc 40 返回语句 形式:return src 示例:return _T0 有了这些语句以后,我们的IR就可以描述源程序的语义了。 内存数据结构 中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。 我们可以为所有指令定义一个基类 Instruction,然后根据不同的指令类型定义不同的子类。 struct Instruction { Type type; }; 下面以二元运算指令为例,展示如何定义一个具体的指令类。 二元运算需要两个操作数,并且会产生一个计算结果。 而操作数可能是一个立即数,也可能是一个变量。例如以下的情况: _T2 = ADD _T0, _T1 _T3 = ADD _T0, 2 因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体: struct Operand { union{ int value; int reg_id; }; bool is_reg; ... ... }; 我们使用一个 union 来存储操作数的值或者寄存器编号,使用一个 bool 来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要 is_reg 这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。 有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中Opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器: enum Opcode { ADD, SUB, MUL, DIV }; struct Binary : public Instruction { Opcode opcode; // 操作码 Operand src1; // 操作数一 Operand src2; // 操作数二 Operand dst; // 目标寄存器 }; 一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。 跳转语句应该怎么定义?这里我们需要引入基本块的概念。 在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体: struct BasicBlock { std::vector instructions; std::string label; }; 基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可: struct Jump : public Instruction { BasicBlock *target; // 跳转目标 }; 我们是以函数为单位来组织基本块的,函数定义为如下的结构体: struct Function { std::string name; std::vector blocks; }; 整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体: struct Program { std::vector functions; std::vector globals; }; 你会发现,我们的程序组织成了一个树状结构,即 Program 包含多个 Function,每个 Function 包含多个 BasicBlock,每个 BasicBlock 包含多条 Instruction。 一些tips: 你可以在Instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将 Binary 和 Unary 都继承自 Arithmetic,将 Jump 继承自 ControlFlow, Arithmetic 和 ControlFlow 都继承自 Instruction。 你可以在Instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。 你完全可以不按照我们给出的这些结构来设计你的 IR,这里有一些参考: 北大编译实验Koopa IR LLVM IR 静态单赋值(SSA) 进一步地,你可以实现符合静态单赋值要求的 IR ,静态单赋值的 IR 在编译器中有着广泛的应用,比如 LLVM 的 IR 就是一种静态单赋值的 IR。在静态单赋值的 IR 中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。 "},"docs/contest/midend/irgen.html":{"url":"docs/contest/midend/irgen.html","title":"中间代码生成","keywords":"","body":"中间代码生成 介绍 前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用 Alloca、Load、Store 指令来简单地实现 SSA 形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是SSA)。 部分处理思路 整体思路是通过遍历AST的节点,根据节点类型进行相应的处理。推荐先根据AST的遍历顺序写一个框架,再填充具体的处理逻辑。 由于每个组的AST和IR设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。 注意: 本部分仅供参考,你需要根据自己设计的AST和IR进行调整。 在遍历AST的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到IR的Data对象的映射表等。 program 对于program节点,先新建一个IR的Program对象,然后我们只需要再遍历子节点。 如果子节点是function,就新建一个IR的Function对象,再访问该function节点,从而将该函数的前端信息存入Function对象中,最后将其加入到当前Program对象中的functions列表。 如果子节点是declaration,说明这是一个全局变量,就新建一个Data对象,再访问该declaration节点,从而将该全局变量的前端信息存入Data对象中,最后将其加入到当前Program对象中的global_data列表。 parameter_list 对于parameter_list节点,可以把前几个寄存器编号分配给参数。 如果是标量参数,要另外在栈上开空间。(这是为了满足 SSA 形式) 如果是数组参数,则可以直接保存在寄存器中。 declaration 对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足 SSA 形式,哪怕是局部标量,也要用Alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。 如果有初始化, 对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增Store指令,表示将得到的寄存器的值存入该标量对应的地址。 对于数组则需要遍历Integer节点,并分别使用Store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。 lvalue lvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释) 先通过前端变量到IR的Data对象的映射表,找到该节点所表示的前端变量对应的Data对象。 如果这是个全局变量,则新增LoadAddr指令,表示加载全局变量的地址,获取对应地址的寄存器 如果这是个局部变量,则直接通过Data对象获取对应地址的寄存器 如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的GetElementPtr指令,表示通过数组基地址和下标获取元素的地址。 目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。 如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增Load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。 什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。 中场休息 看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list, declaration, lvalue节点的例子,希望能帮到你。 int a = 1; int foo(int x, int y[]) { return x + y[1]; } int main() { int b[2][3] = {1, 2, 3, 4, 5, 6}; return foo(a, b[1]); } 生成的AST可能如下: Program |- (children[0]) Declaration |- (spec) Specifier(TINT) |- VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(1) |- (children[1]) Function |- (ret_t) TInt |- (ident) Identifier(\"foo\") |- (params) ParameterList |- (children[0]) Parameter |- (spec) Specifier(TINT) |- (decl) Declarator(Identifier(\"x\")) |- (children[1]) Parameter |- (spec) Specifier(TINT) |- (decl) Declarator(Identifier(\"y\"), ArrayType()) |- (body) Block |- (children[0]) Return |- (expr) BinOp(ADD) |- (lhs) Identifier(\"x\") |- (rhs) ArrayRef |- (array) Identifier(\"y\") |- (index) IntLiteral(1) |- (children[2]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (params) ParameterList # Empty |- (body) Block |- (children[0]) Declaration |- (spec) Specifier(TINT) |- (decl) Declarator(Identifier(\"b\"), ArrayType(2, ArrayType(3, TINT))) |- (init) InitList |- (children[0]) InitList |- (children[0]) IntLiteral(1) |- (children[1]) IntLiteral(2) |- (children[2]) IntLiteral(3) |- (children[1]) InitList |- (children[0]) IntLiteral(4) |- (children[1]) IntLiteral(5) |- (children[2]) IntLiteral(6) |- (children[1]) Return |- (expr) Call |- (func) Identifier(\"foo\") |- (args) ArgumentList |- (children[0]) Identifier(\"a\") |- (children[1]) ArrayRef |- (array) Identifier(\"b\") |- (index) IntLiteral(1) 上述代码转化为IR后可能如下: i32 foo(i32 _T0, i32* _T1) { _B0: alloca i32* _T2 = 4 store *(i32* _T2 + 0) = i32 _T0 load i32 _T3 = *(i32* _T2 + 0) i32 _T4 = 1 i32* _T5 = elementptr: i32* _T1[i32 _T4] load i32 _T6 = *(i32* _T5 + 0) i32 _T7 = i32 _T3 + i32 _T6 return i32 _T7 } i32 main() { _B0: alloca i32[3]* _T0 = 24 i32 _T1 = 1 store *(i32[3]* _T0 + 0) = i32 _T1 i32 _T2 = 2 store *(i32[3]* _T0 + 4) = i32 _T2 i32 _T3 = 3 store *(i32[3]* _T0 + 8) = i32 _T3 i32 _T4 = 4 store *(i32[3]* _T0 + 12) = i32 _T4 i32 _T5 = 5 store *(i32[3]* _T0 + 16) = i32 _T5 i32 _T6 = 6 store *(i32[3]* _T0 + 20) = i32 _T6 i32* _T7 = LoadAddr $a load i32 _T8 = *(i32* _T7 + 0) i32 _T9 = 1 i32* _T10 = elementptr: i32[3]* _T0[i32 _T9] i32 _T11 = call foo(i32 _T8, i32* _T10) return i32 _T11 } 在本例中, foo函数的参数表示为_T0, _T1。为了满足 SSA 形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_T2来进行。对于y[1],利用下标和getElementptr指令可以得到其地址,然后通过load指令可以得到其值。(getElementptr指令是为了写起来方便快捷;这里你也可以通过基地址_T1和下标1,构造出_T1 + 1 * 4的式子来计算出y[1]的地址) main函数中对于数组b,先使用Alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在LoadAddr指令获取a的地址之后,还要用Load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。 expression 访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理: unary '=' expression,表示赋值表达式。 对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。 对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。 最后新增Store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。 conditional,表示条件表达式。 如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then 和 else 是两个表达式节点,对于if语句,这两个变量是两个语句节点。 如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。 具体示例可以参考短路求值。 if 先给当前函数新增一个基本块true_bb表示if语句的true分支入口。 如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。 给当前函数新增一个基本块next_bb表示if之后的基本块。 分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。 由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。 将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从true_bb跳转到next_bb。 如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个Jump指令,表示从false_bb跳转到next_bb。 最后将当前基本块改为next_bb。 例: int main(){ int a = 2; int b = 0; if(a) b = 1; else b = -1; return b; } 生成的AST可能如下: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(2) |- (children[1]) VarDecl |- (type) TInt |- (ident) Identifier(\"b\") |- (init) IntLiteral(0) |- (children[2]) If |- (cond) Identifier(\"a\") |- (children[0]) Assign |- (lhs) Identifier(\"b\") |- (rhs) IntLiteral(1) |- (children[1]) Assign |- (lhs) Identifier(\"b\") |- (rhs) UnaryOp(NEG) |- (expr) IntLiteral(1) |- (children[3]) Return |- (expr) Identifier(\"b\") 上述代码转化为IR后可能如下: i32 main() { _B0: alloca i32* _T0 = 4 i32 _T1 = 2 store *(i32* _T0 + 0) = i32 _T1 alloca i32* _T2 = 4 i32 _T3 = 0 store *(i32* _T2 + 0) = i32 _T3 load i32 _T4 = *(i32* _T0 + 0) if i32 _T4 == 0 jump _B2 else jump _B1 _B1: i32 _T5 = 1 store *(i32* _T2 + 0) = i32 _T5 jump _B3 _B2: i32 _T6 = 1 i32 _T7 = -i32 _T6 store *(i32* _T2 + 0) = i32 _T7 jump _B3 _B3: load i32 _T8 = *(i32* _T2 + 0) return i32 _T8 } 在本例中,生成了_B1, _B2, _B3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_B0的结尾是一个Branch指令,_B1, _B2结尾都是Jump指令,表示从true_bb、false_bb跳转到next_bb。 while 这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。 给当前函数新增一个基本块body_bb表示while语句的循环体入口。 给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。 给当前函数新增一个基本块next_bb表示while之后的基本块。 开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。 由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。 将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从body_bb跳转到body_cond_bb。 将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。 由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。 最后将当前基本块改为next_bb。 例: int main(){ int a = 0; while(a 生成的AST可能如下: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(0) |- (children[1]) While |- (cond) BinaryOp(LT) |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(10) |- (body) Block |- (children[0]) If |- (cond) BinaryOp(EQ) |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(5) |- (children[0]) Assign |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(10) |- (children[1]) Break |- (children[1]) Assign |- (lhs) Identifier(\"a\") |- (rhs) BinaryOp(ADD) |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(1) |- (children[2]) Return |- (expr) Identifier(\"a\") 上述代码转化为IR后可能如下: i32 main() { _B0: alloca i32* _T0 = 4 i32 _T1 = 0 store *(i32* _T0 + 0) = i32 _T1 load i32 _T2 = *(i32* _T0 + 0) i32 _T3 = 10 i32 _T4 = i32 _T2 在本例中,_B0的最后是第一个while语句的条件部分,while语句还生成了_B1, _B2, _B3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_B4, _B5两个基本块。多出来的_B6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_B6?提示:如果break;语句后面加上a = 1;语句,IR会如何改变?) 预期目标 完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成满足 SSA 形式的 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。 "},"docs/contest/midend/ssa.html":{"url":"docs/contest/midend/ssa.html","title":"静态单赋值","keywords":"","body":"静态单赋值 静态单赋值这一小节参考并改编自北航的编译课程实验文档: https://buaa-se-compiling.github.io/miniSysY-tutorial/challenge/mem2reg/help.html 在此表示感谢! 静态单赋值(Static Single Assignment, SSA)是编译器中间表示(IR)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。 例如,考虑使用 IR 编写程序计算 1 + 2 + 3 的值,一种可能的写法为: _T0 = 1 _T1 = 2 _T2 = 3 _T3 = _T0 + _T1 _T3 = _T3 + _T2 ret _T3 很遗憾,上述程序并不符合 SSA 的要求,因为其中变量 _T3 被赋值了两次。正确的写法应该为: _T0 = 1 _T1 = 2 _T2 = 3 _T3 = _T0 + _T1 _T4 = _T3 + _T2 ret _T4 我们为什么要这样做呢? 因为 SSA 可以简化每个变量的属性,进而简化编译器的优化过程。 例如,考虑下面这段伪代码: y = 1 y = 2 x = y 很显然,其中变量 y 的第一次赋值是不必须的,因为变量 y 被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(Reaching Definition Analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。 但如果将上述代码变为 SSA 形式: y1 = 1 y2 = 2 x1 = y2 上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到 x1 的值来自于 y2 这一信息。 正因如此,许多编译器优化算法都建立在 SSA 的基础之上,例如:死代码消除(dead code elimination)、常量传播(constant propagation)、值域传播(value range propagation)等。 我们如何实现 SSA 呢? 例如,考虑使用 IR 编写程序使用循环计算 5 的阶乘。 按照 C 语言的思路,我们可能给出如下写法: _L0: _T0 = 0 _T1 = 1 _T2 = 2 _T3 = _T0 + _T1 # int temp = 1 _T4 = _T0 + _T2 # int i = 2 _T5 = 5 _L1: _T6 = _T4 我们注意到,变量 _T3 和 _T4 由于循环体的存在可能被赋值多次,因此上述写法并不符合 SSA 的要求。 一种可能的方案是使用 Phi 指令。Phi 指令的语法是 = PHI [, ], [, ] ... 。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。 由此,我们的程序可以改写为: _L0: _T0 = 2 _T1 = 1 _L1: _T2 = PHI [_T0, _L0], [_T6, _L2] # int i = 2 _T3 = PHI [_T1, _L0], [_T7, _L2] # int temp = 1 _T4 = 5 _T5 = _T2 由此,上述程序中每一个变量只被赋值了一次,满足了 SSA 的要求。(注意,SSA 仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次) 另一种可能的方案是使用 Alloca、Load 和 Store 的组合。SSA 要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用 Alloca 指令分配到内存中,之后每次访问变量都通过 Load 或 Store 指令显式地读写内存。使用上述方案编写的程序满足 SSA 的要求,且避免了繁琐地构造 Phi 指令,但频繁地访问内存将导致严重的性能问题。 有没有更好的解决方案呢? 有,我们可以将两种方案结合起来。 在前端生成中间代码时,首先使用第二种方案利用 Alloca、Load、Store 指令快速地构建满足 SSA 要求的代码。 随后,在上述代码的基础上, 将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入 Phi 指令。 这一解决方案也被称为 mem2reg 技术。 mem2reg 使得我们可以在生成中间代码时,使用 Alloc、Load 和 Store 的组合针对局部变量生成符合 SSA 要求的代码。 举个例子,一种可能的中间代码表示为: main: _T0 = alloc 4 _T1 = alloc 4 store _T0, 1 load _T2, _T0 _T4 = _T2 > 0 beqz _T4, _L2 store _T2, 1 _L1: load _T5, _T2 ret _T5 _L2: _T6 = 0 - 1 store _T2, _T6 jump _L1 在此基础上,进行 mem2reg 转化: main: _T0 = 1 > 0 beqz _T0, _L2 _L1: _T2 = phi [1, main], [_T3, _L2] ret _T2 _L2: _T3 = 0 - 1 jump _L1 需要注意的是,所有的 Phi 指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的 Phi 指令的顺序对结果没有影响)。 在实现 mem2reg 时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。 相关的解释和详细说明可以参考: 如何构建 SSA 形式的 CFG:https://szp15.com/post/how-to-construct-ssa/ 随后,我们需要实现 SSA 构造算法。一种常用的算法是将整个过程分为:插入 phi 函数和变量重命名,两个阶段。 在第一阶段,记录每个局部变量相关的 Alloc 和 Store 指令,并由此在基本块的开头插入 Phi 指令。 在第二阶段,遍历所有基本块,对其中局部变量相关的 Alloc,Load 和 Store 指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的 Phi 指令。 相关的解释和详细说明可以参考: Static Single Assignment Book 的 Chapter3:https://pfalcon.github.io/ssabook/latest/ "},"docs/contest/midend/cp.html":{"url":"docs/contest/midend/cp.html","title":"常量传播","keywords":"","body":"常量传播/常量折叠 常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。 常量传播通常依赖Use-Def和Def-Use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。 例如,对于如下代码: _main: _T0 = 2 _T1 = 0 _T2 = _T0 + 3 _T3 = _T1 + 5 _T4 = _T2 * 2 _T5 = _T3 - _T1 _T6 = _T4 + _T5 ret _T6 经过常量传播/常量折叠优化后,代码变为: _main: _T0 = 2 _T1 = 0 _T2 = 5 _T3 = 5 _T4 = 10 _T5 = 5 _T6 = 15 ret _T6 常量传播/常量折叠的实现 常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下: 遍历所有语句,找出常量定义,将其全部加入常量表。例如: _T0 = 2 _T1 = 0 _T2 = _T0 + 3 _T0和_T1的值是常量,将_T0和_T1的值分别存入常量表。 依据Def-Use关系,找出所有用到常量_T0和_T1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_T2的值为5,也是一个常量,将_T2的值加入常量表。 重复上述过程,直到常量表不再增加为止。 "},"docs/contest/midend/dce.html":{"url":"docs/contest/midend/dce.html","title":"死代码消除","keywords":"","body":"死代码消除 死代码消除(Dead code elimination, DCE)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。 死代码消除通常依赖于Use-Def和Def-Use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。 这里介绍一种 DCE 的方法(来源于《高级编译器设计与实现》(鲸书)): 首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。 然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。 当以上迭代函数稳定不变时,所有未标记的指令都可以认为是Dead Code,可以删除。 具体实现上,可以借助du/ud链来实现: 维护一个set,存储所有必要值的定义指令。 找出函数所有的必要值,标记这些值的定义指令。 对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。 对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。 重复上一步,直到set不再变化。 函数中的指令,如果不在set中,就可以认为是Dead Code。 此处举个例子: _main: _T0 = 1 _T1 = 2 _T2 = _T1 + 5 _T3 = _T0 + 2 _T4 = _T3 * 5 return _T4 # _T4 是必要值 顺着ud链,可以找到 _T4 = _T3 * 5,因此 _T3 也是必要值。继续找到 _T3 = _T0 + 2,因此 _T0 也是必要值。最终 _T0、_T3、_T4 都是必要值,而 _T1、_T2 的定义指令都可以认为是Dead Code。 因此可以优化为: _main: _T0 = 1 _T3 = _T0 + 2 _T4 = _T3 * 5 return _T4 "},"docs/contest/backend.html":{"url":"docs/contest/backend.html","title":"后端设计","keywords":"","body":"后端设计 编译器后端的主要功能是将中间表示(IR)转换为目标架构的汇编代码,在我们的课程实验中即将TAC翻译为RISC-V汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。 代码生成 目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将IR翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。 指令选择 对于一条IR指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些IR指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。 这里举几个例子: 逻辑与和逻辑或。可详见step4。 函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。 SSA IR中的Phi指令。通常Phi指令会被翻译为mv指令,但留意多条Phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。 寄存器分配 IR里通常会假设数量无限的虚拟寄存器(或称作变量),但目标ISA(Instruction Set Architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。 课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度) 常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。 寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spill weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。 栈帧确定和最终代码生成 在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。 在这里我们介绍一种可能的实现方式。我们暂不考虑VLA(variable-length array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为StackObject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如 LoadFromStack t0, obj, offset: 将栈上对象obj偏移offset(立即数)处的内容加载到 t0 StoreToStack t0, obj, offset:将t0中的内容写入到栈上对象obj偏移offset处 LoadStackAddr t0, obj, offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0 代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。 最终我们将以上的这些“指令”展开。例如LoadFromStack可以保守地展开为以下RISC-V指令序列: li t0, (some immediate offset) add t0, sp, t0 ld t0, 0(t0) 但大多数时候ld t0, offset(sp)就足够了。需要注意的是StoreToStack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为LoadStackAddr和一条store指令。 确定栈帧后生成函数的prologue和epilogue,其中主要包括callee-saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g. 必须是8的整数倍)。 附:函数调用相关 处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在Iterated Register Coalescing的论文中并没有提及函数调用约定的处理方式,在这里以RISC-V为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个C语言片段: int f(int x) { // lots of stuff... return x; } 在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。 int swap(int x, int y) { // ... swap(y, x); // ... } 对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。 可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。 具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参) 调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量T1到Tn,然后按照mv Ti, xi的方式将全部xi移入Ti中,接下来再生成mv aj, Ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。 处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv xi, ai即可。 以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下: swap: mv x, a0 # 1 mv y, a1 # 2 # first move phase mv _T0, x # 3 mv _T1, y # 4 # second move phase mv a0, _T1 # 5 mv a1, _T0 # 6 call swap 在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码: swap: mv t0, a0 mv a0, a1 mv a1, t0 call swap 这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_T0与a1相干涉(指令4的Use集合、指令3的LiveOut集合包含a1,_T0在指令3的Def集合中),因此_T0不能被分配到a1;同时_T0也与a0相干涉(指令6的Use集合,指令5的LiveOut集合包含_T0,a0在指令5的Def集合中),最终_T0被分配到一个新的寄存器t0。而_T1可以安全地被分配到a1,故指令4被视作无用指令消除。 在生成函数调用的代码时,除传参外,还需要考虑caller-saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在caller-saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有caller-saved寄存器加入到call指令的Def集合中,剩下的事情交给寄存器分配算法处理。考虑以下C语言片段: int getint(); void putint(int); int main() { int x = getint(); putint(x); return x; } 在寄存器分配前可能对应如下代码: main: # prologue call getint mv x, a0 mv a0, x # ... omitted call putint mv a0, x # epilogue ret 采用上述方式,x处于call putint的LiveOut集合中,会与全部的caller-saved寄存器相干涉,这样x就会自动被分配到callee-saved寄存器上。经过后续优化可能的最终汇编代码如下: main: # prologue call getint mv s0, a0 call putint mv a0, s0 # epilogue ret 目标架构相关优化 这里简单地举几个例子。 指令选择相关的窥孔优化 此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。 例如以下的RISC-V指令序列 li t0, 0 bne a0, t0, label1 可以被替换为bne a0, zero, label1,后续再通过无用指令消除去掉li t0, 0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(RISC-V的I型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。 再举一个ARM的例子。ARM的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列 mov r1, r1, LSL #2 add r0, r0, r1 ldr r0, [r0] 可以被合并为一条指令: ldr r0, [r0, r1, LSL #2] 这种汇编代码模式在数组访问中较为常见。 指令调度 指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造DAG,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。 "},"REFERENCE.html":{"url":"REFERENCE.html","title":"参考资料","keywords":"","body":"参考资料 Writing a C Compiler: by Nora Sandler An Incremental Approach to Compiler Construction : by Abdulaziz Ghuloum Monkey: The programming language that lives in books C17 标准草案 N2176(N2176 是 C17 标准正式发布前的最后一版草案,根据 C17 标准的编者之一 Jens Gustedt 的博文,其与 C17 标准相比只有表述上的差异) RISC-V 手册 RISC-V(非官方)汇编指令用法 "}} \ No newline at end of file +{"./":{"url":"./","title":"实验简介","keywords":"","body":"MiniDecaf 编译实验 实验手册指北:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。 实验概述 MiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step。每个 step 大家都会完成一个可以运行的编译器,把不同的 MiniDecaf 程序代码编译成 RISC-V 汇编代码,可以在 QEMU/SPIKE 硬件模拟器上执行。随着实验内容一步步推进,MiniDecaf 语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用 MiniDecaf 语言实现的快速排序程序,与 C 语言相同。 int qsort(int a[], int l, int r) { int i = l; int j = r; int p = a[(l+r)/2]; while (i p) j = j - 1; if (i > j) break; int u = a[i]; a[i] = a[j]; a[j] = u; i = i + 1; j = j - 1; } if (i l) qsort(a, l, j); return 0; } 2024 年秋季学期基本沿用了 2023 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。 从2023年起,课程组增加了大实验环节,大实验是一个可选环节。可以参考大实验参考文档获取更多信息。 实验起点和基本要求 本次实验一共设置 13 个步骤(其中 step 0 和 step 1 为实验框架熟悉,不需要修改框架代码)。后续的 step 2-13 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,你只需通过我们提供的正例与负例即可。 我们以 stage 组织实验,各个 stage 组织如下: 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。 变量和赋值(step5)。在这个 stage 中你将第一次支持变量声明与赋值。 作用域和块语句(step6)。在这个 stage 中你的编译器将支持作用域,以便支持后续的条件和循环。 条件和循环(step7-step8)。在这个 stage 中你将支持条件判断和循环语句,此时,你的编译器可以编译的程序就从线性结构程序到了有分支结构的程序。 函数(step9)。在这个 stage 中你将支持函数的声明和调用,这样你就可以写很多有意思的代码了。 全局变量和数组(step10-step12)。在这个 stage 中,你将支持全局变量和数组,数组中包括全局数组和局部数组。 寄存器分配算法(step13)。在这个 stage 中,你将实现基于图染色的寄存器分配算法,替代当前框架中简单的启发式算法。 其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。 stage1 - stage5 为 5 个基础关卡,你需要通过它们以拿到一定的分数(35%)。 stage6 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完整完成可以获得占总评 7% 的成绩并替代期末考试对应权重)。 stage7 为进阶关卡,如果你依然学有余力,你可以在这里实现一些编译优化(完整完成可以获得占总评 8% 的成绩并替代期末考试对应权重)。注意,你需要在完成 stage6 后才能尝试 stage7,否则无法获得对应分数。 我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。 我们通过问答墙来集中解决大家在环境配置及完成实验中遇到的问题。如果你遇到了任何问题,都可以在问答墙中检索;如果你的问题尚未有其他人提问过,欢迎向助教提问,助教会尽快回复的。 诚信守则 请注意,诚信守则是参加本课程的学生应遵守的道德行为规范。实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与主动提供抄袭信息的被抄袭者将被记为0分。 实验提交 大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler24/stu24/minidecaf-你的学号 ,将作业提交到那个仓库即可。 每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git checkout -b 来创建一个新的分支。 本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。 .gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件; prepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python),如果你想添加新的依赖或者修改编译流程,请修改此文件。 在 CI 中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过 CI。 我们只接受 pdf 格式的实验报告。你需要将报告放在仓库的 ./reports/.pdf 路径,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。 实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 评分标准 对于每个阶段(stage): 80% 的成绩是自动化测试的结果,你可以直接在 git.tsinghua 的 CI 测试中看到。 20% 的成绩是实验报告,其中对实验内容的描述占 10%,对思考题的回答占 10%。 评分会以每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。 如果你认为成绩有问题,请及时与助教联系。 时间安排及补交政策请看实验进度安排。 学术规范 由于实验有一定难度,同学之间相互学习和指导是提倡的。 对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。 如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。 我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。 代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。 相关资源 实验指导书(首页有实验报告提交要求) 实验指导书勘误表 课程问答墙 实验思路指导与问答墙 参考资料 Writing a C Compiler: by Nora Sandler nqcc http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf 备注 1. 关于名字由来,由于往年的实验叫 Decaf,我们在新的且更简单的语言规范下复用了 Decaf 的编译器框架,所以今年的实验就叫 MiniDecaf 了。 ↩ "},"docs/misc/schedule.html":{"url":"docs/misc/schedule.html","title":"实验进度安排","keywords":"","body":"实验进度安排 所有截止时间均为所标日期的23:59:59(UTC+8),即第二天0点之前,如有特殊情况将会在网络学堂通知。 必做部分: 第三周周日(9.29):Stage 0 截止 熟悉框架和基础知识 (占比:0%) stage 0 不需要你编写任何代码,stage 0的思考题请与stage 1一起提交。 第四周周日(10.6):Stage 1 截止 常量表达式(占比:7%) 第六周周日(10.20):Stage 2 截止 变量(占比:7%) 第八周周日(11.3):Stage 3 截止 作用域(占比:7%) 第十周周日(11.17):Stage 4 截止 控制语句(占比:7%) 第十四周周日(12.15):Stage 5 截止 函数(占比:7%) 函数部分由于难度较大,给大家预留了四周时间,请大家不要等到最后一周再开始。 选做部分: 选做部分难度较大,且时间较紧,同学可能需要提前一些开始才能保证完成。 第十五周周日(12.22):Stage 6 截止 全局变量和数组(占比:7%) 第十六周周日(12.29):Stage 7 截止 寄存器分配与代码优化(占比:8%) 补交政策 假设 a 日 24:00 是某个 stage 的截止时间; a + k (k 提交/补交时间是该 stage 截止 10 天内这个 stage 的 branch 最后一次触发 CI 的时间; 更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。 如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。 选做实验不接受补交。 "},"docs/step0/errate.html":{"url":"docs/step0/errate.html","title":"勘误表","keywords":"","body":"勘误表 在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。   Q:使用 pip install -r ./requirements.txt 命令无法正确安装依赖? A:如果你安装了多版本的 python,使用 pip 命令未必会对应 3.9 版本的包管理器。请尝试使用 python3.9 -m pip install -r ./requirements.txt 安装依赖。   Q: 代码框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。 经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错: utils.error.IllegalArgumentException: error: encounter a non-returned basic block 请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢? A:代码框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。   Q:我怎样才能知道我的提交通过了所有测试用例? A:可以通过本地测试或者通过 CI 结果可以判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。   Q:如何提交课程报告? A: 请将实验报告以 pdf 格式提交到 git.tsinghua 自己的仓库中,放在仓库根目录下的 reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 reports/stage-1.pdf。 最新的 CI 会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作 pass。 如果关于报告提交有任何问题,请及时联系助教。 "},"docs/ref/riscv.html":{"url":"docs/ref/riscv.html","title":"RISC-V 参考资料","keywords":"","body":"RISC-V相关内容补充 RISC-V官方资料 不建议阅读,太过冗长,这对于编译知识提升非常有限。 RISC-V 官方 请下载ISA Specifications (Ratified)中的Volume 1, Unprivileged Specification。 如果你时间充足,你可以阅读: Chapter 24 RV32/64G Instruction Set Listings Chapter 25 RISC-V Assembly Programmer’s Handbook 如何快速查询RISC-V指令 在线编译器 你可以使用Compiler Explorer (godbolt.org)来快速获得一个riscv指令的实现 在左边输入以下例子 int mod(int x, int y) { // 注意:此处不要直接写一个可以计算得到结果的式子 // 比如5 % 8会被编译器优化为5 return x % y; } 把右边的编译器选为RISC-V(32-bits)中的任何一个,在编译选项中写上-O2(减少不必要的指令生成),翻译一条指令看看效果。 本地编译器 你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 或者 -O2 选项): int foo(int x) { return !x; } 不出意外你会获得如下结果: foo: seqz a0,a0 ret "},"docs/step0/intro.html":{"url":"docs/step0/intro.html","title":"实验环境简介","keywords":"","body":"实验环境简介 2024年秋季学期,助教给大家提供了服务器。同学们可以选择使用我们已经配置好的机器,节省一定的时间花费。 服务器环境如下: Ubuntu 23.04 python 3.11.4 注意: 禁止大家在服务器上安装软件、运行与课程实验无关的程序或者破环系统环境。否则将有可能受到惩罚。 为了安全起见,服务器仅可通过校内网络访问。 服务器的地址、账号和密码会通过网络学堂发给大家,请登录网络学堂查收。 提示: 如何使用 ssh 登陆服务器? ssh username@ip -p port # 假如你的账号为 2024000001,服务器 ip 地址为 192.168.1.1,端口为 223,则命令为: ssh 2024000001@192.168.1.1 -p 223 建议配置 ssh 免密登录,方便大家使用服务器,然后在服务器上运行。你可以参考这里。 vscode 也是可以使用ssh远程写代码的,参考这里。 如果你使用我们提供的服务器,你可以直接来看RISC-V 的工具链使用和运行实验框架。 "},"docs/step0/riscv_env.html":{"url":"docs/step0/riscv_env.html","title":"RISC-V 环境配置","keywords":"","body":"RISC-V 环境配置 必做:RISC-V 的 gcc 和 qemu 我们的编译器只生成 RISC-V 汇编,然后再使用 gcc 把 RISC-V 汇编变成 RISC-V 可执行文件,最后用 qemu/spike 等模拟器来运行 RISC-V 可执行文件。 注意这里的 gcc 和常说的 gcc 不一样。 常说的 gcc 运行在我们的 x86 机器上、把 C 编译到 x86 可执行文件; 而这里的 gcc 虽然也运行在我们的 x86 机器上,却要编译到 RISC-V 可执行文件。 这种“gcc 跑在 x86 却编译出 RISC-V 代码”的操作被称为交叉编译(cross compilation)。 因此我们不能直接使用有些系统自带的 gcc,这种 gcc 生成的可执行程序只能在你本机(x86)上运行。 我们需要下载安装 riscv64-unknown-elf-gcc,用来生成 RISC-V 可执行程序。 建议各位同学使用我们提供的 RISC-V 工具链,由 SiFive 预编译的较新版本的工具链对 32 位的支持存在问题。 我们提供了预编译的 riscv64-unknown-elf-gcc 和 qemu/spike 模拟器,不过只能在 Linux/Mac 下运行(qemu 对应 Linux,spike 对应 Mac),Windows 的同学可以使用 WSL,或者运行一个虚拟机。 命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。 下面是环境配置指南,请阅读自己的系统的那一小节。 你的编译器 gcc qemu/spike MiniDecaf 源文件 ------------> RISC-V 汇编 -----> 可执行文件 --------> 输出 Windows 用户环境配置指南 下面描述了 WSL 的一种参考方法。 你还可以开一个 Linux 虚拟机,使用 Virtualbox 或 VMWare 等,然后参考下面 Linux 配置。 Win10 设置 参考 https://blog.csdn.net/daybreak222/article/details/87968078 ,设置“开发者模式”以及“启用子系统功能”。 打开Microsoft Store,搜索Ubuntu,选择ubuntu20.04. 按照下面的 Linux 用户环境配置指南安装 riscv 工具链。 Ubuntu 用户环境配置指南 建议使用 Ubuntu 20.04 及更高的版本,你可以直接使用 apt 来安装用户态的 qemu,即 apt install qemu-user。 如果使用的是低版本的 WSL,通过 Windows 应用商店可以很容易地安装 Ubuntu 20.04 LTS; 如果在机器上直接安装了较低版本的 Ubuntu, 可以参考这个教程进行升级,升级时注意备份。 如果出于某些原因必须使用低版本的 Ubuntu,你需要自己编译出可用的用户态 QEMU。 git clone https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git cd qemu && ./configure --prefix=/usr/local --target-list=riscv32-linux-user make make install qemu-riscv32 --version # 检查是否安装成功 从这里下载预编译好的 RISC-V 工具链并解压。 安装工具链 cp riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/* /usr/ -r 在第 2. 步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量: 首先把文件夹riscv64-unknown-elf-gcc-10.1.0-2020.08.2-x86_64-linux-ubuntu14/改名为 riscv-prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc 文件, 把export PATH=$PATH:/path/to/riscv-prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to 需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令source ~/.bashrc使修改生效。 (如果你不用系统自带的 bash 而是用 zsh 之类的 shell,那加到 ~/.zshrc 等 shell 配置文件里) macOS 用户环境配置指南 从这里下载预编译好的 RISC-V 工具链并解压到你喜欢的目录。 由于 macOS 不支持 QEMU 的用户态模式,我们使用 Spike 模拟器和一个简易内核 riscv-pk 提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种: 从这里下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,不过还需要通过 Homebrew 安装依赖 device tree compiler: $ brew install dtc 通过 Homebrew 安装 Spike(会自动安装 dtc): $ brew tap riscv/riscv $ brew install riscv-isa-sim 然后从这里上下载我们预编译的二进制程序包 spike-pk-prebuilt-x86_64-apple-darwin.tar.gz,只用里面的 pk。 Homebrew 也提供了 riscv-pk,不过那是 64 位的,而我们需要 32 位的,请使用我们预编译的 riscv-pk 或自行编译。 请注意我们提供的预编译 pk 是 x86 版本,如果你是其他平台(如M1 Mac),可以尝试自行根据 pk 的源码进行编译,附 Github 仓库链接。 (可选)设置环境变量,方法与 Linux 一样,见上一节。如果不设置每次使用 gcc 和 spike 时都要输入完整路径。不过对于 pk 设置环境变量不管用,要么把它放到系统目录 /usr/local/bin/pk,要么每次都用完整路径。 测试你 GCC 和 Spike 是否成功安装,详见RISC-V 的工具链使用。 必做:测试你是否正确配置好了环境 创建 test.c 文件,其中写入如下内容 #include int main() { printf(\"Hello world!\\n\"); } 编译 test.c 文件,gcc 应该输出一个可执行文件 a.out。但 a.out 是 RISC-V 可执行文件,所以我们的 X86 计算机无法运行。 $ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 test.c $ ls a.out a.out $ ./a.out # 如果没有安装qemu模拟器,则会出现如下错误:\"bash: ./a.out: cannot execute binary file: Exec format error\" 后面RISC-V 的工具链使用总结了 gcc 和 qemu 在编译实验中可能需要的用法。 使用 qemu 执行 a.out,具体操作如下 Linux用户 $ qemu-riscv32 a.out Hello world! 注意:安装了qemu之后,直接运行 ./a.out 往往也可以调用qemu环境正确执行,并得到\"Hello world!\"输出。 Mac OS用户,假设你已经将spike加入环境变量,将pk加入系统目录 $ spike --isa=RV32G pk a.out bbl loader Hello world! 备注 1. 开头的 $ 表示接下来是一条命令,记得运行的时候去掉 $。例如,让你运行 $ echo x,那你最终敲到终端里的是 echo x(然后回车)。如果开头没有 $,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。 ↩ "},"docs/step0/riscv.html":{"url":"docs/step0/riscv.html","title":"RISC-V 的工具链使用","keywords":"","body":"RISC-V 相关信息 RISC-V 是一个很像 MIPS 的 RISC 指令集架构,编译实验要求你的编译器把 MiniDecaf 程序编译到 RISC-V 汇编。 指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\"。 另外这里也有(非官方的)指令用法说明。 不过事实上,很多时候看 gcc 输出的汇编比看什么文档都有用。 RISC-V 工具使用 我们提供预先编译好的 RISC-V 工具,在环境配置中已经叙述了安装和使用方法。 下面汇总一下。 注意,我们虽然是用的工具前缀是 riscv64, 但我们加上参数 -march=rv32im -mabi=ilp32 以后就能编译到 32 位汇编 1。 使用时记得加这个参数,否则默认编译到 64 位汇编。 我们假设你已经正确设置好了环境变量,否则运行 riscv64-unknown-elf-gcc 或 qemu-riscv32 或 spike 时请用完整路径。 gcc 编译 input.c 到汇编 input.s,最高优化等级(否则输出的汇编会很冗长) # input.c 的内容 $ cat input.c int main(){return 233;} # 编译到 input.s $ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -O3 -S input.c # gcc 的编译结果 $ cat input.s .file \"input.c\" .option nopic .attribute arch, \"rv32i2p0_m2p0\" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .text.startup,\"ax\",@progbits .align 2 .globl main .type main, @function main: li a0,233 ret .size main, .-main .ident \"GCC: (SiFive GCC 8.3.0-2020.04.0) 8.3.0\" gcc 编译 input.s 到可执行文件 a.out # input.s 的内容,就是上面汇编输出的简化版本 $ cat input.s .text .globl main main: li a0,233 ret # 编译到 a.out $ riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 input.s # 输出结果,能看到是 32 位的 RISC-V 可执行文件 $ file a.out a.out: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, not stripped 【Linux 用户】qemu 运行 a.out,获取返回码 # 运行 a.out $ qemu-riscv32 a.out # $? 是 qemu 的返回码,也就是我们 main 所 return 的那个值 $ echo $? 233 【macOS 用户】Spike 模拟器运行 a.out,获取返回码 # 运行 a.out # /usr/local/bin/pk 替换为你自己的 pk 路径 $ spike --isa=RV32G /usr/local/bin/pk a.out bbl loader # $? 是 spike 的返回码,也就是我们 main 所 return 的那个值 $ echo $? 233 1. 这里的 rv32im 表示使用 RV32I 基本指令集,并包含 M 扩展(乘除法)。本实验中我们不需要其他扩展。 ↩ "},"docs/step0/env.html":{"url":"docs/step0/env.html","title":"实验框架环境配置","keywords":"","body":"实验框架环境配置 Python 实验框架环境配置 关于操作系统,助教推荐使用 Linux 环境(如 Ubuntu,Debain 或 Windows 下的 WSL 等),当然你也可以在类 Unix 系统环境(Mac OS)中进行开发。助教不推荐直接在 Window 中搭建开发环境。你需要安装或保证如下软件满足我们的要求: python >= 3.9 助教强烈建议使用类似 Miniconda 或venv的系统管理不同的Python环境。你可以方便地使用miniconda安装最新的Python版本,安装好之后使用pip安装依赖即可。 框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性,请保证你所使用的 python 版本高于此版本。 如果你没有使用虚拟环境,可以参考下面的指导。Linux 环境下安装 Python 3 可以尝试如下命令: > sudo add-apt-repository ppa:deadsnakes/ppa > sudo apt update > sudo apt install python3 此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。你可以通过此命令来检查当前优先的 Python3 版本: > python3 --version 框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse: $ python3 -m pip install -r ./requirements.txt argparse 框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。 ply ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。可以参考 ply 的文档。 助教在项目中使用 type hints,如果你习惯在 vscode 中进行开发的话同时推荐使用 pylance 这一插件。 由于 python 的跨平台性,理论上也可以在 Windows 下进行开发。但不保证Windows和在线测试环境下程序行为的一致性。 "},"docs/step0/testing.html":{"url":"docs/step0/testing.html","title":"运行实验框架","keywords":"","body":"运行实验框架 配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。 接下来我们会用到 git。 git 的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里 。 按照本文档的前几节(RISCV 环境配置和实验框架环境配置)配置好实验环境。 助教已经为每位同学在 git.tsinghua.edu.cn 创建了一个仓库,其中 minidecaf 的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块 git clone --recursive 。 由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用 git submodule update --remote --merge 来手动更新。 注意:由于子模块使用 ssh 链接,你需要将你的 ssh 公钥添加到你的 git.tsinghua 账号上,才能将其克隆下来。 按照测例的 README 运行测试 step1,实验框架给出的初始代码可以通过 step1 的所有测例。 测试运行的 输出结果 大致如下。 $ STEP_UNTIL=1 ./check.sh gcc found qemu found parallel found OK testcases/step1/multi_digit.c OK testcases/step1/newlines.c ...... 其他测试点,太长省略 "},"docs/step1/arch.html":{"url":"docs/step1/arch.html","title":"MiniDecaf 编译器结构","keywords":"","body":"MiniDecaf 编译器结构 MiniDecaf 编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入 MiniDecaf 源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(Abstract Syntax Tree, AST),接下来通过扫描 AST 进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描 AST 生成中间代码 —— 三地址码;在编译器后端中,将三地址码转换为 RISC-V 汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。 我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的 step 作详细介绍。 词法分析和语法分析 此部分对应框架源码位置: 词法分析程序位于 frontend/lexer/;语法分析程序位于 frontend/parser/;语法树位于 frontend/ast/。 编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描 MiniDecaf 源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析的功能是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的 MiniDecaf 程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(Abstract Syntax Tree, AST)。比如,对于下面这一段简单的MiniDecaf 代码: if (i) i = 1; 它对应的完整语法分析树可能长这样: if_stmt |- \"if\" |- \"(\" |- Identifier(\"i\") |- \")\" |- assign_stmt |- Identifier(\"i\") |- \"=\" |- Int(1) |- \";\" 其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样: if_stmt |- (condition) Identifier(\"i\") |- (body) assign_stmt |- (lh) Identifier(\"i\") |- (rh) Int(1) AST省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。 词法分析和语法分析的最终结果是一棵跟所输入的 MiniDecaf 源程序相对应的语法树。本阶段的实验重点是掌握 LEX 和 YACC 的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、LALR(1) 分析等理论知识在实践中的应用。 语义分析 此部分对应框架源码位置: 符号表构建位于 frontend/typecheck/namer.py;类型检查位于 frontend/typecheck/typer.py;符号表相关的数据结构位于frontend/symbol/;作用域相关数据结构位于 frontend/scope/。 语法分析树的建立可以说明所输入的 MiniDecaf 源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。 可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过声明等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句的具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。 具体来说,在这一阶段中,我们需要对 AST 进行两遍扫描,分别完成以下的检查: 符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。 类型检查:各语句和表达式是否类型正确。 如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。 符号表构建 针对 MiniDecaf 程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1) 在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2) 符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。 step1-4 中只需要考虑常量的计算,直到 step5 才需要考虑符号表构建。 类型检查 完成符号表构建后,我们就可以自顶向下地遍历 AST,对每个语句和表达式逐一进行类型检查,并在 AST 上进行类型标注。对于静态类型(statically-typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typing rules)。 在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。 事实上,由于 MiniDecaf 代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑 int 和 int 数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。 中间代码生成 三地址码定义位于 utils/tac/;中间代码生成位于 frontend/tacgen/tacgen.py。 在对 AST 进行语义分析后,我们将在这一阶段把带有类型标注的 AST 翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。 由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下: 通过把 AST 到汇编的步骤一分为二,缩小调试范围。如果目标代码有误,通过检查 IR 是否正确就可以知道:是 AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。 通过 IR 可以适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。 接下来,将对我们所使用的中间代码 —— 三地址码 (TAC) 做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的 TAC 并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。 三地址码 三地址码(Three Address Code, TAC)看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。 main: # main 函数入口标签 _T0 = 1 # 加载立即数 _T1 = _T0 # 临时变量赋值操作 _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1 _T3 = NEG _T0 # 取负操作 _T3 = -_T0 return _T2 # 函数返回 以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。 TAC 程序由标签和指令构成: 标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的 main 函数入口),以及作为分支语句的跳转目标(TAC 指令不支持 MiniDecaf 语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。 TAC 指令与汇编指令类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。 操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于 step10 才需要考虑,届时再介绍其处理方法)。如上例所示,TAC 中的临时变量均用 \"_Tk\" 的形式表示(k表示变量的编号)。 TAC 程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,MiniDecaf 只支持 int 类型和 int 数组类型,其值和地址都可以用一个32位整数存储,故 MiniDecaf 程序中的变/常量和 TAC 中的变/常量可以直接对应。 数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在 step11 详细讨论。 控制流、数据流分析和寄存器分配 数据流图定义及优化在 backend/dataflow/ 中;寄存器分配在 backend/reg/ 中 控制流和数据流分析 一般来说,三地址码是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。 所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。 关于数据流分析的细节,我们将在 step7 做详细介绍。 寄存器分配 所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在 step5 中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。 目标平台汇编代码生成 目标平台汇编代码生成在 backend/asm.py | subroutineinfo.py 以及 backend/riscv/ 中。 通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用 addi 汇编指令来翻译 ADD 中间代码指令。需要特别提出的是,RISC-V 指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。 课程实验的目标平台为 RISC-V,RISC-V 是一个与 MIPS 类似的 RISC 指令集架构,编译实验要求所实现的编译器把 MiniDecaf 程序编译到 RISC-V 汇编代码。指令集文档在这里,我们只需要其中的 \"Unprivileged Spec\",另外这里也有(非官方的)指令用法说明。下图给出了 RISC-V 的32个整数寄存器的相关说明,其中需要特别注意的寄存器有 ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了 RISC-V 的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是 caller-saved 还是 callee-saved。 "},"docs/step1/provided.html":{"url":"docs/step1/provided.html","title":"已提供的语法特性","keywords":"","body":"已经提供的语法特性 为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的 while 循环实现,同学们可以参考着完成 for 循环的实现。 下面我们列出了所有框架中已经完成的特性: step1 中我们提供了所有实现。 step2 中我们提供了取负运算的实现。 step3 中我们提供了加法和逻辑或操作运算的实现。 step5 中我们提供了基础数据结构——符号表的实现。 step6 中我们提供了基础数据结构——单层作用域的实现。 step7 中我们提供了 if 语句的实现。 step8 中我们提供了 while 循环的实现。 此外,我们提供了 step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。 "},"docs/step1/intro.html":{"url":"docs/step1/intro.html","title":"实验要求","keywords":"","body":"实验指导 step1:一个仅有 return 的 main 函数 实验框架已经完成并通过了本节的测例,因此你不需要在这个阶段修改代码,但需要在 stage 1 的报告中(注意不是 stage 0)完成通过例子学习一节末尾的思考题。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 1 准备报告。 "},"docs/step1/example.html":{"url":"docs/step1/example.html","title":"通过例子学习","keywords":"","body":"通过例子学习,一个仅有 return 的主函数编译全流程: 本步骤主要涉及的语法为主函数和 return 语句,完成本步骤之后,你的编译器将支持将一个仅有 return 的主函数编译为 32 位 RISC-V 汇编代码,并通过 RISC-V 工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触 MiniDecaf 编译实验框架,我们给大家的代码框架中已经包含所有 step1 的实现,大家可以直接运行通过 step1 的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。 下面我们将通过一个简单的 step1 测试用例,一起走过它的编译全流程: int main() { return 2024; } 词法分析 & 语法分析 在词法分析 & 语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的 AST,我们使用了 lex/yacc 库来实现这一点。yacc 是一个根据 EBNF 形式的语法规范生成相应 LALR parser 的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对 lex/yacc 的使用,结合我们的文档,来快速上手 lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行 lex/yacc 的入门,但这不是必须的。 在实验框架中,我们使用的是 lex/yacc 的一个纯 python 实现,称为 python-lex-yacc(简称 ply),其使用方法与 lex/yacc 有一些差异。 Python-lex-yacc 快速入门 程序的入口点在 main.py,它通过调用 frontend.parser.parser(位于 frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于 frontend/lexer/ply_lexer.py 的词法分析器进行词法分析。语法的定义和语法分析器都位于 frontend/parser/ply_parser.py,而词法的定义位于 frontend/lexer/lex.py。AST 节点的定义位于 frontend/ast/tree.py 中。以下表示中的符号都出自于这几个文件。 这部分的工作流程如下: 读内容 词法分析 & 语法分析 语义分析 readCode parser.parse Namer.transform & Typer.transform MiniDecaf 源文件 --------> 字节流 -----------> AST -------------------------------> ... 当程序读入程序的字符流之后,它首先会被 lexer 处理,并被转化为如下形式的一个 Token 流: Int Identifier(\"main\") LParen RParen LBrace Return Integer(2024) Semi RBrace 在frontend/lexer/lex.py文件中你可以看到每个 Token 是如何定义的,每个token都会以t_开头。如t_Semi = \";\"代表分号被解析以后会转化为 Semi 这个Token。而对于一些复杂的 Token,我们需要在lexer中定义一个正则表达式来匹配它,lex中通过定义一个函数来实现正则匹配。以匹配整数为例,函数的第一行r\"[0-9]+\"代表匹配用到的正则表达式,而函数的参数t则是被匹配得到的字符串,我们通过python中的类型转换将其变为一个整数,你可以在文件中看到以下代码: def t_Integer(t): r\"[0-9]+\" # can be accessed from `t_Interger.__doc__` t.value = int(t.value) return t 之后,这些 token 会被 yacc 生成的 LALR(1) parser 转化为如下形式的 AST: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) IntLiteral(2024) 得到的 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。 在frontend/parser/ply_parser.py文件中,你可以看到我们是如何定义语法规则的,文件的最末尾有parser = yacc.yacc(start=\"program\")代表了parser的入口点是program,而program的定义在p_program函数中,你可以看到这个函数的docstring中定义了program的语法规则。注意docstring(即三个引号之间的内容)在这里并非注释,而是用于定义语法规则。 def p_program(p): \"\"\" program : function \"\"\" p[0] = Program(p[1]) def p_function_def(p): \"\"\" function : type Identifier LParen RParen LBrace block RBrace \"\"\" p[0] = Function(p[1], p[2], p[6]) 我们先看p_program函数,我们定义的语法规则是program由一个function组成,对应的上下文无关表达式就是program -> function,同时代码中的p[0] = Program(p[1])代表了构建AST的计算过程,这里的p[0]代表的是当前语法规则的左部,p[1]代表的是当前语法规则的右部第一个符号(即function),p[2]代表的是当前语法规则的右部第二个符号(这里没有),以此类推。这样递归下去,就能解析完整个程序。p[0] = Program(p[1])最后就会变为p[0] = Program(Function(...)),这里Program、Function类的定义在frontend/ast/tree.py文件中,你可以看到Function这个类的构造函数接受了三个参数,分别是返回值类型、函数名和函数体。 尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c) 语义分析 在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误: main 函数是否存在。(frontend/typecheck/namer.py:37) 在实际操作中,我们遍历 AST 所用的方法就是的 Visitor 模式,通过 Visitor 模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于 Visitor 的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如 gcc 根据优化等级不同会有数百个不等的 pass。下面,我们将指出,step1 中我们是如何实现符号表构建 pass 和类型检查 pass 的,同学们可以选择去看相应的代码注释与实现细节。 frontend/typecheck/namer.py 和 typer.py 分别对应了符号表构建和类型检查这两次遍历。在框架中,Namer 和 Typer 都是继承 frontend/ast/visitor.py 中的 Visitor 类来通过 Visitor 模式遍历 AST 。 中间代码生成 在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的 Visitor 模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在 step1 当中,我们只需要提取 return 语句返回的常量,为之分配一个临时变量,再生成相应的 TAC 返回指令即可。不难看出,本例对应的三地址码为: main: # main 函数入口标签 _T0 = 2024 # 为立即数 2024 分配一个临时变量 return _T0 # 返回 下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。 utils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。 frontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。这个文件里除了类型TACGen之外还有一个辅助类TACFuncEmitter,它用于处理产生TAC代码过程中一些相对底层的细节。在本框架中,TAC 程序的生成以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 TACFuncEmitter 来生成对应的 TAC 函数代码。如果你增加了 TAC 指令,则可能需要在 TACFuncEmitter 类中增加生成相应指令的代码。 目标代码生成 目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有: 如何将一个立即数装载到指定寄存器中? RISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2024,就是将立即数 2024 加载到寄存器 t0 中。 如何设置返回值? 在 RISC-V 中,a0 和 a1 是 gcc 调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在 a0 和 a1 中。也就是说,如果你有一个 32 位的返回值,你可以放在 a0 中返回,如果你有两个 32 位的返回值,你就需要把它们分别放在 a0 和 a1 中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。 在我们的实验要求中,返回值均是单个 32 位的值。因此在当前步骤中你只需要了解,将需要返回的值放入 a0 寄存器中,然后在后面加上一条 ret 指令即可完成函数返回的工作。 综上所述,我们上述中间代码翻译成如下 RISC-V 汇编代码: .text # 代码段 .global main # 声明全局符号 main main: # 主函数入口符号 li t0, 2024 # 加载立即数 2024 到 t0 寄存器中 mv a0, t0 # 将返回值放到 a0 寄存器中 ret # 返回 实验框架中关于目标代码生成的文件主要集中 backend 文件夹下,step1 中你只需要关注 backend/riscv 文件夹中的 riscvasmemitter.py 以及 utils/riscv.py 即可。具体来说 backend/asm.py 中会先调用 riscvasmemitter.py 中的 selectInstr 方法对每个函数内的 TAC 指令选择相应的 RISC-V 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成真正的汇编指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitFunc 方法生成每个函数的 RISC-V 汇编。 思考题 在我们的框架中,从 AST 向 TAC 的转换经过了 namer.transform, typer.transform 两个步骤,如果没有这两个步骤,以下代码能正常编译吗,为什么? int main(){ return 10; } 我们的框架现在对于 return 语句没有返回值的情况是在哪一步处理的?报的是什么错? 为什么框架定义了 frontend/ast/tree.py:Unary、utils/tac/tacop.py:TacUnaryOp、utils/riscv.py:RvUnaryOp 三种不同的一元运算符类型? "},"docs/step1/visitor.html":{"url":"docs/step1/visitor.html","title":"Visitor 模式速成","keywords":"","body":"Visitor 模式速成 编译器的构造中会使用到很多设计模式,Visitor 模式就是常见的一种。 基础的设计模式都在 OOP 课程中覆盖,这里重提一下 Visitor 模式,并以框架中的代码为示例进行介绍。 我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。Visitor 模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个 DFS 遍历。 让我们考虑 step1 的文法: program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : Integer 以这个文法对应的一段 MiniDecaf 代码为示例: int main() { return 2; } 它会对应如下的 AST 结构: program function type(int) identifier(main) param_list return int(2) 我们用缩进表示树结构,其中 program, function, type, identifier, param_list, block, return, int 等均为 AST 上的结点类型。 在框架中,我们有以下的 AST 结点类实现(进行了适当的简略): ''' frontend/ast/node.py ''' class Node: # 所有 AST 结点的基类 # ... ''' frontend/ast/tree.py ''' class Program(ListNode[Union[\"Function\", \"Declaration\"]]): # 程序,AST 的根结点类型 # ... class Function(Node): # 函数 # ... class Statement(Node): # 语句基类 # ... class Return(Statement): # return 语句 # ... class TypeLiteral(Node): # 类型基类 # ... class TInt(TypeLiteral): # 整型 # ... 假设在经过了词法分析和语法分析后,我们已经成功将 MiniDecaf 代码转化为了 AST 结构。现在,我们想要编写代码对 AST 进行扫描。很容易写出递归的 DFS 遍历: def dfs(node: Node): if isinstance(node, Program): for func in node.functions: dfs(func) elif isinstance(node, Function): # do something for scanning a function node elif isinstance(node, Return): # ... dfs 函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,dfs 函数根据被遍历的结点类型不同,执行不同的遍历逻辑。 那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的 Visitor。此外,为了便于实现,我们不使用 isinstance 来判断结点类型,而是调用结点自身的一个 accept 函数,并把不同的 visitXXX 函数抽象到一个接口里,各种具体的 Visitor 来实现这个接口。 ''' frontend/ast/node.py ''' class Node: # 所有 AST 结点的基类 def accept(self, v: Visitor[T, U], ctx: T) -> Optional[U]: raise NotImplementedError ''' frontend/ast/tree.py ''' class Program(ListNode[Union[\"Function\", \"Declaration\"]]): # ... def accept(self, v: Visitor[T, U], ctx: T): return v.visitProgram(self, ctx) class Function(Node): # ... def accept(self, v: Visitor[T, U], ctx: T): return v.visitFunction(self, ctx) # ... ''' frontend/ast/visitor.py ''' class Visitor(Protocol[T, U]): def visitOther(self, node: Node, ctx: T) -> None: return None def visitProgram(self, that: Program, ctx: T) -> Optional[U]: return self.visitOther(that, ctx) def visitFunction(self, that: Function, ctx: T) -> Optional[U]: return self.visitOther(that, ctx) # ... 之后,如果我们想要编写一种遍历 AST 的方法,可以直接继承 Visitor 类,并在对应结点的 visit 成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建: class Namer(Visitor[ScopeStack, None]): def visitProgram(self, program: Program, ctx: ScopeStack) -> None: # ... for child in program: if isinstance(child, Function): child.accept(self, ctx) def visitFunction(self, func: Function, ctx: ScopeStack) -> None: # ... # ... 如果想要访问某个子结点 child,直接调用 child.accept(self, ctx) 即可。 "},"docs/step1/spec.html":{"url":"docs/step1/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step1 语法规范 我们采用 EBNF (extended Barkus-Naur form) 记号书写语法规范,采用类似 ANTLR 的记号: 小写字母打头的是非终结符(如 program),大写字母打头的是终结符(如 Identifier),可以用字符串字面量表示终结符(如 'int') 后面会用到:( 和 ) 表示分组,| 表示选择,* 零或多次,+ 一或多次,? 零或一次。 很容易通过增加新的非终结符,去掉这些符号。例如 x+ 就可以被替换成新的非终结符 y,并且 y : x | x y。 EBNF 也有很多写法,另一种是用尖括号表示非终结符 ::= 等。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : Integer step1 语义规范 1.1 MiniDecaf 的 int 类型具体指 32 位有符号整数类型,范围 [-2^31, 2^31-1],补码表示。 1.2 编译器应当只接受 [0, 2^31-1] 范围内的整数常量, 不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号-后,可以用负号配合正整数常量来间接表示负整数常量。 1.3 如果输入程序没有 main 函数,编译器应当报错。 "},"docs/step2/intro.html":{"url":"docs/step2/intro.html","title":"实验要求","keywords":"","body":"实验指导 step2:一元运算符 step2 中,我们要给整数常量增加一元运算:取负 -、按位取反 ~ 以及逻辑非 !。 语法上,我们需要修改 expression 的定义,从 expression : Integer 变成: expression : unary unary : Integer | ('-'|'!'|'~') unary 三个操作的语义和 C 以及常识相同,例如 ~0 == -1,!!2 == 1。 稍微一提,关于按位取反,我们使用补码存储 int;关于逻辑非,只有 0 表示逻辑假,其他的 int 都是逻辑真。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 2 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 如何检查我是否通过自动测试(CI) 在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。 如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。 "},"docs/step2/example.html":{"url":"docs/step2/example.html","title":"通过例子学习","keywords":"","body":"step2 实验指导 我们按照上一节划分的编译器阶段,分阶段给出 step2 实验指导。本实验指导使用的例子为: 需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的 MiniDecaf 程序。 -1 词法语法分析 在 step2 中,我们引入了一元运算,因此需要引入新的抽象语法树节点: 节点 成员 含义 Unary 操作数 operand,运算类型 op 一元运算 注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。 语义分析 由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。 代码没有特别需要修改的地方。 中间代码生成 在 step1 中,我们只需为 return 语句的返回的整型常量分配一个临时变量即可。而从 Step2 开始,语法树上出现了各种运算操作结点。在生成 TAC 的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。 针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 NEG T0 对参数取负 按照上文说的,-1 在语法树上对应父-子两个结点,父结点为取负操作,子结点为常量 1。在生成过程中,首先使用 Visitor 模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。 因此,测例可以翻译成如下的中间代码: _T0 = 1 _T1 = NEG _T0 目标代码生成 step2 目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。以 NEG 中间表达指令为例,RISC-V 汇编中有 neg 指令与其对应,因此上述中间代码可以翻译为如下的 RISC-V 汇编: li t0, 1 neg t1, t0 如果你不知道某个运算符应该翻译成怎样的汇编代码,你可以看这里 实现细节 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习。 相比于step 0, 我们实现了把返回值从一个整数(如:2024、1)变成单目表达式(如:-1),则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供): 首先,我们应该把 - 看作一个符号,而不应该将 -1 看作一个整体,因为我们还可能遇到 -x 这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对 - 的处理。 我们能发现 -, !, ~ 等符号都可以作为一元运算符出现,比如!x, ~a, -10,我们将这类一元运算操作都称为 unary ,一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和 AST 节点了。 因此我们希望生成的 AST 应当变为如下形式: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) Unary |- (op) Minus |- (expr) IntLiteral(1) 看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 1 这个数字是一个表达式, -1 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。 词法分析 & 语法分析 在 frontend/lexer/lex.py 里加入新的 lex token 定义,以便lexer可以解析 -: t_Minus = \"-\" 在 ply 的 lexer 中,定义的新 token 需要以 t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。 在 frontend/ast/tree.py 里加入新的 AST 节点定义(以及相应的其它东西): class Unary(Expression): def __init__(self, op: Operator, operand: Expression): ... 并在 frontend/ast/visitor.py 中加入相应的分派函数。 它将在后续的 parser 语义计算中被用到。 在 frontend/parser/ply_parser.py 里加入新的 grammar rule: def p_expression_precedence(p): # 定义的新语法规则名。可以随便起,但必须以 `p_` 开头以被 ply 识别。 \"\"\" expression : unary unary : primary \"\"\" # 以 [BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) 定义的新语法规则,以 docstring 的形式提供。 p[0] = p[1] # 这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。 # 语法分析器直接产生的实际上是一棵语法分析树,而构建 AST 这一数据结构则通过相应语法制导的语义计算过程来完成。 def p_unary_expression(p): \"\"\" unary : Minus unary \"\"\" p[0] = tree.Unary(UnaryOp.Neg, p[2]) 这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unary : Minus unary,其中p[0]代表的就是第一个unary, p[1]则是Minus,p[2]为第二个unary。你会看到我们框架代码和这里不太一样,因为unary符号不止有减号,我们通过将lex解析得到的-通过backward_search对应到我们在代码中enum的UnaryOp.Neg(frontend/ast/node.py:40)。 现在尝试运行 python main.py --input example.c --parse 看看效果吧。(记得修改example.c) 怎么从 AST 变为 TAC 的? 什么是 TAC ,如果你没读前面的章节,你可以快速看看这一部分。 这一步就是 TACGen.transform 函数(frontend/tacgen/tacgen.py)做的事了, TACGen.transform 接受一个AST树输入,输出一个TAC表示,请确保你已经对Visitor 模式有所了解,或者假设你已经知道在遍历 AST 时 accept 函数会对不同类型的 AST Node 调用不同的visit 函数。例如,visit (children[0]) Return 时,遇到的子节点是 (expr) Unary,那么 accept 最终会调用visitUnary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。 下面的描述中一定要记得区分accept和直接对于mv.visitXXX的调用,前者是在遍历AST时调用的,后者是在 TACFuncEmitter 类中调用的。并且希望大家一定要对着代码看。 Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) Unary |- (op) Minus |- (expr) IntLiteral(1) 继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序,我们将TACGen.transform代码贴了一些在这里: def transform(self, program: Program) -> TACProg: labelManager = LabelManager() tacFuncs = [] for funcName, astFunc in program.functions().items(): # in step9, you need to use real parameter count emitter = TACFuncEmitter(FuncLabel(funcName), 0, labelManager) astFunc.body.accept(self, emitter) tacFuncs.append(emitter.visitEnd()) return TACProg(tacFuncs) 现在我们开始正式遍历 AST 树,transform 会先遍历每一个函数进行代码翻译,因为我们目前只有一个函数main,我们只考虑没有参数的函数,我们需要对函数体进行翻译,函数体首先在一个block中(花括号括起来的部分),因此会先进入 visitBlock 函数,visitBlock 函数对于在block中的所有子节点调用了child.accept(self, mv),在这个例子中则会调用Return 语句对应的visitor,进入visitReturn。继续向下,visitReturn 又对于 return AST Node 中的 expr 调用了 stmt.expr.accept(self, mv) ,又进入了visitUnary,同理,expr.operand.accept(self, mv)会进入visitIntLiteral。 到了此处出现了不同,我们发现visitIntLiteral中第一次调用了mv的成员函数 mv.visitLoad(expr.value) 这里进入了TACFuncEmitter.visitLoad: def visitLoad(self, value: Union[int, str]) -> Temp: temp = self.freshTemp() self.func.add(LoadImm4(temp, value)) return temp self.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条立即数加载语句(你可以认为现在的所有指令就是用一个大数组存放了起来)。至此,我们翻译出了第一条语句,将 1 load 到一个虚拟寄存器 temp 中。剩下的部分,与这条语句的翻译也十分相似,因此不再赘述。 到此为止我们得到的TAC代码如下: FUNCTION: _T0 = 1 _T1 = - _T0 return _T1 现在尝试运行 python main.py --input example.c --tac 看看效果吧。 怎么从TAC到汇编代码 这一步是 Asm.transform 函数(backend/asm.py)处理的,Asm.transform 接受一个 TAC 输入,输出汇编代码。 def transform(self, prog: TACProg): analyzer = LivenessAnalyzer() for func in prog.funcs: emitter = RiscvAsmEmitter(Riscv.AllocatableRegs, Riscv.CallerSaved) reg_alloc = BruteRegAlloc(emitter) pair = emitter.selectInstr(func) builder = CFGBuilder() cfg: CFG = builder.buildFrom(pair[0]) analyzer.accept(cfg) reg_alloc.accept(cfg, pair[1]) return emitter.emitEnd() 我们先忽略LivenessAnalyzer和Control Flow Graph(CFG)以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是指令选择(selectInstr),指令选择将中端TAC代码转换为riscv汇编代码,selectInstr函数中,我们也采用了visitor模式遍历指令序列, _T0 = 1 这句比较直接,我们也能较为容易的想到一个简单的汇编指令对应(li _T0, 1),主要讲讲和_T1 = - _T0 和 return _T1翻译过程发生了什么。 先看visitUnary函数: def visitUnary(self, instr: Unary) -> None: op = { TacUnaryOp.NEG: RvUnaryOp.NEG, # You can add binary operations here. }[instr.op] self.seq.append(Riscv.Unary(op, instr.dst, instr.operand)) 这里将中端的TacUnaryOp.NEG翻译为了后端的RvUnaryOp.NEG,在后端输出汇编时,我们直接将RvUnaryOp.NEG转换为小写字符串取了11位以后的字符,直接输出为neg(参考Unary.__str__函数),因此后续希望添加其他后端的符号时,你应该直接在RvUnaryOp中增加对应的同名的enum字段。 你可以试试,将RvUnaryOp.NEG中名字改为RvUnaryOp.XXX看看输出的汇编代码会发生什么变化吧。 再看visitReturn函数,我们这里的return是一个带返回值函数的return def visitReturn(self, instr: Return) -> None: if instr.value is not None: self.seq.append(Riscv.Move(Riscv.A0, instr.value)) else: self.seq.append(Riscv.LoadImm(Riscv.A0, 0)) self.seq.append(Riscv.JumpToEpilogue(self.entry)) 这里会进入第一个分支,由于 Risc-V 的调用约定将A0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条Move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。 你可能会觉得,这一步不就是将 TAC 一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如T2 = T1 || T0,这里的逻辑或需要将T1、T0进行或操作后,再判断其值是否为1。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示能在一定程度上与平台无关(不同后端目标架构的指令选择可能存在较大差异),中间表示有一定抽象能力能简化整体编译器的设计。 物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。 现在尝试运行 python main.py --input example.c --riscv 看看效果吧。 思考题 我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个 minidecaf 表达式,只使用-~!这三个单目运算符和从 0 到 2147483647 范围内的非负整数,使得运算过程中发生越界。 提示:发生越界的一步计算是-。 总结 本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。 "},"docs/step2/spec.html":{"url":"docs/step2/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step2 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : unary unary : Integer | ('-'|'!'|'~') unary step2 语义规范 2.1 运算符 - 的结果是其操作数的相反数。 2.2 运算符 ~ 的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是 1 当且仅当其对应的二进制位是 0)。 2.3 当操作数不等于 0 时,逻辑非运算符 ! 的结果为 0;当操作数等于 0 时,其结果为 1。 2.4 MiniDecaf 中,负数字面量不被整体作为一个 token。它被看成是一个取负符号、后面是它的绝对值。 所以我们无法用字面量表示 -2147483648,但可以写成 -2147483647-1(待我们加上四则运算后)。 2.5 整数运算越界是未定义行为(undefined behavior),即对程序的行为无任何限制。 例如 -(-2147483647-1) 是未定义行为。这一条规则对于后续 step 引入的运算符也都适用。 对于含有未定义行为的 C/C++ 程序,在启用优化选项编译时,编译器可能产生意料之外的结果。 "},"docs/step3/intro.html":{"url":"docs/step3/intro.html","title":"实验要求","keywords":"","body":"实验指导 step3:加减乘除模 step3 我们要增加的是:加 +、减 -、乘 *、整除 /、模 % 以及括号 ( )。 语法上我们继续修改 expression,变成 expression : additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' 新特性的语义、优先级、结合性和 C 以及常识相同,例如 1+2*(4/2+1) == 7。 我们这种表达式语法写法可能比较繁琐,但它有几个好处: 和 C17 标准草案保持一致 把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 3 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 如何检查我是否通过自动测试(CI) 在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。 如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。 "},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导 本实验指导使用的例子为: 1+3 词法语法分析 在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点: 节点 成员 含义 Binary 左操作数 lhs,右操作数 rhs,运算类型 op 二元运算 对有兴趣的同学:虽然 -2 和 2-3 里面的 - 意义不同,但 lexer 不知道这点(parser 才知道),所以它们都会用同样的 token kind - 表示。 但有时,可能需要后续阶段告诉 lexer(或 parser)一些信息,最经典的例子是 “typedef-name identifier problem”。 语义分析 同 Step2。 中间代码生成 与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 作用 ADD T0,T1 将两个参数相加 因此,测例可以翻译成如下的中间代码: _T0 = 1 _T1 = 3 _T2 = ADD _T0, _T1 目标代码生成 step3 目标代码生成步骤的关键点与 step2 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。 li t0, 1 li t1, 3 add t2, t0, t1 思考题 我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是 0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如 x86-64 或 ARM)中和 RISCV-32 的 qemu 模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化) #include int main() { int a = 左操作数; int b = 右操作数; printf(\"%d\\n\", a / b); return 0; } 总结 本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。 "},"docs/step3/precedence.html":{"url":"docs/step3/precedence.html","title":"优先级和结合性","keywords":"","body":"优先级和结合性 操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下: 优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1 + 2 * 3应该解析成语法树add (1 mul (2 3))(前序表示),不能解析成mul (add (1 2) 3) 结合性是一个操作符的性质,例如-是左结合的,所以表达式1 - 2 - 3应该解析成sub (sub (1 2) 3),不能解析成sub (1 sub (2 3)) 我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。 但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习C或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的: expression : expression ('+'|'-') expression | expression ('*'|'/'|'%') expression | ('-'|'~'|'!') expression | Integer | '(' expression ')' 当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。 之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤: 把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。 指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了C语言操作符的优先级和结合性,因为我们的MiniDecaf语言是C语言的一个子集,所以这张表格也足够我们的语言使用了。 "},"docs/step3/spec.html":{"url":"docs/step3/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step3 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' step3 语义规范 3.1 二元操作符 * 的结果是操作数的乘积。 3.2 二元操作符 / 的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符 % 的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为 0,则其行为都是未定义的。当 b 不为 0 时,表达式 (a/b)*b + a%b 应该等于 a。 3.3 二元操作符 + 的结果是操作数的和。 3.4 二元操作符 - 的结果是第一个操作数减去第二个操作数所得的差。 3.5 除非特别声明,子表达式求值顺序是未规定行为(unspecified behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。 例如:执行 int a=0; (a=1)+(a=a+1); 之后 a 的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。 "},"docs/step4/intro.html":{"url":"docs/step4/intro.html","title":"实验要求","keywords":"","body":"实验指导 step4:比较和逻辑表达式 step4 我们要增加的是: 比较大小和相等的二元操作:、、>=, >, ==, != equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive 逻辑与 &&、逻辑或 || expression : logical_or logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality 新特性的语义、优先级、结合性和 C 以及常识相同,例如 1=2 是逻辑真(int 为 1)。 但特别注意,C 中逻辑运算符 || 和 && 有短路现象,我们不要求。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。整个 stage 1 只需要提交一份报告,你不需要单独为 step 4 准备报告。stage 1 的报告还需要额外包含 step 1 的思考题。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 如何检查我是否通过自动测试(CI) 在 git.tsinghua 上打开你的项目,在界面的右侧,Clone 按钮的下方,commit id 的左侧,可以看到一个画圈的 × 或者 √ 的图标,代表当前 commit 是否通过 CI 测试。 如果你希望获取详细测试输出,可以点击这个画圈的 × 或者 √ 的图标,或者在网页左侧选择 CI/CD 一栏的 Jobs,然后选择希望查看的评测结果即可。如果测试输出无法显示,可以点击输出框右上角四个按钮中最左边的一个,或者在当前地址(如.../jobs/123456)的后面加上/raw(如.../jobs/123456/raw),即可获取测试输出。 "},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导 本实验指导使用的例子为: 1 词法语法分析 本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。 语义分析 同 Step2。 中间代码生成 针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 LT T0,T1 给出 T0结果,成立为1,失败为0 需要特别注意的是,在 C 语言中,逻辑运算符 || 和 && 有短路现象,我们的实现中不要求大家考虑它们的短路性质。 因此,测例可以翻译成如下的中间代码: _T0 = 1 _T1 = 2 _T2 = LT _T0, _T1 目标代码生成 step4 目标代码生成步骤的关键点与 step3 相同,针对中间代码指令,选择合适的 RISC-V 指令来完成翻译工作。 li t0, 1 li t1, 2 slt t2, t0, t1 逻辑表达式会麻烦一点,因为 gcc 可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出 land 和 lor 对应的不使用跳转的汇编。 IR 汇编 lor or t3,t1,t2 ; snez t3,t3 land snez d, s1; sub d, zero, d; and d, d, s2; snez d, d; 注意 RISC-V 汇编中的 and 和 or 指令都是位运算指令,不是逻辑运算指令。 思考题 在 MiniDecaf 中,我们对于短路求值未做要求,但在包括 C 语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处? 总结 本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。 恭喜你!到目前为止,你已经成功实现了一个基于 MiniDecaf 语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个 Stage,我们将一起实现对变量的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️ "},"docs/step4/spec.html":{"url":"docs/step4/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step4 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement '}' type : 'int' statement : 'return' expression ';' expression : logical_or logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' step4 语义规范 4.1 关系操作符 (小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。 关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如 0 的含义与 (0 相同,即“如果 0 小于 1,那么判断是否有 1 小于 2,否则判断是否有 0 小于 2”。 4.2 判等操作符 ==(等于)和 !=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为 1,当不满足时结果为 0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为 1。 其优先级的设定会导致其含义在某些时候可能会反直观,例如,0 的运算结果为 1。 4.3 当操作数都非 0 时,逻辑与操作符 && 的结果为 1;否则其结果为 0。 4.4 当操作数有一个非 0 时,逻辑或操作符 || 的结果为 1;否则其结果为 0。 4.5 逻辑操作符 || 和 && 依然遵循语义规范 3.5,即其操作数的求值顺序是未指定行为。 换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。 "},"docs/step5/intro.html":{"url":"docs/step5/intro.html","title":"实验要求","keywords":"","body":"实验指导 step5:局部变量和赋值 这一步我们终于要增加变量了,包括: 变量的声明 变量的使用(读取/赋值) 此外,我们的 main 函数内部可以包含多条语句和声明了。 为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入 栈帧 的概念,并介绍它的布局。 语法上,step5 的改动如下: function : type Identifier '(' ')' '{' statement* '}' statement : 'return' expression ';' | expression? ';' | declaration declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : logical_or | Identifier '=' expression primary : Integer | '(' expression ')' | Identifier 我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。 请将你的作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 2 的实验报告需要放在 stage-2 这个 branch 下的 ./reports/stage-2.pdf。注意报告的标题是 stage-2 而不是 step-5。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step5/example.html":{"url":"docs/step5/example.html","title":"通过例子学习","keywords":"","body":"step5 实验指导 本实验指导使用的例子为: int main() { int x = 2024; return x; } 词法语法分析 针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供): 节点 成员 含义 TInt 无 整型 Identifier 名称 value 标识符(用于表示变量名) Assignment 同 Binary 赋值运算 Declaration 类型 var_t,标识符 ident,初始表达式 init_expr 变量声明 请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。 语义分析 从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。 在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。 类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为: int main() { int x = 2024; return x + y; } 那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2024; 这条语句后已经为其定义),而 y 无法找到,因此编译器需要在扫描到 y 对应的结点时报错。 符号表总是和作用域相关的。例如,在 C 语言中,我们可以在全局作用域中定义名为 \"a\" 的全局变量,同时在 main 函数中定义名为 \"a\" 的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑 main 函数作用域对应的单张符号表即可。 此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在 step11 中,我们会将左值的范围进一步包括数组元素。 对应到框架代码上: frontend/symbol 目录下为符号的实现。其中 symbol.py 为符号类的基类,varsymbol.py 为变量符号。在本节中,同学们只需要考虑变量符号即可。 frontend/scope 目录下为符号表的实现。其中 scope.py 为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个 Scope 对象,用以维护 main 函数中所有出现过的变量符号即可。 中间代码生成 我们首先来看本节指导用例所对应的中间代码: main: _T1 = 2024 _T0 = _T1 return _T0 针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 ASSIGN T0,T1 临时变量的赋值 从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于 MiniDecaf 语言中的基本类型只有 int 型,而 TAC 里的临时变量也是 32 位整数,因此,我们可以把 MiniDecaf 局部变量和 TAC 临时变量对应起来。 在扫描到 int x = 2024; 这条语句时,中间代码先把立即数 2024 加载到临时变量 _T1 中,然后再把 _T1 的值赋给临时变量 _T0,此时 _T0 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T0。例如,测例中直接用返回 _T0 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T0 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。 请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。 目标代码生成 本节指导用例对应如下 RISC-V 汇编代码: .text .global main main: li t1, 2024 mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令 mv a0, t0 ret 简单的启发式寄存器分配算法 在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。 实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 Step6 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。 基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条 TAC 指令(例如 _T2 = ADD _T1, _T0),对于每个源操作数对应的临时变量(本例中 _T1 和 _T0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的 _T2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。 在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。 在实验框架中已经给出寄存器分配算法的代码,集中在 backend/reg/bruteregalloc.py 中,主要有以下几个函数: accept:根据每个函数的 DFG(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。 bind:将一个 Temp(临时变量)与寄存器绑定。 unbind:将一个 Temp(临时变量)与相应寄存器解绑定。 localAlloc:根据活跃变量信息对一个 BasicBlock(基本块)内的指令进行寄存器分配。 allocForLoc:每一条指令进行寄存器分配。 allocRegFor:根据活跃变量信息决定为当前 Temp(临时变量)分配哪一个寄存器。 栈帧 上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。 栈帧的概念 在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在 Step11 中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。 需要注意的是,由于我们目前只支持一个 main 函数,直到 Step9 才会有多函数支持。所以现在关于栈帧的讨论,就只针对 main 函数的栈帧,并且集中于临时变量的存储和加载。 假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp 指向当前栈帧的栈底,sp 指向当前栈帧的栈顶,fp 和 sp 之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在 Step6 介绍,在当前的步骤不需要考虑)。 栈帧的建立与销毁 栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的 prologue。prologue 所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的 epilogue。epilogue 所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回 貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp 和 fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。 一个例子 #include int calculate() { int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int result = a + b + c + d + e; return result; } int main() { int result = calculate(); printf(\"%d\\n\", result); return 0; } 在这个示例中,我们在 calculate 函数内部声明了 5 个局部整数变量(a 到 e)。假设我们的处理器只有 4 个通用寄存器,在这种情况下,我们无法将 5 个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程: main 函数调用 calculate 函数,将返回地址压入栈中。 calculate 函数执行 prologue,将 fp 的值保存到栈中,然后将 sp 的值赋给 fp,此时 fp 和 sp 的值相同,都指向栈顶。 calculate 函数分配栈帧空间,在这个例子中,假设 a 到 d 保存在寄存器中,e 保存在栈帧中,因此需要分配 4 字节的栈帧空间。sp 指向栈顶,因此 sp 的值减去 4,即可得到 e 的地址。 计算完成后,calculate 函数执行 epilogue,将 fp 的值赋给 sp,并恢复 fp 的值,然后将返回地址弹出栈中,跳转到返回地址。 思考题 请将你的整个stage-2作业放置在分支stage-2下,你可以通过git checkout -b stage-2创建一个新的分支并继承当前分支的修改。 我们假定当前栈帧的栈顶地址存储在 sp 寄存器中,请写出一段 risc-v 汇编代码,将栈帧空间扩大 16 字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc-v 汇编中 addi reg0, reg1, 表示将 reg1 的值加上立即数存储到 reg0 中。) 有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的 Rust 代码(你不需要精确了解它的含义,大致理解即可): fn main() { let a = 0; let a = f(a); let a = g(a); } 其中f(a)中的a是上一行的let a = 0;定义的,g(a)中的a是上一行的let a = f(a);。 如果 MiniDecaf 也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?) 总结 Step5 主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。 "},"docs/step5/spec.html":{"url":"docs/step5/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step5 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' statement* '}' type : 'int' statement : 'return' expression ';' | expression? ';' | declaration declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : logical_or | Identifier '=' expression logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier step5 语义规范 5.1 每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。 5.2 变量的初始化表达式指定了变量的初始值。 5.3 同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。 5.4 对未声明的变量的使用是错误。 5.5 没有被初始化的(局部)变量的值是不确定的。 在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。 例如,int a = a + 1;,这样一条声明在语义上等价于 int a; a = a + 1; 5.6 局部变量的名字可以为 main。 5.7 赋值运算 = 的左操作数必须是一个可修改的左值(modifiable lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在 int a; a = 1; 中,a 即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。 就 step5 来说,这一点其实几乎已经被语法保证,因为其 = 的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。 5.8 在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。 5.9 赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。 5.10 一个函数中可以有任意多条 return 语句。 5.11 当 main 函数执行至 } 时,应终止执行并返回 0。 "},"docs/step6/intro.html":{"url":"docs/step6/intro.html","title":"实验要求","keywords":"","body":"实验指导 step6:作用域和块语句 step6 我们要增加块语句的支持。 虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。 随之而来一个问题是:不同变量可以重名了。 重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。 因此,变量名不能唯一标识变量了,同一个变量名 a 出现在代码不同地方可能标识完全不同的变量。 我们需要在符号表构建的过程中,确定 AST 中出现的每个变量名分别对应那个变量。 语法上改动不大 function : type Identifier '(' ')' compound_statement compound_statement : '{' block_item* '}' statement : 'return' expression ';' | compound_statement block_item : statement | declaration 语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。 当然,如果变量在使用前还是必须先被声明。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 3 的实验报告需要放在 stage-3 这个 branch 下的 ./reports/stage-3.pdf。注意报告的标题是 stage-3 而不是 step-6。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step6/example.html":{"url":"docs/step6/example.html","title":"通过例子学习","keywords":"","body":"step6 实验指导 本实验指导使用的例子为: int main() { int x = 1; { x = 2; int x = 3; } x = 4; return x; } 词法语法分析 针对块语句,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 Block 子语句列表 children 语句块 语义分析 从 Step6 开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管 main 函数里定义了变量 x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句 x = 2; 中的 x 就是指 main 作用域中定义的 x,而随后通过 int x = 3; 我们定义了另一个变量 x,这个 x 只在内部大括号括起的作用域内生效。 在 Step5 中,我们只维护了 main 的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(Scope Stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。 接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有 main 函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入 main 函数时,开启一个局部作用域,在扫描 int x = 1; 时定义变量符号 x,并将其加入栈顶作用域对应的符号表中。如下所示: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域(栈顶) 变量 x 接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描 x = 2; 时,我们需要分析 x 这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域 变量 x 局部作用域(栈顶) 空 对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量 x 为止。由于在栈顶作用域对应的符号表中不存在变量符号 x,于是向下继续查找。在 main 函数对应的作用域中,可以找到变量符号 x。因此,语句 x = 2; 中的 x 对应 main 函数作用域里定义的变量 x。 接下来,当扫描到语句 int x = 3; 时,定义了另一个变量 x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域 变量 x 局部作用域(栈顶) 变量 x 请务必注意上表中的两个变量 x 是不同的变量。 接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下: 作用域栈 符号表 全局作用域(栈底) 函数 main(可忽略) 局部作用域(栈顶) 变量 x 最后,扫描语句 x = 4; 时,从栈顶作用域符号表查找 x,所找到的变量 x 为 main 作用域定义的 x 变量。 中间代码生成 本步骤中无须新增新的 TAC 指令。 让我们来看看示例所对应的 TAC 代码: main: _T1 = 1 _T0 = _T1 # int x = 1; _T2 = 2 _T0 = _T2 # x = 2 _T4 = 3 _T3 = _T4 # int x = 3; _T5 = 4 _T0 = _T5 # x = 4; return _T0 显然,两个代码块里的变量 x 是不同的变量,因此它们分别对应着不同的临时变量。其中,_T0 对应着 main 作用域里的 x,而 _T3 则对应着内层代码块定义的变量 x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。 目标代码生成 不需要新增新的中间代码指令。 代码框架需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。 实现提示 在 step5 中,namer/typer 遍历时的上下文信息(参数 ctx)是单一的作用域。到了 step 6,你需要按照实验指导书中描述,把上下文信息改成“作用域栈”。也即定义 class Namer(Visitor[Scope, None]) 应改为 class Namer(Visitor[YourType, None]),其中 YourType 是你的作用域栈类型,你可以任意命名它。我们推荐把这个类的定义放在 frontend/scope/ 下。class Typer 也需要如上改动。 之前 step5 的全局唯一的作用域可以被当作“函数作用域使用”,在 visitFunction 入栈。然后在新的 visitBlock 中,再进一步将局部作用域压栈。最后,在所有这些方法的末尾,不要忘了把对应作用域退栈。 当只有一个作用域时,“不可以定义新变量a”就意味着当前“可以获取变量a的值”,反之亦然,所以“定义变量”和“获取变量”的检查都可以用 Scope.lookup 实现。但有了多个作用域之后,就出现了“既可以拿到a的值,也可以重新定义一个a”的情况。这需要重新考虑 Typer / Namer 中的每一个 Scope.lookup ,看她们是否需要换成新函数。 后续 stage-4 时,你需要一个机制来检查 break/continue 语句是否在一个循环内。这可以通过修改 namer/typer 中的对应结点来实现。另外,别忘了循环本身也是一个作用域! 后续如果你选做“全局变量”部分,可以在 Namer 和 Typer 的 transform 方法中先将全局作用域加入栈底,再往上才是 visitFunction 的函数作用域。 思考题 请画出下面 MiniDecaf 代码的控制流图。int main(){ int a = 2; if (a "},"docs/step6/dataflow.html":{"url":"docs/step6/dataflow.html","title":"数据流分析","keywords":"","body":"数据流分析 编译优化的基础是数据流分析。 基本块(basic block)和控制流图(control-flow graph)是用于进行上述分析的数据结构。 以下讲述数据流分析的内容中,所有的 CondBranch 指令为条件跳转指令,Branch 指令为跳转指令。 基本块 基本块是指一段这样的代码序列: 除出口语句外基本块中不含任何的 Branch、Beqz(条件为假时跳转)、Bnez(条件为真时跳转)或者 Return 等跳转语句(但可以包含 Call 语句)。 除入口语句外基本块中不含任何的 Label 标记,即不能跳转到基本块中间。 在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。 下面的例子中,代码中不同的基本块被标以不同的颜色: 也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。 控制流图 控制流图是一个有向图:它以基本块作为结点,如果一个基本块 A 执行完之后,有可能跳转到另一个基本块 B,则图中包含从 A 对应结点到 B 对应结点的有向边。对于以 Branch 语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以 CondBranch 语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。 为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行: 划分基本块。 建立基本块之间的连接关系。 基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程: 当遇到一个 Label 标记而且存在跳转语句跳转到这个行号时。 当遇到 Branch、CondBranch 或者 Return 等跳转语句时。 整个操作序列扫描完毕后,我们就成功建立了所有基本块。 在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图: 如果当前基本块以 Branch 结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。 如果当前基本块以 CondBranch 结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共 2 条边)。 如果当前基本块以 Return 结尾,则不需要加入新的边。 在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。 上面例子对应的控制流图如下: 活跃变量和活跃变量方程 从编译器中端出来的中间代码中,我们对 TAC 中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。 因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。 根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要 spill 到栈上)。 由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(liveness analysis),或者称为“活跃变量分析”。 一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。 下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合: TAC 代码 活跃变量集合 _T0 = 4 {_T0} _T1 = 3 {_T0, _T1} _T2 = _T0 * _T1 {_T0} _T3 = _T0 * _T0 {_T0, _T3} _T2 = _T3 * _T3 {_T0, _T2, _T3} _T2 = _T0 * _T2 {_T2, _T3} _T1 = _T2 * _T3 {_T1} return _T1 空集 一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念, 我们需要先引入下面四种针对基本块的集合: Def 集合:一个基本块的 Def 集合是在这个基本块内被定值的所有变量。所谓的定值 (definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:Store 语句不给任何变量定值,Load 语句则会给对应变量定值)。 LiveUse 集合:一个基本块的 LiveUse 集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。 LiveIn 集合:在进入基本块入口之前必须是活跃的那些变量。 LiveOut 集合:在离开基本块出口的时候是活跃的那些变量。 其中 Def 和 LiveUse 是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。 有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程: 该方程说的是一个基本块的 LiveOut 集合是其所有后继基本块的 LiveIn 集合的并集,而且 LiveIn 集合是 LiveUse 集合的变量加上 LiveOut 集合中去掉 Def 集合以后的部分。 这个方程的直观意义是: 一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。 在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本 块之前就要具有的了)。 根据这个方程,我们可以通过迭代更新的办法求出每个基本块的 LiveIn、LiveOut 集合,以下是求解的伪代码: for i 获得了每个基本块的 LiveIn 和 LiveOut 集合以后,我们需要进一步地计算基本块内每个 TAC 语句的 LiveIn 和 LiveOut 集合。如果我们把基本块内所有 TAC 语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的 “控制流图” 有以下三种特点: 每个节点的出度都是 1,也就是说 LiveOut(B) = LiveIn(Succ(B))。 由于每个结点只含有一个语句,因此其 Def 集要么是空集,要么只含有一个元素。 由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其 LiveUse 集合就是源操作数对应的所有变量。 基于上面三个特点,已经求出基本块的 LiveOut 集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出 LiveIn、LiveOut。 "},"docs/step6/spec.html":{"url":"docs/step6/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step6 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' compound_statement type : 'int' compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | compound_statement declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier step6 语义规范 6.1 根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。 6.2 (更新 5.6)如果一个标识符在两个作用域里面,这两个作用域必然是嵌套的,即一个内层作用域完全被另一个外层作用域所覆盖。且在内层作用域中,外层作用域里该标识符所指派(designate)的变量或函数是不可见的。 在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a + 1 的值是不确定的。 int a = 1; { int a = a + 1; } 6.3 (更新 5.3)对于同一个标识符,在同一个作用域中至多有一个声明。 6.4 (更新 5.4)使用不在当前开作用域中的变量名是不合法的。 "},"docs/step7/intro.html":{"url":"docs/step7/intro.html","title":"实验要求","keywords":"","body":"实验指导 step7: step7 我们要支持条件语句,包括 if 语句和条件表达式(又称三元/三目表达式,ternary expression)。 语法上的改动是: if 表达式 statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? 条件表达式 assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional if 语句的语义和 C 语言相同,注意条件表达式优先级只比赋值高。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 7 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step7/example.html":{"url":"docs/step7/example.html","title":"通过例子学习","keywords":"","body":"step7 实验指导 本实验指导使用的例子为: int main() { int x = 1; if (x) x = 2; else x = 3; return x; } 词法语法分析 针对 if 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供): 节点 成员 含义 If 分支条件 cond,真分支 then,假分支 otherwise if 分支语句 仿照 if 节点,还需要类似地实现条件表达式节点。 悬吊 else 问题 这一节引入的 if 语句既可以带 else 子句也可以不带,但这会导致语法二义性:else 到底和哪一个 if 结合? 例如 if(a) if(b) c=0; else d=0;,到底是 if(a) {if(b) c=0; else d=0;} 还是 if(a) {if(b) c=0;} else d=0;? 这个问题被称为 悬吊 else(dangling else) 问题。 如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。 我们人为规定:else 和最近的 if 结合,也就是说上面两种理解中只有前者合法。 为了让 parser 能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有 else 的 if。 按照这个规定,parser 看到 if(a) if(b) c=0; else d=0; 中第一个 if 时,选择没有 else 的 if; 而看到第二个时只能选择有 else 的 if ,也就使得 else d=0; 被绑定到 if(b) 而不是 if(a) 了。 需要说明的是 bison 默认在 shift-reduce conflict 的时候选择shift,从而对悬挂else进行就近匹配。 语义分析 本步骤中语义分析没有特别需要增加的内容,只需要在扫描到 if 语句和条件表达式时递归地访问其子结点即可。请注意 if 语句不总是有 else 分支,所以在递归到子结点时,请先判断子结点是否存在。 中间代码生成 从本步骤开始,由于 MiniDecaf 程序出现了分支结构,我们需要开始考虑跳转语句了。在 Step1-4 中,TAC 代码中的标签只有标志 main 函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用 _Lk 来表示跳转用标签,以此和函数入口标签区分开来。 为了实现 if 语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 作用 BEQZ T0, Label 若 T0 的值为0,则跳转到 LABEL 标签处 JUMP Label 跳转到 LABEL 标签处 现在让我们来看看示例所对应的 TAC 代码: main: _T1 = 1 _T0 = _T1 BEQZ _T0, _L1 _T2 = 2 _T0 = _T2 JUMP _L2 _L1: _T3 = 3 _T0 = _T3 _L2: return _T0 在这段 TAC 代码中,x 对应的临时变量为 _T0。如果 x 的值为真(不等于0),那么应当执行 then 分支 x = 2;,否则执行 else 分支 x = 3;。因此,我们设置了两个跳转标签 _L1 和 _L2,分别表示 else 分支开始位置和整个 if 语句的结束位置。如果 x 为假,那么应当跳转到 _L1 处,我们使用一条 BEQ 指令来执行。如果 x 为真,那么按顺序执行 then 分支的代码,并在该分支结束时,用一条 JMP 指令跳转到 if 语句的结束位置,从而跳过 else 分支。在 TAC 生成过程中,每当扫描到 if 语句时,都需要调用 TAC 的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。 当然,如果一条 if 语句没有 else 分支,那么只需要一个跳转标签即可。例如我们将例子中的 if 语句修改为 if (x) x = 2;,则对应的 TAC 代码可简化为: main: _T1 = 1 _T0 = _T1 BEQ _T0, _L1 _T2 = 2 _T0 = _T2 _L1: return _T0 同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。 目标代码生成 Step7 中目标代码生成主要是指令的选择以及 label 的声明,RISC-V 提供了与中间代码中 BEQZ 和 JUMP 类似的指令: step7: # RISC-V 汇编标签 beqz t1, step7 # 如果 t1 为 0,跳转到 step7 标签处 j step7 # 无条件跳转到 step6 标签处 思考题 我们的实验框架里是如何处理悬吊 else 问题的?请简要描述。 在实验要求的语义规范中,条件表达式存在短路现象。即: int main() { int a = 0; int b = 1 ? 1 : (a = 2); return a; } 会返回 0 而不是 2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。 总结 本节主要就是引入了跳转,后面 Step8 循环语句还会使用。 "},"docs/step7/spec.html":{"url":"docs/step7/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step7 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' '{' block_item* '}' type : 'int' compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | compound_statement | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier 注意:if 的 then 分支和 else 分支需要是一个语句(statement)而非声明(declaration)。 例如 if (1) int a; 不是合法的 MiniDecaf 程序。 step7 语义规范 7.1 条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于 0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于 0,我们会对第三个操作数求值。当第一个操作数的值为 0 时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非 0 时,条件表达式的求值结果为第三个操作数所求得的值。 不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。 7.2 对于 if 语句而言,当控制条件不等于 0 时,会执行第一个子句;当控制条件等于 0 时,如果有 else 分支,就会执行第二个语句,否则整个 if 语句的执行便已经完成。 7.3 如果出现悬吊 else(dangling else),要求 else 优先和最接近的没有匹配 else 的 if 匹配。 例如 if (0) if (0) ; else ; 等价于 if (0) { if (0) ; else; } 而非 if (0) { if (0) ; } else ;。 "},"docs/step8/intro.html":{"url":"docs/step8/intro.html","title":"实验要求","keywords":"","body":"实验指导 step8:循环语句 step8 我们要增加对循环语句,以及 break/continue 的支持: statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' 循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 4 的实验报告需要放在 stage-4 这个 branch 下的 ./reports/stage-4.pdf。整个 stage 4 只需要提交一份报告,你不需要单独为 step 8 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step8/example.html":{"url":"docs/step8/example.html","title":"通过例子学习","keywords":"","body":"step8 实验指导 本实验指导使用的例子为: for (int i = 0; i 词法语法分析 针对循环语句和 break/continue 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 While 循环条件 cond,循环体 body while 循环语句 For 初始语句 init,循环条件 cond,更新语句 update,循环体 body for 循环语句 Break 无 break 语句 Continue 无 continue 语句 其中,while 和 break 语句的实现已经在框架中给出,同学们可以参考并实现 for 和 continue 语句。 语义分析 本步骤语义分析阶段的处理方式和 Step7 中的 if 语句相类似,但是请额外注意以下两点: for 循环要自带一个作用域。在示例里,for (int i = 0; i 语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for (int i = 0; i 这也是合法的 MiniDecaf 程序。因此,在符号表构建阶段,扫描到 for 结点时,不要忘记开启一个局部作用域。 break 和 continue 语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到 break 和 continue 结点时,若当前不处于任何循环内,则报错。 中间代码生成 本步骤中没有需要新增的 TAC 指令。不过为了实现循环语句,需要仔细地考虑如何将 MiniDecaf 循环语句翻译成 TAC 的分支跳转指令。由于 while 循环可以看作 for 循环的特例,我们选择了 for 循环作为示例。 让我们先来看看示例对应的 TAC 代码: _T1 = 0 _T0 = _T1 # int i = 0; _L1: # begin label _T2 = 5 _T3 = LT _T0, _T2 BEQZ _T3, _L3 # i 为了实现所有可能的跳转,对每个 for 循环我们都需要定义三个跳转标签:begin, loop 和 break。它们的作用如下: begin 标签(示例中的 _L1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到 break 标签(示例中的 _L3)处。 loop 标签(示例中的 _L2)是执行 continue 语句时应当跳转到的位置。 break 标签是整个循环结束后的位置。如果循环条件不满足,或者执行了 break 语句,那么应当跳转到此处,执行循环之后的指令。 请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。 由于循环语句可以嵌套,所以 TAC 语句生成过程中需要动态维护 loop 标签和 break 标签,这样才能确定每一条 break 和 continue 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。 utils/tacgen/tacgen.py 里的 TACFuncEmitter 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 break/continue 标签的维护。 目标代码生成 由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。 思考题 将循环语句翻译成 IR 有许多可行的翻译方法,例如 while 循环可以有以下两种翻译方式: 第一种(即实验指导中的翻译方式): label BEGINLOOP_LABEL:开始下一轮迭代 cond 的 IR beqz BREAK_LABEL:条件不满足就终止循环 body 的 IR label CONTINUE_LABEL:continue 跳到这 br BEGINLOOP_LABEL:本轮迭代完成 label BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿 第二种: cond 的 IR beqz BREAK_LABEL:条件不满足就终止循环 label BEGINLOOP_LABEL:开始下一轮迭代 body 的 IR label CONTINUE_LABEL:continue 跳到这 cond 的 IR bnez BEGINLOOP_LABEL:本轮迭代完成,条件满足时进行下一次迭代 label BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿 从执行的指令的条数这个角度(label 不算做指令,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好? 我们目前的 TAC IR 中条件分支指令采用了单分支目标(标签)的设计,即该指令的操作数中只有一个是标签;如果相应的分支条件不满足,则执行流会继续向下执行。在其它 IR 中存在双目标分支(标签)的条件分支指令,其形式如下: br cond, false_target, true_target 其中cond是一个临时变量,false_target和true_target是标签。其语义为:如果cond的值为0(假),则跳转到false_target处;若cond非0(真),则跳转到true_target处。它与我们的条件分支指令的区别在于执行流总是会跳转到两个标签中的一个。 你认为中间表示的哪种条件分支指令设计(单目标 vs 双目标)更合理?为什么?(言之有理即可) "},"docs/step8/spec.html":{"url":"docs/step8/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step8 语法规范 灰色部分表示相对上一节的修改。 program : function function : type Identifier '(' ')' compound_statement type : 'int' compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')' | Identifier step8 语义规范 方便起见,我们称 for 循环括号中的三个表达式/声明自左向右依次为 init、ctrl 和 post。 例如 for (i=0; i 中,i=0 是 init,i 是 ctrl,i=i+1 是 post。 8.1 有两种循环语句:for 循环、while 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。 8.2 while 循环的控制表达式的求值在循环体的每次执行之前。 8.3 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。 8.4 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。 8.5 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 for 循环的 init 是一条声明,则其所声明的变量所属的作用域是整个 for 循环语句的作用域(包含 init、ctrl、post 和循环体)。 例如,for (int i=0;;i=i+1) { int i=1; return i; } 是合法的代码片段。 8.7 continue 语句和 break 语句要么出现在循环体里,要么其就是循环体。 8.8 执行一条 continue 语句,意味着将程序的执行跳转至该条 continue 语句所在的最小的循环语句的循环体的末尾。 例如,for (int i=0;i 等价于 for (int i=0;i。 8.9 执行一条 break 语句,意味着终止该条 break 语句所在的最小的循环语句的执行。 "},"docs/step9/intro.html":{"url":"docs/step9/intro.html","title":"实验要求","keywords":"","body":"实验指导 step9:函数 step9 开始,我们要支持多函数了。 我们需要支持函数的声明和定义: program : function* function : type Identifier '(' parameter_list ')' (compound_statement | ';') parameter_list : (type Identifier (',' type Identifier)*)? 我们还需要支持函数调用: expression_list : (expression (',' expression)*)? unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' 语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持 void 返回类型,这可以通过忽略函数的 int 返回值实现。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 5 的实验报告需要放在 stage-5 这个 branch 下的 ./reports/stage-5.pdf。注意报告的标题是 stage-5 而不是 step-9。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step9/example.html":{"url":"docs/step9/example.html","title":"通过例子学习","keywords":"","body":"step9 实验指导 本实验指导使用的例子为: int func(int x, int y) { return x + y; } int main() { return func(1, 2); } 词法语法分析 针对函数特性,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 Function 返回类型 return_type,函数名 ident,参数列表 params,函数体 body 函数 Parameter 参数类型 var_type,变量名 ident 函数参数 Call 调用函数名 ident,参数列表 argument_list 函数调用 语义分析 本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历 AST 构建符号表的过程中,栈底符号表一直存在,不会被弹出。 此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成: int func(int x, int y) { int x = 1; return x + y; } 那么语义检查时应当报错。 函数符号的实现在 frontend/symbol/funcsymbol.py 中。 中间代码生成 为了实现函数,我们需要设计至少一条中间代码指令来表示函数调用,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 CALL LABEL(T0, T1, ...) 调用函数 LABEL,传入的实参为T0、T1等 下面是一段含有函数调用的代码片段: T0 = CALL foo(T1, T2) T1和T2作为被调用函数foo的实参,而调用后的返回值保存在T0中。 实际上这与高级语言的函数语义非常相似。你可能会觉得一个与源语言语义几乎没差别的中间代码函数调用指令有点多余,所以我们也提供了另一种方案。 在早先的文档中,函数调用涉及CALL和PARAM两种指令。CALL指令只对应实际汇编代码的函数调用,而PARAM T0指令用于传递一个参数。 假设我们有若干个参数,可以依次使用 PARAM 命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量 _T0, _T1 ... 中。比如我们有这样一段 TAC 程序: PARAM A PARAM B PARAM C XX = CALL XXX 那么,在进入 XXX 函数时,相当于执行了: _T0 = A _T1 = B _T2 = C 因此,示例可以对应如下的 TAC 程序: func: _T2 = ADD _T0, _T1 return _T2 # 参数 x 和 y 分别对应 _T0, _T1 main: _T0 = 1 PARAM _T0 # 将 _T0 的值作为参数 x _T1 = 2 PARAM _T1 # 将 _T1 的值作为参数 y _T3 = CALL func # 调用函数 return _T3 同学们可以选择使用这两种方案中的任何一种,也可以自行设计函数调用的中间表示。 思考 在本次实验中我们设置了一道关于函数调用中间表示设计的思考题。下面的问题或许能帮助你思考(你无需回答这里的问题,这里也没有标准答案): 中间表示应该更接近源语言(高级语言)还是目标语言(例如汇编语言)? 到目前为止实验文档给出的参考中间表示更接近源语言还是目标语言? 如果你感兴趣,可以了解一下LLVM IR。 目标代码生成 下面是一种可能的目标汇编代码,你的编译器生成的代码无需与其完全一致。 .text .global main func: # start of prologue addi sp, sp, -56 # end of prologue # start of body add t0, a0, a1 mv a0, t0 j func_exit # end of body func_exit: # start of epilogue addi sp, sp, 56 # end of epilogue ret main: # start of prologue addi sp, sp, -56 sw ra, 52(sp) # end of prologue # start of body li t0, 1 li t1, 2 mv a0, t0 mv a1, t1 call func mv t0, a0 mv a0, t0 j main_exit # end of body main_exit: # start of epilogue lw ra, 52(sp) addi sp, sp, 56 # end of epilogue ret 首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。 完成这个步骤的过程中你可能需要回顾step 2中对于后端翻译的介绍和step 5中对于寄存器分配和栈帧的介绍来回想一下后端每个部分在做什么。 函数调用 程序代码里的一个函数调用,包含了下面一系列的操作: (汇编)保存 caller-saved 寄存器。 准备参数,完成传参。 执行汇编中的函数调用指令,开始执行子函数直至其返回。 拿到函数调用的返回值,作为函数调用表达式的值。 具体依赖于1的处理方式,可能需要恢复 caller-saved 寄存器。 上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制实现函数调用。 调用约定 我们给出RISC-V标准调用约定供大家参考,你可以不按照标准调用约定实现,这样的话你需要自己定义一种调用约定。如果你实现的是标准调用约定,你的编译器生成的代码还可以与gcc生成的代码进行链接,比如链接标准库,实现输入输出等功能。 RISC-V 的标准调用约定 caller-saved 和 callee-saved 寄存器 上表给出 RISC-V 中 32 个整数寄存器的分类。所谓 caller-saved 寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓 callee-saved 寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些 callee-saved 寄存器的值。 具体的保存方法并不限制,但一般都使用栈来保存。 函数参数以及返回值的传递 函数参数(32 位 int)从左到右存放在 a0 - a7 寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第 9 个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用 gcc 编译程序进行验证。 返回值(32 位 int)放在 a0 寄存器中。 实战教学 我们推荐大家按照以下步骤实现,当然这不是唯一的实现方式。前中端的部分在前面的step中涉及很多,大家应该已经比较熟悉,这里着重关注后端要做的事。 要做什么 由于调用约定的存在,中间表示里的函数调用指令无法像我们之前接触到的常规指令一样简单地翻译为实际汇编指令,我们必须生成额外代码进行寄存器保存、参数传递等操作以符合调用约定。这些额外操作会出现在真正的函数调用指令call周围,我们称之为“(生成)函数调用时的处理”或“对于调用者的处理”。 只是让caller调用函数的过程遵循调用约定还不够,被调用的每个函数callee也要遵守规范,保存恢复callee-saved寄存器、从正确的位置获取caller传入的参数。因为每个函数都是(潜在的)被调用者,故对于所有函数都要生成这些操作。我们称之为“生成函数体时的处理”或“对于被调用者的处理”。 你在后端主要需要实现的即为“对于调用者的处理”与“对于被调用者的处理”两部分。 对于调用者的处理 这里我们需要关注源文件backend/reg/bruteregalloc.py中的BruteRegAlloc类。 根据调用约定,调用其它函数后caller-saved即volatile寄存器中的值全部是无效的。这意味着如果函数调用前caller-saved寄存器中存放了后续仍活跃的临时变量,它们必须被倒腾到别的地方,如callee-saved寄存器或栈上。因此我们先将活跃且在caller-saved寄存器中的临时变量保存到栈上,这实际上让所有caller-saved寄存器变得空闲,以便于接下来在a0到a7中容纳参数。 保存活跃的临时变量:首先保存所有位于caller-saved寄存器中且活跃的临时变量,然后解除所有caller-saved寄存器与临时变量的绑定关系。你可以用subEmitter.emitStoreToStack和unbind来达到上述效果。 这是否意味着原本就在caller-saved寄存器中的参数也被丢到了栈上?似乎有些多余? 是的,但这样处理比较简单。比较理想的方案是直接将参数从一个寄存器复制到目标参数寄存器,但这可能带来一些边角情况,你需要谨慎处理。 将参数放入寄存器:所有传参用到的寄存器(a0~a7)都是caller-saved寄存器,1中的操作保证了传参所需要的寄存器都是空的,因此直接将参数放到寄存器中即可。具体地,用物理寄存器a0~a7传递被调用函数的前8个参数,我们假设这8个参数对应的临时变量(Temp)为v0~v7。对于第i个参数,目标是将vi的值加载入ai。若vi已经与某个物理寄存器xj绑定,则可以生成指令mv ai, xj;如果vi的值不在物理寄存器中,调用emitLoadFromStack。(思考: 如果前面暂时不解除volatile寄存器的绑定,这里可能会有什么问题? 你有更高效的解决方案吗?) 为什么有的临时变量可能在寄存器中? 因为我们在步骤1中只操作了caller-saved寄存器。如果某个临时变量存放在callee-saved寄存器中,那么它不会在上一步骤被放到栈上。 用栈传递参数(可选):调用约定规定a0至a7存放不下的参数需要用栈传递(为了降低大家的实现难度,基础实验中我们不对参数超过8个的传参实现进行测试)。若参数vi在物理寄存器xj中,则直接将xj“压栈”;否则任选一个a0~a7之外的volatile寄存器tk,我们先通过emitLoadFromStack将vi加载到tk,然后“压栈”tk(建议直接使用t0寄存器)。需要注意这里的“压栈”不能直接用emitStoreToStack,我们需要手动生成一条NativeStoreWord指令,而且它无需也不应该修改栈指针sp。在所有参数入栈后,统一修改sp。 进行真正的函数调用:可以使用emitNative来生成一条调用指令。如果上一步中存在栈传参,别忘了在调用后把sp改回来(清除栈上传递的参数)。 妥善处理函数返回值:根据调用约定,函数返回值会存放在a0寄存器中。如果你在指令选择中为函数调用单独增添了将a0复制到目标临时变量的指令,这里无需处理。你也可以选择直接将目标临时变量绑定到a0。 记录函数调用情况(可选):你也许需要在SubroutineEmitter中记录当前函数是否调用过其它函数,以便减少不必要的ra保存和恢复。 对于被调用者的处理 这里我们需要关注源文件backend/riscv/riscvasmemitter.py中的RiscvSubroutineEmitter类和backend/reg/bruteregalloc.py中的BruteRegAlloc类。被调用者需要从正确的位置获取到传入的参数,因此需要处理寄存器和临时变量的对应关系;同时在被调用函数的结尾我们要准确无误地返回到调用处,因此需要处理和返回地址相关的信息。 处理返回地址:具体需要保存和恢复ra寄存器,相关实现在emitFunc函数中。框架的现有部分已经帮助大家处理好了callee-saved寄存器的保存和恢复,你可以参照这部分实现ra寄存器的保存和恢复。(备注:严格来讲ra并不是callee-saved寄存器。ra会在什么情况下被修改?不过你可以选择总是保存和恢复ra。) 处理传入的函数参数和临时变量的对应关系:将传入的参数与临时变量绑定,这样在函数体中就可以直接使用这些参数。BruteRegAlloc类中的的bindings变量记录了临时变量和物理寄存器的对应关系,你可以使用bind, unbind函数来完成这些操作。思考应该在何处进行这个绑定操作。 一些可能带来困惑的地方 ra是一个caller-saved寄存器,但它有着和callee-saved寄存器相似的处理方式。一般而言只有当某个函数作为caller调用了其它函数时,它存放在ra中的返回地址才会被覆盖掉,这与其它caller-saved寄存器类似。然而鉴于ra的特殊用途,你可以把它视作一个callee-saved寄存器。 你可能会发现我们的框架能支持的栈空间大小有限,存放不了太多的临时变量。目前而言的确是这样,你无需考虑那种情况。 思考题 你更倾向采纳哪一种中间表示中的函数调用指令的设计(一整条函数调用 vs 传参和调用分离)?写一些你认为两种设计方案各自的优劣之处。 具体而言,某个“一整条函数调用”的中间表示大致如下: _T3 = CALL foo(_T2, _T1, _T0) 对应的“传参和调用分离”的中间表示类似于: PARAM _T2 PARAM _T1 PARAM _T0 _T3 = CALL foo 为何 RISC-V 标准调用约定中要引入 callee-saved 和 caller-saved 两类寄存器,而不是要求所有寄存器完全由 caller/callee 中的一方保存?为何保存返回地址的 ra 寄存器是 caller-saved 寄存器? 总结 到这里,你已经完成了所有基础实验。有了对函数的支持,你的编译器也变得更加强大,你可以试着用它写一些更有意思的代码。 "},"docs/step9/spec.html":{"url":"docs/step9/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step9 语法规范 灰色部分表示相对上一节的修改。 program : function* function : type Identifier '(' parameter_list ')' ( compound_statement | ';') type : 'int' parameter_list : (type Identifier (',' type Identifier)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' primary : Integer | '(' expression ')' | Identifier 我们暂不要求支持不包含函数体的函数声明。 step9 语义规范 9.1 在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。 9.2 在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。 在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。 9.3 函数是可以递归调用的。 9.4 (更新 5.10)执行一条 return 语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的 caller,语句中的表达式的值会返还给 caller 作为函数调用的表达式的值。一个函数可以有任意多条 return 语句。 9.5 函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。 例如,int f(int x) { int x; } 不合法,但 int f(int x) { { int x; } } 合法。 9.6 如果一个不是 main 的函数执行到了它的 },且其返回值被 caller 所使用,则这是一个未定义行为。 对于感兴趣的同学:C 语言中规定只有使用了返回值才是未定义行为,而 C++ 中规定不管返回值有没有被使用,都是未定义行为。 我们没有支持 void 类型,但可以忽略返回值达到类似的效果。 “执行到了 }” 意味着执行时没有通过 return 返回,例如 int f(){if(0) return 0;}。 实现的时候,你可以直接让所有函数都默认返回 0,语义规范说 main 之外的函数没有 return 是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回 0 当然也是可以的,而且更清晰简单。 "},"docs/step10/intro.html":{"url":"docs/step10/intro.html","title":"实验要求","keywords":"","body":"实验指导 step10:全局变量 step10 我们要支持的是全局变量,语法改动非常简单: program : (function | declaration)* 全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的 .bss 段或 .data 段里。 访问它也不能通过 fp 加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。 汇编课上应该讲过,实际中(包括 gcc 和 qemu)使用的可执行文件的格式是 ELF(Executable and Linking Format)。 .text 是其中存放代码的段(section),.bss 和 .data 都是其中存放数据的段,前者零初始化后者须指定初始值。 对有兴趣的同学: 全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。 简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。 当然,广义上的编译器就囊括了这所有阶段。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 10 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step10/example.html":{"url":"docs/step10/example.html","title":"通过例子学习","keywords":"","body":"step10 实验指导 本实验指导使用的例子为: int x = 2024; int main() { return x; } 词法语法分析 针对全局变量,我们需要新设计 AST 节点来表示它,只需修改根节点的孩子类型即可:原先表示整个 MiniDecaf 程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。 语义分析 本步骤引入全局变量,在引入全局变量之后,AST 根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历 AST 构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。 中间代码生成 经过 Step5 的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 LOAD T1, offset 临时变量 T1 中存储地址,加载与该地址相差 offset 个偏移的内存地址中的数据 LOAD_SYMBOL symbol symbol 为字符串,加载 symbol 符号所代表的地址 有了上述两条指令,可以将测试用例翻译如下: main: _T0 = LOAD_SYMBOL x _T1 = LOAD _T0, 0 return T1 需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。 请注意,翻译所得的 TAC 代码中没有为全局变量赋予初始值(2024)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。 目标代码生成 Step10 中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。 翻译中间代码 实际上,我们提供的中间代码设计和 RISC-V 汇编的思想是一致的,RISC-V 汇编中有对应 LOAD 和 LOAD_SYMBOL 的指令,我们直接给出翻译结果: main: la t0, x # _T0 = LOAD_SYMBOL x lw t1, 0(t0) # _T1 = LOAD _T0, 0 mv a0, t1 ret 将全局变量放到特定的数据段中 到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的 x 变量符号究竟存在哪里,如果所生成的汇编程序不给出 x 的定义,程序是有bug的。实际上,RISC-V 提供了一系列的汇编指令,用以声明全局变量 x 所对应的数据段。 下面给出 RISC-V 用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可: .data .globl x x: .word 2024 上例中,.data 表示输出到 data 数据段;.globl x 声明 x 为全局符号;.word 后是一个 4 字节整数,是 x 符号对应的初始值。 按照汇编约定,data 段中存放已初始化的全局变量,未初始化的全局变量则存放在 bss 段中。举例而言,下面的示例将未初始化的全局变量 x 存放到 bss 段中。其中,.space 表示预留一块连续的内存,4 表示存储空间大小为 4 字节。 .bss .globl x x: .space 4 思考题 写出 la v0, a 这一 RiscV 伪指令可能会被转换成哪些 RiscV 指令的组合(说出两种可能即可)。 参考的 RiscV 指令链接:https://github.com/TheThirdOne/rars/wiki/Supported-Instructions "},"docs/step10/spec.html":{"url":"docs/step10/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step10 语法规范 灰色部分表示相对上一节的修改。 program : (function | declaration)* function : type Identifier '(' parameter_list ')' ( compound_statement | ; ) type : 'int' parameter_list : (type Identifier (',' type Identifier)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' primary : Integer | '(' expression ')' | Identifier step10 语义规范 10.1 对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如 2123),对初始化表达式是非字面量的情况不做任何要求(例如 a 或 f() 或 2+3)。 C 其实也支持非字面量的编译期常量,例如 int a=1+3;。编译器可以计算出 1+3==4 然后让它等价于 int a=4;。 但为了实现简便,我们就不要求支持这点。 C 不允许 int a=f(); 因为 f() 不是编译器常量; 而 C++ 甚至可以支持 int a=f();,其大致实现为 int a=0; 然后在 main 之前执行的初始化函数中 a=f();。 10.2 我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。 int a; int a=2; int a; int main(){ return a;} 是合法的 C 代码,不过不是合法的 C++ 代码,也许 C++ 的处理方式更符合你的直觉。 为了简单,我们不要求这点。比如对于形如 int a; int a=2; 或 int a; int a; 的代码片段,你可以以任意方式处理。 10.3 如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值 0。 "},"docs/step11/intro.html":{"url":"docs/step11/intro.html","title":"实验要求","keywords":"","body":"实验指导 step11:数组 step11 的目标是支持数组: 语法上没有太大改动, 数组的初始化: declaration : type Identifier ('[' Integer ']')* ('=' expression)? ';' 数组的下标操作 postfix : primary | Identifier '(' expression_list ')' | postfix '[' expression ']' step11 难度不大,但有了数组让我们能够写很多有意思的程序了,step11 之前甚至 MiniDecaf 连快速排序都写不了。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 11 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step11/example.html":{"url":"docs/step11/example.html","title":"通过例子学习","keywords":"","body":"step11 实验指导 本实验指导使用的例子为: int x[10]; int main() { int y[10]; return 0; } 词法语法分析 针对数组,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 IndexExpr 索引基底 base,索引下标 index 索引运算 语义分析 由于 step 11 里引入了数组,现在我们的变量类型不只是 int 型了,还包括 int 型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。 注意:引入数组后,左值不再一定是 identifier 了,还有可能是如 a[0][1] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。 frontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。 有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。 中间代码生成 数组和普通变量类似,可以分为局部数组和全局数组。 全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1. 需要申请更大的 bss 段内存)。 针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令 ALLOC 用于分配内存空间: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 ALLOC size 分配 size 字节的内存,并返回内存首地址 采用 ALLOC 指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分): main: T0 = ALLOC 40 # 一个 int 类型为 4 个字节 T1 = 0 return T1 通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。 除了分配数组,我们还需要考虑如何访问数组元素。通过 ALLOC 指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用 Step10 中引入的 LOAD 指令来实现,我们还需要引入一条类似的 STORE 指令将值写入数组元素。 那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int 型的大小为 4 个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组 a[d1][d2]...[dn],访问元素 a[i1][i2]...[in] 可以等价于访问 a[i1d2d3...dn + i2d3...*dn + ... + in]。在将数组索引翻译成 TAC 时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。 目标代码生成 同中间代码生成,全局数组自行思考实现。 对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,Step5 栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针 sp 进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。 思考题 C 语言规范规定,允许局部变量是可变长度的数组(Variable Length Array,VLA),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似 int n = 5; int a[n]; 这种,但仍然不允许类似 int n = ...; int m = ...; int a[n][m]; 这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动? 提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。 你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。 "},"docs/step11/spec.html":{"url":"docs/step11/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step11 语法规范 灰色部分表示相对上一节的修改。 program : (function | declaration)* function : type Identifier '(' parameter_list ')' ( compound_statement | ; ) type : 'int' parameter_list : (type Identifier (',' type Identifier)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('[' Integer ']')* ('=' expression)? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | unary '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' | postfix '[' expression ']' primary : Integer | '(' expression ')' | Identifier step11 语义规范 11.1 一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。 11.2 我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。 所以,我们不要求支持变长数组 int a[n]; 或不定长数组 int a[];。 11.3 对于下标运算 a[b],要求 a 是一个数组类型,b 是一个整数类型,a[b] 是 a 中的第 b 个元素(从 0 开始计数)。 11.4 下标运算越界是未定义行为。 即便是类似 int a[4][5]; a[1][7] 这种,同样也是未定义行为。 "},"docs/step12/intro.html":{"url":"docs/step12/intro.html","title":"实验要求","keywords":"","body":"实验指导 step12:为数组添加更多支持 step12 的目标是支持数组的初始化和传参: 语法上没有太大改动, 数组的初始化: declaration : type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';' 数组的传参: function : type Identifier '(' parameter_list ')' (compound_statement | ';') parameter_list : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)? 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 6 的实验报告需要放在 stage-6 这个 branch 下的 ./reports/stage-6.pdf。整个 stage 6 只需要提交一份报告,你不需要单独为 step 12 准备报告。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step12/example.html":{"url":"docs/step12/example.html","title":"通过例子学习","keywords":"","body":"step12 实验指导 本实验指导使用的例子为: int func(int param[]){ param[0] = 1; return 0; } int main() { int arr[4] = {1,2}; func(arr); return arr[0] + arr[1] + arr[2]; } 词法语法分析 我们需要增加一个数组的初始化列表,可以直接修改上一节数组的AST结点增加一个数组用于记录初始化元素。 函数的参数列表需要加上数组类型。 语义分析 由于 step 12 里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。 int fun(int a[][12]){ a[0][1] = 1; return 0; } 中间代码生成 在C语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。 而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为 0。例如: int arr[3]={1,2}; // 等价于 int arr[3]={1,2,0}; 当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个 memset 这样的函数来实现数组的清零。由于gcc的汇编器通常自带一个memset函数,我们这里采用fill_n命名。 // fill_n 函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位) int fill_n(int *dst, int res, int cnt); 因此,上述初始化可以等价地转化为: int arr[3]; fill_n(arr, 0, 3); a[0] = 1; a[1] = 2; 目标代码生成 数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。 思考题 作为函数参数的数组类型第一维可以为空。事实上,在 C/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计? 总结 恭喜你实现了 MiniDecaf 语言的所有特性。回过头看,我们从常量表达式开始,逐步为编译器增加变量、作用域等特性,又引入控制逻辑,最后实现全局变量和数组,编译器逐渐变得功能齐全。编译器每一个新的特性都带来了新的挑战,而你通过自己的智慧,逐步解决了这些挑战。顺利完成实验后,相信你对编译器也有了自己独特的理解。 "},"docs/step12/spec.html":{"url":"docs/step12/spec.html","title":"规范","keywords":"","body":"规范 每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。 step12 语法规范 灰色部分表示相对上一节的修改。 program : (function | declaration)* function : type Identifier '(' parameter_list ')' ( compound_statement | ; ) type : 'int' parameter_list : (type Identifier ('[' ']')?(('['Integer']')*)? (',' type Identifier ('[' ']')?(('['Integer']')*)?)*)? compound_statement : '{' block_item* '}' block_item : statement | declaration statement : 'return' expression ';' | expression? ';' | 'if' '(' expression ')' statement ('else' statement)? | compound_statement | 'for' '(' expression? ';' expression? ';' expression? ')' statement | 'for' '(' declaration expression? ';' expression? ')' statement | 'while' '(' expression ')' statement | 'break' ';' | 'continue' ';' declaration : type Identifier ('=' expression)? ';' | type Identifier ('[' Integer ']')+ ('=' '{' (Integer (',' Integer)*)? '}')? ';' expression_list : (expression (',' expression)*)? expression : assignment assignment : conditional | unary '=' expression conditional : logical_or | logical_or '?' expression ':' conditional logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('|'>'|'|'>=') additive additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : postfix | ('-'|'~'|'!') unary postfix : primary | Identifier '(' expression_list ')' | postfix '[' expression ']' primary : Integer | '(' expression ')' | Identifier step12 语义规范 12.1 多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号 int a[2][2] = {1, 2, 3, 4}; 会将数组变为 a[0][0] = 1; a[0][1] = 2; a[1][0] = 3; a[1][1] = 4; 12.2 数组传参是支持不定长度的 int fun(int a[]) 是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题 "},"docs/step13/readme.html":{"url":"docs/step13/readme.html","title":"选做二说明","keywords":"","body":"选做实验二说明 选做实验二是给希望继续深入了解编译器知识的同学设计的实验部分,这部分内容具有较大难度,请同学们依据自己的时间安排情况决定是否选做。由于我们的实验框架并非为实现这个Step设计,改动部分可能较大,请确保你对框架有完整的了解再开始实验。这部分以报告评分,没有额外的测试样例。 "},"docs/step13/intro.html":{"url":"docs/step13/intro.html","title":"实验要求","keywords":"","body":"实验指导 step13:寄存器分配算法改进 step13 的目标是实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法,并以此代替 step5 中提到的当前代码框架中的分配算法。 语法上没有改动。 我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/.pdf,比如 stage 7 的实验报告需要放在 stage-7 这个 branch 下的 ./reports/stage-7.pdf。整个 stage 7 只需要提交一份报告。 你需要: 改进你的编译器,支持上面提到的寄存器分配算法。 除了替换位于 backend/reg/bruteregalloc.py 的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看 step 6 的数据流分析一节。 你需要为代码添加合理的注释以便批阅。 你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 详细说明你的代码的运行逻辑 举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的? 对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step13/example.html":{"url":"docs/step13/example.html","title":"实验指导","keywords":"","body":"step13 实验指导 本节实验要求实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法。推荐大家完整读一遍论文,并通过论文作者的讲解课件,(如果前面的链接失效了,可以打开这个链接)辅助理解。论文文末的附录有完整的伪代码,你可以在它的基础上完成本次实验。 下面简要介绍一些你可能需要的预备知识。 回顾:启发式寄存器分配算法 在step 6 的数据流分析一节中,提到了活跃变量的概念。即对于一个临时变量来说,如果它在某个执行点处具有的值会在这个执行点以后被用到,那么它在这个执行点处是活跃的。 而在step5 中提到了一个简单的启发式寄存器分配算法。在给一个变量分配寄存器时,它的大致思路如下: 首先检查是否存在空闲的寄存器,有则直接分配给当前变量。 否则,检查是否存在寄存器,使得它关联的临时变量在当前位置已经不是活跃变量了,如是则把它关联到当前变量。 否则,说明所有寄存器所关联的变量都是活跃的。此时随机选择某个寄存器,把它关联的临时变量存到栈帧上(这叫做溢出(spill)到内存),然后把它关联到当前变量。 基于图染色的寄存器分配算法 我们可以换一种角度去思考寄存器分配问题:两个变量在什么情况下不能被分配到同一个寄存器?当且仅当两个变量同时活跃时,它们不能被分到同一个寄存器。可以把这样的一对变量定义为相干的(interference),或者说相互冲突的。 重用一下 step 6 中活跃变量的例子: TAC 代码 活跃变量集合 相干寄存器 _T0 = 4 {_T0} _T1 = 3 {_T0, _T1} (_T0,_T1) _T2 = _T0 * _T1 {_T0} _T3 = _T0 * _T0 {_T0, _T3} (_T0,_T3) _T2 = _T3 * _T3 {_T0, _T2, _T3} (_T0,_T2),(_T0, _T3),(_T2, _T3) _T2 = _T0 * _T2 {_T2, _T3} (_T2,_T3) _T1 = _T2 * _T3 {_T1} return _T1 {} 这时我们再提出一个问题:最少可以用多少个寄存器完成上面代码的寄存器分配? 容易发现,至少需要3个寄存器。因为 _T0,_T2,_T3 相互冲突,需要各一个寄存器,而 _T1 可以跟 _T2 或者 _T3 共用寄存器。 这个思路相比代码框架中的启发式寄存器分配算法有以下好处: 尽量减少使用的寄存器个数,在函数调用或返回时需要保存或恢复尽量少的 callee save/caller save 寄存器,减少变量溢出到内存的次数。这一部分对运行效率的影响很大,因为访存通常比访问寄存器慢很多。 方便全局优化寄存器分配,减少基本块之间的 move 指令。 事实上,我们可以用图染色问题去描述“相互冲突的变量”: 图染色问题:有 n 个结点,m 条边,你需要给每个结点指定一个颜色,使得任意两个有边直接相连的结点的颜色不同。 寄存器分配问题:有 n 个变量,m 组冲突的变量。你需要给每个变量指定一个寄存器,使得任意两个冲突的变量的寄存器不同。 上面这两个问题描述是一一对应的。如图所示(暂时先忽略图中的虚线边),如果把每个字母看成一个变量,每种颜色看成一个寄存器,那么图中的染色方案就对应了一个寄存器分配方案。 如何找到所有冲突的变量 这里只提一个最简单的思路:看上面我们分析时列出的表格,先列举出每一步的活跃变量集合,然后两两连边。 如何解决寄存器分配对应的图染色问题 假定我们有 k 种颜色可用于染色(对应 k 个寄存器可用于存放变量),那么可以依照下面的顺序执行 寻找图中是否有连接了少于 k 条边的结点,如果有,把它记录下来然后从图中删除。重复这个步骤直到不存在少于 k 条边的结点。 如果图中已经没有结点,则进入步骤3;否则,此时图中所有点都连接了至少 k 条边。这时,选择一个点(可以随机选,但可以通过其他信息来优化你的选择),把它记录下来然后从图中删除。然后重复步骤1。 按删除的逆序恢复所有结点。 当恢复一个从步骤1删除的结点时,因为当前它连接了少于 k 条边,所以我们总能为它指定一个颜色,使之不和相邻的最多 k-1 个点的颜色冲突。 当恢复一个从步骤2删除的结点时,检查它连接的所有边。如果我们足够幸运,与它相邻的所有点没有用完所有 k 种颜色,那么我们可以为这个点指定一个不冲突的颜色。否则,为它选择一个颜色,这意味着它和另一个变量被分配到同一个寄存器里。别担心,这不会导致算法失败,只是会使得这个变量在使用时需要从栈帧保存与恢复,对应启发式寄存器分配算法中溢出(spill)到内存的情况。 将每种颜色对应到寄存器上,生成后端代码。 基于复制指令的寄存器合并 在图染色的基础上有一种合并寄存器的进阶方法:合并通过复制指令(copy instructions)(其实就是赋值)传值的寄存器。 例如下面的代码 int f() { int a = 1; int b = a; int c = a + 2; int d = b + 3; return a + b + c + d; } 用上面提过的活跃变量分析可以算出,在 c = a + 2 执行时 a 和 b 都是活跃变量。但观察代码可以发现 a b 事实上存的是同样的值,只需要用同一个寄存器存就行。这篇论文使用了这个优化,并改进了前人的类似优化方案。 这样我们可以在图染色问题中把仅因复制(其实就是赋值)指令相互冲突的一对点之间的连边标记成虚线,表示如果它们最终染同一种颜色,就可以删去这条边然后合并这两个点。这有助于把上述图染色算法中从步骤2删去的点挪到步骤1删去,避免溢出到内存的情况。 可以直接合并这两个点吗? 可以,但可能会导致产生出连接许多边的结点,反而使得后续染色困难,不得不溢出到内存。这实际上是更早的 Chaitin 的解决方案。 可以在保证合并后边数 的情况下合并这两个点吗? 可以,但这样合并的点数比较少,优化效果差。这实际上是更早的 Briggs 的解决方案。 可以不合并但强制这两个点同色吗? 不可以。如下图所示,j,b因复制指令冲突,j,f因其他指令冲突,但b,f之间没有冲突,所以涂色算法中有可能会把 b,f涂成相同颜色。这样就会导致 j 的颜色和 b 相同,从而意外地和 f 相同,导致溢出到内存。 这篇实验要求实现的论文的解决方案 把图中当前所有结点中,连接了至少 k 条边的结点标记为 significant-degree 的。看上述图染色算法流程,可以发现如果一个点不是 significant-degree 的,它会在步骤1被删除。 对于仅因复制指令相互冲突的一对点 (a,b),可以如此检查它们是否可以合并: 统计与 a 或者 b有边相连的所有结点中有多少个 significant-degree 点。如果有 个,说明最多有 k-1 个结点不会在在步骤1被删除,因此如果 a b 合并,这个合并后的点也会在步骤1被删除。在步骤1被删除就意味着合并后的 a 和 b 一定能找到一种不和周围任何一个点冲突的颜色,从而不会出现上图的情况。 如果不能合并,那么把 a 和 b 中间的虚线边改为实线,表示不再考虑二者合并的情况。 上面的说明只是简要介绍了算法的原理,请阅读论文 TOPLAS'1996: Iterated Register Coalescing 获取更详细的说明。别忘了论文末尾的附录有完整的伪代码实现。 "},"docs/contest/intro.html":{"url":"docs/contest/intro.html","title":"大实验简介","keywords":"","body":"大实验参考文档 注:大实验文档目前还在完善中,会不断迭代更新。如果对于评分部分有更新,会通知所有选择大实验的同学。 介绍 大实验编译器目标:完成一个具有编译优化功能的高性能编译器。部分达到系统能力设计大赛——编译系统设计赛的要求。 参加大实验的同学应该需要自己从头设计一个符合 minidecaf 规范 的编译器,包括前端、中端和后端。参加大实验可以替代期末考试,详见评分方法一节。 有两个原因我们要求同学们从头设计一个编译器: 为了简化课程实验,我们的基础实验框架在设计时并未考虑大实验的需求(例如:IR 的类型系统简易、没有区分基本块),在现有框架的基础上重构实现编译优化反而在一定程度上限制了编译器的优化能力。 大实验设计的其中一个目标是鼓励同学们参加系统能力设计大赛,比赛有查重要求,如果同学们使用相同的框架开始参加大实验并参与后续比赛,可能存在代码被判定为重复的问题。 大实验在 2024 年相对于 2023 年有一些变化,主要体现在: 增加了实验文档 语法要求从 Sysy 语法改为了 MiniDecaf,主要差别在于const标志符号、数组初始化等语法上的区别,难度有所降低 不再要求完成基础实验以后再进行大实验 大实验的语法规范与 step12 的规范是一致的。不过有一点需要注意: 我们要求实现函数声明,即一个函数可以只有声明没有定义,主要是用于评测性能,比如读入数据和打印结果,我们将会把你的代码和一个外部库进行链接编译。这意味着,你需要实现标准的 RiscV 调用约定。 你可以选择 C++,Rust 实现你的编译器,你的编译器生成的目标代码可以是 RISC-V 或者 ARM 架构的,这与比赛要求一致。如果你想用其他语言实现,请告知助教。 大实验为组队实验,4人一组(可以更少,但是评分标准保持不变)。没有特殊情况时,同组同分。 注意:大实验工作量较大,并不推荐所有同学都参加。 编译器的构成 一个编译器主要由以下几个部分构成: 前端:负责词法分析、语法分析、语义分析,生成抽象语法树(AST)。 词法分析器(Lexer):将输入的源代码转换为一个个的标记(Token)。 语法分析器(Parser):将标记(Token)转换为抽象语法树(AST)。 语义分析器(Semantic Analyzer):检查AST是否符合语法规则和语义规则。 中端:负责中间代码生成、优化。 中间代码生成器(Intermediate Representation Generator):将 AST 转换为中间代码。 优化器(Optimizer):对中间代码进行优化。 后端:负责目标代码生成。 目标代码生成器(Target Code Generator):将优化后的中间代码转换为目标机器代码。 寄存器分配:将中间代码中的变量分配到实际的物理寄存器中。 可以通过后续的文档了解每个部分的更多细节。 参考实现进度及顺序 编写前端、设计 IR、完成中间代码生成 (两周) 前端:你可以使用现有的框架完成前端(如:Antlr、Flex & Bison)辅助你生成 AST,完成词法分析、语法分析、语义分析以及中间代码生成。如果你想在这个过程中锻炼你对分析方法的理解,你可以自己实现 LR(1)、LL(1) 等分析器。 设计 IR 也是需要进行代码编写的,可以参考基础实验框架的IR在代码层面是如何实现的(utils/tac)。 中间代码生成:将 AST 转换为 IR,你可以参考基础实验框架的中间代码生成部分(frontend/tacgen)。 此阶段分工建议:两位同学负责前端,两位同学负责中间表示设计和中间代码生成。 完成后端(两周) 实现后端代码生成、栈帧管理 实现一个简单的寄存器分配方案,保证编译器能够完成全流程的运行,然后再考虑优化。 增加中端优化和后端优化(剩下的时间) 中端优化:死代码消除、常量传播、复写传播、循环不变量外提等等 后端优化:图染色寄存器分配、线性扫描法、指令折叠等等 分工建议:两位同学负责中端优化,两位同学负责后端优化。 进度检查 第一次进度检查:第六周周六(10.19) 你的编译器应该能完成将简单的程序转换为 RISC-V 汇编代码,可以选择在这次检查时退出大实验。如果退出大实验,你需要在第八周周日(11.3)Stage 3 截止之前完成 Stage 1-3 的实验,不会有额外扣分。 第二次进度检查(中期检查):第八周周六(11.2) 这时候你的编译器应该能通过基础实验的所有测试样例(Stage 1-5)。如果不能完成,可能会被取消大实验的资格,同时你需要重新完成基础实验你需要在第十周周日(11.17)Stage 4 截止前完成 Stage 1-4 ,不额外扣分。也可以继续大实验不做基础实验,但是至少要在 Stage-5 让你的编译器能够通过 Stage 1-5 的测试样例。 你们需要提交一个简单的报告,说明每个同学在实验过程中的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除5分(总评 5%)) 第三次进度检查:第十二周周六(11.23) 你们需要提交一个简单的报告,说明每个同学在上次检查后的分工以及完成的功能。(如果缺少这部分实验报告,那么报告成绩将会被扣除 5 分(总评 5%)) 第四次进度检查(期末检查):第十六周周末(12.29) 你的编译器应该能通过所有的测试样例(Stage 1-6),包括附加测试样例。 你应该提交一个完整的实验报告,包括实验的设计、实现、优化以及遇到的问题和解决方法。不需要卷页数,但应该说明了你们实现的功能。(如果缺少这部分实验报告,你将不会得到任何报告成绩) 评分方法 因为大实验实现难度较高且工作量较大,优化目标可能相对难以完成,因此我们给出两种评分方案: 选项一 完成竞赛第二阶段的优化编译器,替代期末考试 成绩占比 90%,剩余 10% 为书面作业和日常成绩。 其中这90%构成为: 50% 正确性测试:你需要通过 Stage 1-6 的所有测试样例以及附加测试的测试样例,这样你可以获得 50% 的正确性得分。 10% 报告,介绍你的编译器的设计、你们进行的优化以及每个人完成的功能。 30% 性能测试,将根据你的编译器的性能进行评分。 性能评分方案: 附加测试中performance部分测试样例,以 gcc 打开-O2优化的性能的 60% 为满分,按照比例折算。如果一个程序 gcc 编译后运行时间为 12s ,如果你的程序执行时间为 20s 即为满分。 你的单个测试点的得分为: min{100, 100 * GCC编译程序运行时间 * 1.67 / 你的程序运行时间} 所有测试点取算数平均值,最后结果 * 30% 作为你的最终性能测试成绩。 评测将会在我们提供的服务器上进行,通过 QEMU 模拟 RISC-V 或者 ARM 架构的 CPU 运行你的程序。经过测试 QEMU与 真实硬件的性能相对差值是比较恒定的(如比较 gcc -O1与-O2)。 实验评测仓库在这里。 你也可以选择参加期末考,那么你的成绩将会是评分方案一、二取最高的一个。 选项二 仅完成竞赛第一阶段(达到课程基础实验的要求) 实验部分占比与基础实验一致,你不需要完成思考题,但是需要简单介绍你的编译器是怎么完成每一个 step 的。根据通过测试样例情况评分。 完成 Stage 1 - 5 实验成绩 35% ,书面作业和日常成绩 10% ,期末成绩 55%。 完成 Stage 1 - 6 实验成绩 42% ,书面作业和日常成绩 10% ,期末成绩 48%。 完成 Stage 1 - 7 实验成绩 50% ,书面作业和日常成绩 10% ,期末成绩 40%。 "},"docs/contest/frontend.html":{"url":"docs/contest/frontend.html","title":"前端设计","keywords":"","body":"前端梗概 前端的主要任务是将源代码转换为抽象语法树(Abstract Syntax Tree, AST),为中端和后端生成中间表示和目标代码提供基础。在这个过程中,前端会经历词法分析、语法分析、语义分析等多个步骤。 词法分析与语法分析 词法分析的任务是将源代码转换为一系列的符号(token),每个符号代表源代码中的一个最小单位,如关键词、标识符、操作符等。词法分析器会忽略空格、注释等非必要信息,并在此过程中进行基本的错误检测(如非法字符)。 下面我们以 Antlr 框架为例,介绍如何进行词法分析和语法分析。你也可以使用其他工具如 Flex & Bison, lex & yacc 等。 Antlr简介 Antlr (Another Tool for Language Recognition) 是一个功能强大的解析器生成器,能够根据给定的语法规则自动生成词法分析器和语法分析器。Antlr 支持多种语言,包括 Java、Python 和 C++。通过定义语法文件(.g4 文件),Antlr 能够帮助我们生成解析源代码所需的词法分析和语法分析工具。 在这个项目中,我们推荐使用 Antlr 来处理 MiniDecaf 的词法分析和语法分析部分。 第一部分:依赖环境准备 ANTLR 工具需要 JVM 才能执行。 直接使用包管理器安装: sudo apt install openjdk-19-jdk 1. 获取 ANTLR 你需要从 ANTLR Download 下载 antlr-4.13.2-complete.jar(截至文档写作时此为最新版)。 使用以下命令(记得把/path/to/antlr-4.13.2-complete.jar替换成你的 antlr 路径)测试是否能正常使用: java -jar /path/to/antlr-4.13.2-complete.jar 你应该能看到类似以下的输出: ANTLR Parser Generator Version 4.13.2 -o ___ specify output directory where all output is generated -lib ___ specify location of grammars, tokens files -atn generate rule augmented transition network diagrams -encoding ___ specify grammar file encoding; e.g., euc-jp ... ... 3. ANTLR 运行时的编译链接 1. 安装 ANTLR 运行时库 ANTLR 运行时库是解析器生成的代码在运行时所依赖的代码。对于 C++,你可以从 ANTLR4 runtime Cpp的 GitHub 仓库下载预编译的库或者自己编译安装。但是官方的 CMAKE 脚本会从官方 git 仓库下载 ANTLR C++ 运行时并构建它,你在编译过程中很可能会因为网络等问题而失败,如果难以解决,可以直接 clone ANTLR 运行时库的 C++ 源代码到你的代码仓库里,并为你的整个项目编写一个 CMAKE 文件(强烈建议)。出于方便考虑,我在这里给出一个可能的项目结构与CMAKE文件实例. 项目结构 example-tree/ ├── 3rd_party/ │ └── antlr4-runtime/ # 第三方库 ANTLR 运行时目录(在源码的 src 目录下) │ ├── CMakeLists.txt # antlr4-runtime 的 CMake 配置文件,需要你手动添加一个 │ └── antlr4-runtime.h │ └── antlr4-common.h │ └── ... ├── CMakeLists.txt # 根目录下的 CMake 配置文件 └── src/ # 源代码目录 ├── frontend/ # 前端代码目录 │ ├── lexer/ # 词法分析相关代码 │ │ └── *.cpp # 词法分析器源文件 │ │ └── *.h # 词法分析器头文件 │ ├── parser/ # 语法分析相关代码 │ │ └── *.cpp # 语法分析器源文件 │ │ └── *.h # 语法分析器头文件 │ └── ast/ # 抽象语法树相关代码 │ ├── *.cpp # AST 源文件 │ ├── *.h # AST 头文件 ├── backend/ # 后端代码目录 ├── midend/ # 中间代码目录 └── main.cpp # 程序入口文件 对应的 CMakeLists.txt # 指定 CMake 的最小版本要求 cmake_minimum_required(VERSION 3.10) # 设置项目名称和使用的语言(CXX 代表 C++) project(my_compiler CXX) # 设置 C++ 标准为 C++17 set(CMAKE_CXX_STANDARD 17) # 设置 C++ 编译器标志,这里没有额外添加,使用默认 set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS}\") # 设置调试模式下的编译器标志,开启 DEBUG 宏 set(CMAKE_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG\") # 使用 GLOB_RECURSE 模式递归查找 src 目录下所有的 .cpp 文件 file(GLOB_RECURSE SRC \"src/*.cpp\") # 添加项目的 src 目录到头文件搜索路径 include_directories(src) # 添加第三方库目录 antlr4-runtime 到头文件搜索路径 include_directories(3rd_party/antlr4-runtime) # 添加 antlr4-runtime 子目录作为子项目进行构建 add_subdirectory(3rd_party/antlr4-runtime) # 创建名为 my_compiler 的可执行文件,将所有源文件编译链接到这个可执行文件中 add_executable(my_compiler ${SRC}) # 将 antlr4_runtime 库与 my_compiler 可执行文件链接 target_link_libraries(my_compiler antlr4_runtime) 为 antlr4-runtime 添加一个相应的 CMakeLists.txt # 3rd_party/antlr4-runtime/CMakeLists.txt file(GLOB_RECURSE ANTLR4_SRC \"*.cpp\") add_library(antlr4_runtime STATIC ${ANTLR4_SRC}) 第二部分:文法文件的编写与 parse tree 的生成 终于,在上一部分中,我们完成了项目的环境准备工作,可以着手开始编写代码了。在这一节中,我们会开始编写一个简单的 C 语言子集 simpleC 的文法文件 simpleC.g4,并利用它生成一个 parse tree。最终把一个简单的 C 语言程序 test.c 转换为一个 parse tree。 test.c int main(){ int a = 1 ; int b = a + 2 ; int c = a + b + 1 ; return c ; } parse tree parse tree: (program (funcDeclaration int main ( ) { (statements (statement int a = (expression 1) ;) (statement int b = (expression (expression a) + (expression 2)) ;) (statement int c = (expression (expression (expression a) + (expression b)) + (expression 1)) ;) (statement return (expression c) ;)) })) 1. 编写simpleC.g4 .g4 文件是 ANTLR 使用的文法文件,用于定义语言的语法规则。它使用基于上下文的语法规则来描述语言的结构。一个典型的 .g4 文件包含以下几个部分: 语法定义:声明语法的名称,这是识别语法文件的关键字。这个语法名称必须要和包含这个语法的文件名完全相同(甚至包括大小写,因为 ANTLR 是对大小写敏感的) 规则:定义语言中各种结构的模式。 词法规则:定义词法单元(如关键字、标识符、符号等)。 忽略规则:通常用来忽略空格、换行等空白字符。 操作:在规则中嵌入的代码,用于在解析过程中执行特定的动作。 示例 .g4 文件结构 // 文件名: SimpleC.g4 grammar SimpleC; // 语法定义 // 程序的起始规则 program: funcDeclaration ; // 函数声明规则 funcDeclaration: Type ID LP RP LC statements RC ; // 语句的规则 statements: statement* ; // 声明和表达式 statement: Type ID ASSIGN expression SEMI // varDeclaration | expression SEMI | 'return' expression SEMI ; // 表达式的规则 expression: expression PLUS expression // AddExpr | expression MINUS expression // SubExpr | expression MUL expression // MulExpr | expression DIV expression // DivExpr | '(' expression ')' // ParenExpr | INT // IntExpr | ID // ID ; // 类型的规则(这里只支持 int 类型) Type: 'int' ; // 整数的规则 INT: [0-9]+ ; // 标识符的规则 ID: [a-zA-Z_] [a-zA-Z0-9_]* ; // 忽略空格和换行 WS: [ \\t\\r\\n]+ -> skip ; // 定义括号和符号 LP: '(' ; RP: ')' ; LC: '{' ; RC: '}' ; SEMI: ';' ; ASSIGN: '=' ; PLUS: '+' ; MINUS: '-' ; MUL: '*' ; DIV: '/' ; 通过编写 .g4 文件,我们能够为 ANTLR 提供足够的信息来构建一个能够理解和处理特定语言的解析器。这种形式的文法定义是编译器设计和语言工具开发的基础。 2. 使用文法文件生成 lexer & parser 在确认环境配置无误后,我们可以使用 ANTLR 和文法文件生成所需的 lexer & parser,只需要执行 java -jar /path/to/antlr-4.13.2-complete.jar -Dlanguage=Cpp -no-listener -visitor -o src/frontend/lexer_parser simpleC.g4 -no-listener 和 -visitor 选项分别用于禁止生成 listener(默认是激活的)和激活 visitor 模式。如果你还不知道 visitor 是什么,不用担心,我们稍后会看到。 -o 选项用于设置输出目录。我们将在 src/frontend/lexer_parser 目录中输出生成的代码。 3. 使用 lexer & parser 现在我们可以看到如何在 C++ 程序中使用我们生成的解析器。 // src/main.cpp #include \"antlr4-runtime.h\" #include \"frontend/lexer/SimpleCBaseVisitor.h\" #include \"frontend/lexer/SimpleCLexer.h\" #include \"frontend/lexer/SimpleCParser.h\" #include #include using namespace antlr4; using namespace tree; using namespace std; int main(int argc, const char* argv[]) { ifstream f_stream; f_stream.open(argv[1]); ANTLRInputStream input(f_stream); SimpleCLexer lexer(&input); CommonTokenStream tokens(&lexer); SimpleCParser parser(&tokens); ParseTree* tree = parser.program(); cout toStringTree(&parser, true) 这是我们程序的主文件,展示了如何在 C++ 中设置使用 ANTLR。前几行(3-5)包含的头文件基本上是你总是会包含的标准头文件。第一个是使用运行时所需的,其他两个是为生成的词法分析器和解析器准备的。显然,它们的名字会根据语法的名字而改变,但概念保持不变。 16-21 行展示了使用 ANTLR 解析器的标准方式: 我们将输入转换为 ANTLR 格式 我们创建一个在该输入上工作的词法分析器 我们使用词法分析器产生一个 token 流 我们创建一个在令牌流上工作的解析器 然后,21 行使用解析器的一个方法,该方法对应于语法规则中的一个,以获得规则匹配的第一个节点。在我们的例子中,只有一个节点program,这是因为我们定义规则的方式。然而,原则上那可以是任意的,每次你调用相应的方法,你都会得到一个相应的结果。 现在,使用 cmake 构建并运行我们自己实现的编译器,你将会看到 test.c 对应的 parse tree 被输出到终端中。 ./my_compiler test.c 总的来说,我们现在利用 ANTLR 实现了词法分析器分析输入(即字符)并产生 token,然后解析器分析 token 以产生 parser tree。这样,我们就把一个看似被复杂地组织起来的文本转化成了一个“树”,之后我们就可以使用 visitor 模式遍历这个树并对这个树的每个节点进行一些操作。 第三部分:AST 的生成 在生成 AST 时,我们通常是在解析树(parse tree)的基础上,通过提取语法的核心结构,生成更加精简的抽象语法树(AST)。AST 的节点通常只包含与程序执行相关的核心信息,去除了冗余的语法信息。 1. 定义 AST 结点 首先,我们需要为 AST 定义结点类型。每个结点对应于一种语法结构,比如条件语句、循环、表达式等。以下是一个简单的 If 语句结点的定义: class IfNode : public ASTNode { public: std::unique_ptr cond; // 条件表达式 std::unique_ptr then; // then 语句块 std::unique_ptr other; // optional 的 else 语句块 bool has_otherwise; IfNode(std::unique_ptr cond, std::unique_ptr then, std::unique_ptr other = nullptr) : cond(std::move(cond)), then(std::move(then)), other(std::move(other)), has_otherwise(other != nullptr) {} }; 这个 IfNode 结点包含条件表达式cond、then 语句块和可选的 else 语句块。 2. 使用 Visitor 模式生成 AST 在生成 AST 时,我们需要遍历解析树(parse tree)并根据其结构生成对应的 AST 结点。这里我们可以使用 Visitor 模式,针对解析树的不同节点调用对应的处理函数,来生成合适的 AST 结点。 假设我们有一个解析树 IfContext,对应的语法规则如下: ifStatement : 'if' '(' expr ')' statement ('else' statement)? ; 我们可以继承 ANTLR 自动生成的 BaseVisitor 函数,为 IfContext 实现 Visitor 函数,以生成 IfNode: class ASTBuilderVisitor : public SimpleCBaseVisitor> { public: // 访问 ifStatement 节点 std::unique_ptr visitIfStatement(SimpleCParser::IfStatementContext *ctx) override { // 访问并生成条件表达式的 AST 结点 auto cond = visit(ctx->expr()); // 访问并生成 then 语句的 AST 结点 auto thenBranch = visit(ctx->statement(0)); // 检查是否有 else 分支,并生成对应的 AST 结点 std::unique_ptr elseBranch = nullptr; if (ctx->statement(1)) { elseBranch = visit(ctx->statement(1)); } // 构建 IfNode,并返回 return std::make_unique(std::move(cond), std::move(thenBranch), std::move(elseBranch)); } }; 这个 ASTBuilderVisitor 类的 visitIfStatement 方法遍历解析树中的 ifStatement 结点,生成 IfNode 并填充其条件表达式、then 和 else 分支。通过 Visitor 模式,代码变得结构清晰且便于扩展。 生成 AST 的完整流程 编写 Antlr 语法文件,定义源语言的解析规则。 使用 Antlr 生成词法分析器和语法分析器,解析源代码生成解析树。 实现 Visitor 模式的遍历代码,逐个解析树结点处理并生成 AST 结点。 利用 AST 结点构建抽象语法树,最终生成中间表示或目标代码。 通过这种方式,我们能够将解析树转换为精简的抽象语法树(AST),为后续的中端和后端处理提供基础。 第四部分:语义分析 语义分析的目标是检查程序的合法性,确保程序符合语言的语义规则。在大作业中,这一部分的实际作用主要是检测出 MiniDecaf 的错误测例并报告编译错误。这一步包括符号解析(名称绑定)和类型检查,以保证变量、函数等符号被正确地定义、引用和使用,并且操作符和操作数之间的类型匹配。 符号解析(namer) 符号解析的任务是将程序中使用的标识符(如变量名、函数名等)与它们的定义绑定起来。具体来说,符号解析会遍历抽象语法树(AST),并记录每个作用域中的符号定义。当在同一作用域或嵌套作用域中遇到符号引用时,解析器能够正确地找到该符号的定义或者报错。 符号表 符号解析的核心工具是符号表(symbol table)。符号表是一个数据结构,用来存储标识符的名字及其相关信息(如类型、作用域、存储位置等)。通常符号表会随着作用域的嵌套而形成层级结构,以便在不同作用域之间正确解析符号。 class SymbolTable { public: std::unordered_map> table; std::shared_ptr parent; // 指向父作用域的符号表 SymbolTable(std::shared_ptr parent = nullptr) : parent(parent) {} // 在当前作用域查找符号 std::shared_ptr lookup(const std::string &name){ //··· } // 向符号表中插入新的符号 void insert(const std::string &name, std::shared_ptr symbol) { //··· } }; 在符号解析过程中,我们会为每个作用域生成一个符号表,并随着进入和退出作用域对符号表进行管理。例如,在遇到函数定义时会创建一个新的局部符号表,当函数调用或变量引用时,会查找符号表以确保该符号已定义且在正确的作用域中。 作用域管理 符号解析还需要管理作用域。通常在遇到新的作用域时(如函数、代码块、循环等),创建一个新的符号表,并在退出该作用域时销毁它。在解析过程中,确保每个符号在其可见的作用域内被正确解析。 class SemanticAnalyzer { public: std::shared_ptr currentScope; void enterScope() { currentScope = std::make_shared(currentScope); } void exitScope() { currentScope = currentScope->parent; } void declareVariable(const std::string &name, const std::shared_ptr &symbol) { currentScope->insert(name, symbol); } std::shared_ptr resolveVariable(const std::string &name) { return currentScope->lookup(name); } }; 通过 enterScope() 和 exitScope() 来管理作用域嵌套,当处理一个新的作用域(如函数或代码块)时,会创建新的符号表并进行相应的符号解析。 类型检查(typer) 类型检查的任务是确保程序中的所有操作符和操作数的类型兼容。例如,在算术表达式中,类型检查会确保运算符作用于正确的类型,并且操作数之间的类型一致。类型检查可以有效避免不合法的操作,如对整数进行除以字符串的运算。 类型系统 编译器通常需要支持一套类型系统。类型系统包含基本类型(如整型、浮点型、布尔型等)和复杂类型(如指针、数组、结构体等)。类型检查器会根据这些类型系统对程序中的每个表达式、赋值和函数调用进行检查。 以下是一个简单的类型检查器示例: class TypeCheckerVisitor : public ASTVisitor { public: std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override { auto leftType = visit(node->left); // 检查左操作数的类型 auto rightType = visit(node->right); // 检查右操作数的类型 // 检查操作数的类型是否匹配 if (!leftType->equals(rightType)) { throw std::runtime_error(\"Type mismatch in binary expression.\"); } // 返回表达式的类型 return leftType; } std::shared_ptr visitVariableDecl(VariableDeclNode *node) override { // 检查变量声明的类型是否正确 auto varType = node->type; if (!isValidType(varType)) { throw std::runtime_error(\"Invalid type for variable.\"); } return varType; } // 其他类型检查逻辑... }; 在该类型检查器中,我们遍历 AST 中的每个节点,检查其类型是否正确。例如,在二元表达式中,我们会检查左右操作数的类型是否匹配,并且确保运算符可以作用于该类型。此外,对于变量声明和函数调用等其他结构,也需要检查它们的类型。 类型转换 由于 MiniDecaf 只支持有限的数据类型,所以类型转换的部分可能并不需要实际实现。 类型检查的过程中,编译器有时需要进行类型转换。例如,将一个整数与浮点数进行加法运算时,编译器可能需要将整数提升为浮点数。编译器可以通过隐式类型转换来完成这类操作,但必须遵循一定的类型转换规则。 class TypeCheckerVisitor : public ASTVisitor { public: std::shared_ptr visitBinaryExpr(BinaryExprNode *node) override { auto leftType = visit(node->left); auto rightType = visit(node->right); // 进行隐式类型转换 if (leftType->isInteger() && rightType->isFloat()) { leftType = floatType(); // 将整数提升为浮点数 } else if (leftType->isFloat() && rightType->isInteger()) { rightType = floatType(); } if (!leftType->equals(rightType)) { throw std::runtime_error(\"Type mismatch in binary expression.\"); } return leftType; } }; 通过检查和处理类型转换,我们确保程序的类型一致性,避免在运行时出现不可预知的错误。 预期目标 完成符号解析和类型检查后,编译器应该能够: 通过符号表解析所有的变量和函数定义,确保它们在正确的作用域中被引用; 检查所有的操作数和运算符的类型是否匹配; 报告语义错误,如未定义的符号、类型不匹配等。 通过这些步骤,语义分析能够确保源代码符合语言的语义规则,为后续的中端优化和代码生成打下坚实的基础。 前端参考资料 Antlr 官方文档 MiniDecaf 教程 编译原理经典书籍 Dragon Book 前端预期目标 完成这部分内容后,你的编译器应该能够通过 Antlr 生成词法分析器和语法分析器,能够将 MiniDecaf 程序解析为抽象语法树(AST),并完成对 MiniDecaf 程序的语义分析。 "},"docs/contest/midend/midend.html":{"url":"docs/contest/midend/midend.html","title":"中端设计","keywords":"","body":"中端介绍 中端的设计包括:中间表示的设计、中端代码生成和中端优化。 中间表示 前端的解析和中端设计密不可分,通常,我们需要设计一个中间表示(Intermediate Representation, IR)来连接前端和后端。也只有我们定义好了中间表示,才能将来自于前端的AST转换为中端代码。 什么是中间表示? 中间表示(也称中间代码,intermediate representation / IR)是介于语法树和汇编代码之间的一种程序表示。 它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。 由于源语言(MiniDecaf)和目标语言(RISC-V 汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(IR)的所带来的优势如下: 缩小调试范围,通过把 AST 到汇编的步骤一分为二。如果目标代码有误,通过检查 IR 是否正确就可以知道:是AST 到 IR 翻译有误,还是 IR 到汇编翻译有误。 将 AST 转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。 适配不同指令集(RISC-V, x86, MIPS, ARM...)和源语言(MiniDecaf, C, Java...)。由于不同源语言的 AST 不同,直接从 AST 生成汇编的话,为了支持 N 个源语言和 M 个目标指令集,需要写 N * M 个目标代码生成模块。如果有了 IR,只需要写 N 个 IR 生成器和 M 个汇编生成器,只有 N + M 个模块。 便于优化,中间表示可以附带一些额外信息,比如类型信息、控制流信息等,这些信息辅助编译器进行优化。 例如以下是一个IR代码的例子: _main: _T1 = 0 _T2 = 100 _T3 = 0 _L0: _T4 = _T1 从这个IR例子中,我们可以看到,相对于c语言,IR中没有了while、for这样的循环语句,而是通过标签和jump、branch指令来实现循环。高级语言的许多特性在IR中都被抹去了,让代码更加简洁,便于优化。而相对于汇编代码,IR中无需关注寄存器、函数调用的上下文切换等信息,与具体的硬件架构解耦。 我们将在中间表示设计中介绍IR设计时候需要考虑的地方和并列举一些实例。 中间代码生成 前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。 如以下是一个简单的例子: int main(){ int a = 2; int b = 0; if(a) b = 1; else b = -1; return b; } 生成的AST可能如下: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(2) |- (children[1]) VarDecl |- (type) TInt |- (ident) Identifier(\"b\") |- (init) IntLiteral(0) |- (children[2]) If |- (cond) Identifier(\"a\") |- (children[0]) Assign |- (lhs) Identifier(\"b\") |- (rhs) IntLiteral(1) |- (children[1]) Assign |- (lhs) Identifier(\"b\") |- (rhs) UnaryOp(NEG) |- (expr) IntLiteral(1) |- (children[3]) Return |- (expr) Identifier(\"b\") 你需要通过遍历AST的节点来将其转换为IR。例如,当你遇到一个if节点时,你可以先生成三个标签,一个用于表示if语句的开始,一个用于表示else语句的开始,一个用于表示整个if语句的结束。先生成一个判断语句,在生成if条件满足对应的标签以及代码,最后生成一个跳转语句,跳过else块。然后再生成else块的标签和代码。 例如上述代码转化为IR后可能如下: _main: _T0 = 2 # 代表a = 2 _T1 = 0 # 代表b = 0 bnez _T0, _L0, _L1 # 如果a != 0,跳转到_L0,否则跳转到_L1 _L0: _T2 = 1 # 代表b = 1 jump _L2 # 跳转到_L2,跳过else块 _L1: _T2 = -1 # 代表b = -1 jump _L2 # 跳转到_L2 _L2: ret _T2 我们将在中间代码生成中介绍生成中间代码时需要考虑的地方和并列举一些实例。 中端优化 中端的优化是编译器的一个重要组成部分,它可以在保持程序功能不变的前提下,提高程序的性能。中端优化的目标是提高程序的性能,减少程序的运行时间和资源消耗。中端优化的方法有很多,比如常量传播、死代码消除、循环不变量外提、循环展开、函数内联等。 一个经典的例子是常量传播。常量传播是指将一个常量值替换为它的值,以便于在中端直接完成一些计算以降低运行时开销。比如,对于下面的 IR 代码: _T1 = 5 _T2 = _T1 + 6 _T3 = _T2 + 7 _T4 = _T3 + 8 _T5 = _T4 + 9 ret _T5 经过常量传播优化后,可以得到: _T1 = 5 _T2 = 11 _T3 = 18 _T4 = 26 _T5 = 35 ret _T5 进一步如果我们进行死代码消除,可以得到: 死代码消除是指删除程序中没有用到的代码,以减少程序的运行时间和资源消耗。 _T5 = 35 ret _T5 中端优化依赖与数据流、控制流分析,你需要先了解一些数据流分析的基础知识才能进行一些中端优化。 我们的文档里在数据流分析中对数据流分析进行了简单介绍,你可以在这里了解一些数据流分析的基础知识。除了这个文档中介绍的数据流分析,还有很多其他的数据流分析方法,比如Use-Def链、Def-Use链、可达定义分析等。 我们在文档中对两个优化进行简单介绍,详见常量传播和死代码消除。 中端参考资料 本章中我们以几个简单的例子介绍了什么是中间表示、中端优化以及如何做中端优化。此外我们也将会在这里给出一些中端优化的参考资料,供大家学习。 GCM & GVM Engineering A Compiler LLVM IR SSA book 预期目标 完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。 "},"docs/contest/midend/ir.html":{"url":"docs/contest/midend/ir.html","title":"中间表示设计","keywords":"","body":"中间表示设计 这里我们以一种经典 IR —— 三地址码为例,介绍中间表示的设计。 三地址码 三地址码(Three Address Code, TAC)是一种经典的 IR 设计,TAC 看起来很像汇编,与汇编最大的区别在于 —— 汇编里面使用的是目标平台(如 risc-v, x86, mips)规定的物理寄存器,其数目有限;而 TAC 使用的是 “虚拟寄存器” (也可以称作临时变量),其数目不受限制,可以任意使用(这意味着直接将临时变量转化为物理寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。 main: # main 函数入口标签 _T0 = 1 # 加载立即数 _T1 = _T0 # 临时变量赋值操作 _T2 = ADD _T0, _T1 # 加法操作 _T2 = _T0 + _T1 _T3 = NEG _T0 # 取负操作 _T3 = -_T0 return _T2 # 函数返回 以上给出了一份 TAC 示例程序。请注意 TAC 代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,可以自由选择输出 TAC 代码的格式,只要方便自己调试即可。例如,你也可以将 _T2 = ADD _T0, _T1 输出成 _T2 = _T0 + _T1。下面是另一个IR输出格式的例子: i32 main() { _B0: i32 _T0 = 1 i32 _T1 = _T0 i32 _T2 = _T0 + _T1 i32 _T3 = -_T0 return i32 _T2 } 你会发现,这种IR输出格式包含了一些类型信息,也更加易读。 TAC 指令与汇编指令比较类似,每条 TAC 指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数实现更为复杂)构成。操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量。 我们来思考一下,如果需要完整描述源程序的语义,需要哪些语句? 算术语句:这是计算机最基础的语义。 二元运算(如加、减、乘、除) 形式:dst = op src1, src2 示例:_T2 = ADD _T0, _T1 一元运算(如取负、取位反) 形式:dst = op src 示例:_T3 = NEG _T0 跳转语句:用于实现程序的控制流,如循环和条件跳转,通常结合标签使用。 条件跳转语句 形式:branch cond, label1, label2 示例:branch _T0, _L1, _L2 无条件跳转语句 形式:jump label 示例:jump _L0 函数调用语句 形式:dst = call (func_name, arg1, arg2, ...) 示例:_T2 = call (foo, _T0, _T1) 赋值语句 形式:dst = src 示例:_T2 = _T0 访存语句 加载操作:dst = load addr, offset 示例:_T2 = load _T0, 0 存储操作:store src, addr, offset 示例:store _T0, _T1, 0 内存申请语句(注意区分,这里指编译器静态分配,与运行时动态分配的 malloc 不同,主要用于在栈上分配内存) 形式:dst = alloc size 示例:_T2 = alloc 40 返回语句 形式:return src 示例:return _T0 有了这些语句以后,我们的IR就可以描述源程序的语义了。 内存数据结构 中间表示是一种内存数据结构,不仅需要方便阅读,还需要方便进行后续操作(如优化、翻译)。 我们可以为所有指令定义一个基类 Instruction,然后根据不同的指令类型定义不同的子类。 struct Instruction { Type type; }; 下面以二元运算指令为例,展示如何定义一个具体的指令类。 二元运算需要两个操作数,并且会产生一个计算结果。 而操作数可能是一个立即数,也可能是一个变量。例如以下的情况: _T2 = ADD _T0, _T1 _T3 = ADD _T0, 2 因此为了指令实现方便,我们可以将操作数定义为一个如下的结构体: struct Operand { union{ int value; int reg_id; }; bool is_reg; ... ... }; 我们使用一个 union 来存储操作数的值或者寄存器编号,使用一个 bool 来标记操作数是否是一个寄存器。当然,你可以要求操作数必须是寄存器,这样就不需要 is_reg 这个标记了。这样你需要增加一条指令,将立即数分配到一个寄存器中。 有了操作数,我们就可以定义指令了,我们将二元运算指令定义为如下的结构体,其中Opcode是操作码,用来标记不同的二元运算类型,src1和src2是两个操作数,dst是运算结果存放的寄存器: enum Opcode { ADD, SUB, MUL, DIV }; struct Binary : public Instruction { Opcode opcode; // 操作码 Operand src1; // 操作数一 Operand src2; // 操作数二 Operand dst; // 目标寄存器 }; 一元运算指令的定义与二元运算指令的定义类似,这里不再赘述。 跳转语句应该怎么定义?这里我们需要引入基本块的概念。 在中端进行优化时,我们需要进行数据流分析和控制流分析,控制流分析过程中我们会将程序分解为多个基本块,基本块是一系列连续的指令序列,基本块内部指令序列的执行顺序是固定的,且不会被其他指令打断。我们可以将基本块定义为如下的结构体: struct BasicBlock { std::vector instructions; std::string label; }; 基本块的引入可以让我们便捷地进行各种编译优化,同时也简化了跳转语句的设计,只需要一个目标基本块即可: struct Jump : public Instruction { BasicBlock *target; // 跳转目标 }; 我们是以函数为单位来组织基本块的,函数定义为如下的结构体: struct Function { std::string name; std::vector blocks; }; 整个程序又是由多个函数和全局变量组成的,因此我们可以将程序定义为如下的结构体: struct Program { std::vector functions; std::vector globals; }; 你会发现,我们的程序组织成了一个树状结构,即 Program 包含多个 Function,每个 Function 包含多个 BasicBlock,每个 BasicBlock 包含多条 Instruction。 一些tips: 你可以在Instruction的层次上再次进行抽象,将运算指令和跳转分开,设计专门的运算指令类和跳转指令类,这样可以让程序的结构更加清晰,比如你可以将 Binary 和 Unary 都继承自 Arithmetic,将 Jump 继承自 ControlFlow, Arithmetic 和 ControlFlow 都继承自 Instruction。 你可以在Instruction中添加一些成员变量,如use和def,用于在数据流分析后记录一些中间结果用于优化。 你完全可以不按照我们给出的这些结构来设计你的 IR,这里有一些参考: 北大编译实验Koopa IR LLVM IR 静态单赋值(SSA) 进一步地,你可以实现符合静态单赋值要求的 IR ,静态单赋值的 IR 在编译器中有着广泛的应用,比如 LLVM 的 IR 就是一种静态单赋值的 IR。在静态单赋值的 IR 中,每个变量只被赋值一次,这使得编译器可以更容易地进行优化。 "},"docs/contest/midend/irgen.html":{"url":"docs/contest/midend/irgen.html","title":"中间代码生成","keywords":"","body":"中间代码生成 介绍 前端解析后,我们会得到一棵抽象语法树,接下来我们需要将这棵抽象语法树转换为中间代码。依据你设计的IR,你需要在保证语义的情况下,将AST用你的IR表示出来。可以参考基础实验框架中frontend/tacgen/的代码。推荐在生成中间代码时就先利用 Alloca、Load、Store 指令来简单地实现 SSA 形式的中间代码,方便之后用mem2reg进一步优化(你可以先阅读静态单赋值简单了解什么是SSA)。 部分处理思路 整体思路是通过遍历AST的节点,根据节点类型进行相应的处理。推荐先根据AST的遍历顺序写一个框架,再填充具体的处理逻辑。 由于每个组的AST和IR设计不尽相同,本部分仅介绍一些重点的处理思路和具体示例,结合小实验文档食用效果更佳。 注意: 本部分仅供参考,你需要根据自己设计的AST和IR进行调整。 在遍历AST的过程中,要记得维护一些数据,比如当前所在函数、当前所在基本块、函数的寄存器数量、函数的基本块数量、前端变量到IR的Data对象的映射表等。 program 对于program节点,先新建一个IR的Program对象,然后我们只需要再遍历子节点。 如果子节点是function,就新建一个IR的Function对象,再访问该function节点,从而将该函数的前端信息存入Function对象中,最后将其加入到当前Program对象中的functions列表。 如果子节点是declaration,说明这是一个全局变量,就新建一个Data对象,再访问该declaration节点,从而将该全局变量的前端信息存入Data对象中,最后将其加入到当前Program对象中的global_data列表。 parameter_list 对于parameter_list节点,可以把前几个寄存器编号分配给参数。 如果是标量参数,要另外在栈上开空间。(这是为了满足 SSA 形式) 如果是数组参数,则可以直接保存在寄存器中。 declaration 对于declaration节点,需要根据是否为全局变量、是否为数组来进行处理。为了满足 SSA 形式,哪怕是局部标量,也要用Alloca指令得到一个地址,后续就通过这个地址来对该变量进行读写操作。 如果有初始化, 对于标量,需要访问expression节点并获取其运算结果对应的寄存器,然后新增Store指令,表示将得到的寄存器的值存入该标量对应的地址。 对于数组则需要遍历Integer节点,并分别使用Store指令将数组元素存入数组的相应地址,对于全局变量可以考虑是否加入.bss段。 lvalue lvalue节点表示的是左值,可能出现的地方为:assignment的等号左边部分、expression的某个部分,如果是后者且该节点表示的是一个具体值,则返回存有该值的寄存器,否则返回其对应地址的寄存器。(下面会对“表示的是一个具体值”进行解释) 先通过前端变量到IR的Data对象的映射表,找到该节点所表示的前端变量对应的Data对象。 如果这是个全局变量,则新增LoadAddr指令,表示加载全局变量的地址,获取对应地址的寄存器 如果这是个局部变量,则直接通过Data对象获取对应地址的寄存器 如果这是个数组,那么前端节点应该会记录下标,每个下标都是expression节点,故需要访问每个下标节点,获取其运算结果对应的寄存器,可以将这些寄存器存起来,比如存进index_temps中,之后再利用这些信息来构造相应的GetElementPtr指令,表示通过数组基地址和下标获取元素的地址。 目前不管是全局变量还是局部变量,不管是标量还是数组,我们得到的都是存有其对应地址的寄存器,需要根据具体情况确定返回内容。 如果该lvalue节点是expression的某个部分,且表示的是一个具体值,则先新增Load指令,表示将地址里的值加载到一个寄存器中,最后返回这个寄存器;否则,就直接返回其对应地址的寄存器。 什么是“表示的是一个具体值”?举个例子,如果已知有一个数组a[2][3],那么如果该lvalue节点表示的是a[1][2],则表示的是一个具体值,如果表示的是a、a[0],则不是一个具体值而是一个地址。 中场休息 看了前面的内容感觉很抽象怎么办?没关系,我们不急着往后学,先休息一下,看一个具体的用到parameter_list, declaration, lvalue节点的例子,希望能帮到你。 int a = 1; int foo(int x, int y[]) { return x + y[1]; } int main() { int b[2][3] = {1, 2, 3, 4, 5, 6}; return foo(a, b[1]); } 生成的AST可能如下: Program |- (children[0]) Declaration |- (spec) Specifier(TINT) |- VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(1) |- (children[1]) Function |- (ret_t) TInt |- (ident) Identifier(\"foo\") |- (params) ParameterList |- (children[0]) Parameter |- (spec) Specifier(TINT) |- (decl) Declarator(Identifier(\"x\")) |- (children[1]) Parameter |- (spec) Specifier(TINT) |- (decl) Declarator(Identifier(\"y\"), ArrayType()) |- (body) Block |- (children[0]) Return |- (expr) BinOp(ADD) |- (lhs) Identifier(\"x\") |- (rhs) ArrayRef |- (array) Identifier(\"y\") |- (index) IntLiteral(1) |- (children[2]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (params) ParameterList # Empty |- (body) Block |- (children[0]) Declaration |- (spec) Specifier(TINT) |- (decl) Declarator(Identifier(\"b\"), ArrayType(2, ArrayType(3, TINT))) |- (init) InitList |- (children[0]) InitList |- (children[0]) IntLiteral(1) |- (children[1]) IntLiteral(2) |- (children[2]) IntLiteral(3) |- (children[1]) InitList |- (children[0]) IntLiteral(4) |- (children[1]) IntLiteral(5) |- (children[2]) IntLiteral(6) |- (children[1]) Return |- (expr) Call |- (func) Identifier(\"foo\") |- (args) ArgumentList |- (children[0]) Identifier(\"a\") |- (children[1]) ArrayRef |- (array) Identifier(\"b\") |- (index) IntLiteral(1) 上述代码转化为IR后可能如下: i32 foo(i32 _T0, i32* _T1) { _B0: alloca i32* _T2 = 4 store *(i32* _T2 + 0) = i32 _T0 load i32 _T3 = *(i32* _T2 + 0) i32 _T4 = 1 i32* _T5 = elementptr: i32* _T1[i32 _T4] load i32 _T6 = *(i32* _T5 + 0) i32 _T7 = i32 _T3 + i32 _T6 return i32 _T7 } i32 main() { _B0: alloca i32[3]* _T0 = 24 i32 _T1 = 1 store *(i32[3]* _T0 + 0) = i32 _T1 i32 _T2 = 2 store *(i32[3]* _T0 + 4) = i32 _T2 i32 _T3 = 3 store *(i32[3]* _T0 + 8) = i32 _T3 i32 _T4 = 4 store *(i32[3]* _T0 + 12) = i32 _T4 i32 _T5 = 5 store *(i32[3]* _T0 + 16) = i32 _T5 i32 _T6 = 6 store *(i32[3]* _T0 + 20) = i32 _T6 i32* _T7 = LoadAddr $a load i32 _T8 = *(i32* _T7 + 0) i32 _T9 = 1 i32* _T10 = elementptr: i32[3]* _T0[i32 _T9] i32 _T11 = call foo(i32 _T8, i32* _T10) return i32 _T11 } 在本例中, foo函数的参数表示为_T0, _T1。为了满足 SSA 形式,使用标量x时,需要另外在栈上开空间,这样之后对x的读写操作都可以直接通过_T2来进行。对于y[1],利用下标和getElementptr指令可以得到其地址,然后通过load指令可以得到其值。(getElementptr指令是为了写起来方便快捷;这里你也可以通过基地址_T1和下标1,构造出_T1 + 1 * 4的式子来计算出y[1]的地址) main函数中对于数组b,先使用Alloca指令获取其栈上地址,再将初始值存到各个元素的地址中。由于a是foo函数的实参,所以这是一个lvalue节点,同时我们知道这是一个具体值,所以在LoadAddr指令获取a的地址之后,还要用Load指令将其值加载到一个寄存器中。b[1]在这里虽然也是一个lvalue节点,但是由于它不是一个具体值,所以我们直接使用其对应地址的寄存器。 expression 访问expression节点之后需要返回存有其运算结果的寄存器,方便后续使用。以下分两种情况进行处理: unary '=' expression,表示赋值表达式。 对于等号左边,访问该lvalue节点并获取其对应地址的寄存器。 对于等号右边,访问该expression节点并获取其运算结果对应的寄存器。 最后新增Store指令,表示将右边的寄存器里的值存入左边的寄存器里的地址,并返回左边的寄存器。 conditional,表示条件表达式。 如果这是个三目运算符,可参考if节点的处理方式,区别在于,对于:?运算符,then 和 else 是两个表达式节点,对于if语句,这两个变量是两个语句节点。 如果这是个logical_or节点,则直接访问logical_or节点,由于可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。 具体示例可以参考短路求值。 if 先给当前函数新增一个基本块true_bb表示if语句的true分支入口。 如果有else部分,则给当前函数新增一个基本块false_bb表示if语句的false分支入口。 给当前函数新增一个基本块next_bb表示if之后的基本块。 分支条件是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。 由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值。 将当前基本块改为true_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从true_bb跳转到next_bb。 如果有else部分,则将当前基本块改为false_bb,然后访问false分支的前端节点,再新增一个Jump指令,表示从false_bb跳转到next_bb。 最后将当前基本块改为next_bb。 例: int main(){ int a = 2; int b = 0; if(a) b = 1; else b = -1; return b; } 生成的AST可能如下: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(2) |- (children[1]) VarDecl |- (type) TInt |- (ident) Identifier(\"b\") |- (init) IntLiteral(0) |- (children[2]) If |- (cond) Identifier(\"a\") |- (children[0]) Assign |- (lhs) Identifier(\"b\") |- (rhs) IntLiteral(1) |- (children[1]) Assign |- (lhs) Identifier(\"b\") |- (rhs) UnaryOp(NEG) |- (expr) IntLiteral(1) |- (children[3]) Return |- (expr) Identifier(\"b\") 上述代码转化为IR后可能如下: i32 main() { _B0: alloca i32* _T0 = 4 i32 _T1 = 2 store *(i32* _T0 + 0) = i32 _T1 alloca i32* _T2 = 4 i32 _T3 = 0 store *(i32* _T2 + 0) = i32 _T3 load i32 _T4 = *(i32* _T0 + 0) if i32 _T4 == 0 jump _B2 else jump _B1 _B1: i32 _T5 = 1 store *(i32* _T2 + 0) = i32 _T5 jump _B3 _B2: i32 _T6 = 1 i32 _T7 = -i32 _T6 store *(i32* _T2 + 0) = i32 _T7 jump _B3 _B3: load i32 _T8 = *(i32* _T2 + 0) return i32 _T8 } 在本例中,生成了_B1, _B2, _B3三个基本块,分别表示true分支入口、false分支入口和if之后的基本块。_B0的结尾是一个Branch指令,_B1, _B2结尾都是Jump指令,表示从true_bb、false_bb跳转到next_bb。 while 这里的翻译方式采用的是step8的思考题中的第二种。在翻译过程中,你还要维护好循环所需的break/continue标签。 给当前函数新增一个基本块body_bb表示while语句的循环体入口。 给当前函数新增一个基本块body_cond_bb表示第二个while语句的条件部分。 给当前函数新增一个基本块next_bb表示while之后的基本块。 开始访问第一个while语句的条件部分,分支条件是一个expression节点,可以直接访问该expression节点。 由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。 将当前基本块改为body_bb,然后访问true分支的前端节点,再新增一个Jump指令,表示从body_bb跳转到body_cond_bb。 将当前基本块改为body_cond_bb,第二个while语句的条件部分是一个expression节点,访问该expression节点并获取其运算结果对应的寄存器。 由于expression节点可能出现逻辑短路的情况,所以你需要思考如何新增Branch指令来进行分支跳转,可以参考短路求值进行学习。 最后将当前基本块改为next_bb。 例: int main(){ int a = 0; while(a 生成的AST可能如下: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) VarDecl |- (type) TInt |- (ident) Identifier(\"a\") |- (init) IntLiteral(0) |- (children[1]) While |- (cond) BinaryOp(LT) |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(10) |- (body) Block |- (children[0]) If |- (cond) BinaryOp(EQ) |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(5) |- (children[0]) Assign |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(10) |- (children[1]) Break |- (children[1]) Assign |- (lhs) Identifier(\"a\") |- (rhs) BinaryOp(ADD) |- (lhs) Identifier(\"a\") |- (rhs) IntLiteral(1) |- (children[2]) Return |- (expr) Identifier(\"a\") 上述代码转化为IR后可能如下: i32 main() { _B0: alloca i32* _T0 = 4 i32 _T1 = 0 store *(i32* _T0 + 0) = i32 _T1 load i32 _T2 = *(i32* _T0 + 0) i32 _T3 = 10 i32 _T4 = i32 _T2 在本例中,_B0的最后是第一个while语句的条件部分,while语句还生成了_B1, _B2, _B3三个基本块,分别表示while语句的循环体入口、第二个while语句的条件部分和while之后的基本块。if语句生成了_B4, _B5两个基本块。多出来的_B6是个不可达基本块,可以在之后生成目标代码时消掉。(思考一下,为什么要生成_B6?提示:如果break;语句后面加上a = 1;语句,IR会如何改变?) 预期目标 完成这部分内容后,你的编译器应该能将 MiniDecaf 程序翻译成满足 SSA 形式的 IR,并能够输出 IR。进一步地,如果你希望参加性能评测,你还需要实现一些中端优化。 "},"docs/contest/midend/ssa.html":{"url":"docs/contest/midend/ssa.html","title":"静态单赋值","keywords":"","body":"静态单赋值 静态单赋值这一小节参考并改编自北航的编译课程实验文档: https://buaa-se-compiling.github.io/miniSysY-tutorial/challenge/mem2reg/help.html 在此表示感谢! 静态单赋值(Static Single Assignment, SSA)是编译器中间表示(IR)阶段的一个重要概念,它要求程序中每个变量在使用之前只被赋值一次。 例如,考虑使用 IR 编写程序计算 1 + 2 + 3 的值,一种可能的写法为: _T0 = 1 _T1 = 2 _T2 = 3 _T3 = _T0 + _T1 _T3 = _T3 + _T2 ret _T3 很遗憾,上述程序并不符合 SSA 的要求,因为其中变量 _T3 被赋值了两次。正确的写法应该为: _T0 = 1 _T1 = 2 _T2 = 3 _T3 = _T0 + _T1 _T4 = _T3 + _T2 ret _T4 我们为什么要这样做呢? 因为 SSA 可以简化每个变量的属性,进而简化编译器的优化过程。 例如,考虑下面这段伪代码: y = 1 y = 2 x = y 很显然,其中变量 y 的第一次赋值是不必须的,因为变量 y 被使用前,经历了第二次赋值。对于编译器而言,确定这一关系并不容易,需要经过定义分析(Reaching Definition Analysis)的过程。在很多控制流复杂的情况下,上述过程将变得更加困难。 但如果将上述代码变为 SSA 形式: y1 = 1 y2 = 2 x1 = y2 上述关系变得更加显而易见,由于每一个变量只被赋值一次,编译器可以轻松地得到 x1 的值来自于 y2 这一信息。 正因如此,许多编译器优化算法都建立在 SSA 的基础之上,例如:死代码消除(dead code elimination)、常量传播(constant propagation)、值域传播(value range propagation)等。 我们如何实现 SSA 呢? 例如,考虑使用 IR 编写程序使用循环计算 5 的阶乘。 按照 C 语言的思路,我们可能给出如下写法: _L0: _T0 = 0 _T1 = 1 _T2 = 2 _T3 = _T0 + _T1 # int temp = 1 _T4 = _T0 + _T2 # int i = 2 _T5 = 5 _L1: _T6 = _T4 我们注意到,变量 _T3 和 _T4 由于循环体的存在可能被赋值多次,因此上述写法并不符合 SSA 的要求。 一种可能的方案是使用 Phi 指令。Phi 指令的语法是 = PHI [, ], [, ] ... 。它使得我们可以根据进入当前基本块之前执行的是哪一个基本块的代码来选择一个变量的值。 由此,我们的程序可以改写为: _L0: _T0 = 2 _T1 = 1 _L1: _T2 = PHI [_T0, _L0], [_T6, _L2] # int i = 2 _T3 = PHI [_T1, _L0], [_T7, _L2] # int temp = 1 _T4 = 5 _T5 = _T2 由此,上述程序中每一个变量只被赋值了一次,满足了 SSA 的要求。(注意,SSA 仅要求变量在静态阶段被单一赋值,而不是在运行时仅被赋值一次) 另一种可能的方案是使用 Alloca、Load 和 Store 的组合。SSA 要求中间表示阶段虚拟寄存器满足单一赋值要求,但并不要求内存地址如此。因此,我们可以在前端生成中间代码时,将每一个变量都按照栈的方式使用 Alloca 指令分配到内存中,之后每次访问变量都通过 Load 或 Store 指令显式地读写内存。使用上述方案编写的程序满足 SSA 的要求,且避免了繁琐地构造 Phi 指令,但频繁地访问内存将导致严重的性能问题。 有没有更好的解决方案呢? 有,我们可以将两种方案结合起来。 在前端生成中间代码时,首先使用第二种方案利用 Alloca、Load、Store 指令快速地构建满足 SSA 要求的代码。 随后,在上述代码的基础上, 将其中分配的内存变量转化为虚拟寄存器,并在合适的地方插入 Phi 指令。 这一解决方案也被称为 mem2reg 技术。 mem2reg 使得我们可以在生成中间代码时,使用 Alloc、Load 和 Store 的组合针对局部变量生成符合 SSA 要求的代码。 举个例子,一种可能的中间代码表示为: main: _T0 = alloc 4 _T1 = alloc 4 store _T0, 1 load _T2, _T0 _T4 = _T2 > 0 beqz _T4, _L2 store _T2, 1 _L1: load _T5, _T2 ret _T5 _L2: _T6 = 0 - 1 store _T2, _T6 jump _L1 在此基础上,进行 mem2reg 转化: main: _T0 = 1 > 0 beqz _T0, _L2 _L1: _T2 = phi [1, main], [_T3, _L2] ret _T2 _L2: _T3 = 0 - 1 jump _L1 需要注意的是,所有的 Phi 指令应当在基本块的开头同时支持并行执行(即在同一个基本块内的 Phi 指令的顺序对结果没有影响)。 在实现 mem2reg 时,我们需要首先对代码进行数据流分析,计算控制流图中的支配关系和每个基本块的支配边界。 相关的解释和详细说明可以参考: 如何构建 SSA 形式的 CFG:https://szp15.com/post/how-to-construct-ssa/ 随后,我们需要实现 SSA 构造算法。一种常用的算法是将整个过程分为:插入 phi 函数和变量重命名,两个阶段。 在第一阶段,记录每个局部变量相关的 Alloc 和 Store 指令,并由此在基本块的开头插入 Phi 指令。 在第二阶段,遍历所有基本块,对其中局部变量相关的 Alloc,Load 和 Store 指令进行改写,以保证程序语义的正确性。在遍历一个基本块的所有指令后,维护该基本块的所有后继基本块中的 Phi 指令。 相关的解释和详细说明可以参考: Static Single Assignment Book 的 Chapter3:https://pfalcon.github.io/ssabook/latest/ "},"docs/contest/midend/cp.html":{"url":"docs/contest/midend/cp.html","title":"常量传播","keywords":"","body":"常量传播/常量折叠 常量传播/常量折叠的目的在于发掘代码中可能存在的常量,尽量用对常量的引用替代对虚拟寄存器的引用(虚拟寄存器和变量是同一个概念,以下都使用变量),并尽量计算出可以计算的常量表达式。 常量传播通常依赖Use-Def和Def-Use数据流分析(这里有一个参考资料),这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。 例如,对于如下代码: _main: _T0 = 2 _T1 = 0 _T2 = _T0 + 3 _T3 = _T1 + 5 _T4 = _T2 * 2 _T5 = _T3 - _T1 _T6 = _T4 + _T5 ret _T6 经过常量传播/常量折叠优化后,代码变为: _main: _T0 = 2 _T1 = 0 _T2 = 5 _T3 = 5 _T4 = 10 _T5 = 5 _T6 = 15 ret _T6 常量传播/常量折叠的实现 常量传播/常量折叠的实现依赖于数据流分析,一种可能的实现方法如下: 遍历所有语句,找出常量定义,将其全部加入常量表。例如: _T0 = 2 _T1 = 0 _T2 = _T0 + 3 _T0和_T1的值是常量,将_T0和_T1的值分别存入常量表。 依据Def-Use关系,找出所有用到常量_T0和_T1的地方,如果这些地方计算的结果也是常量,则将计算结果也加入常量表。上述代码中,_T2的值为5,也是一个常量,将_T2的值加入常量表。 重复上述过程,直到常量表不再增加为止。 "},"docs/contest/midend/dce.html":{"url":"docs/contest/midend/dce.html","title":"死代码消除","keywords":"","body":"死代码消除 死代码消除(Dead code elimination, DCE)即无用代码消除,死代码和不可达代码是两个概念。前者指的是执行之后没有任何作用的代码(例如:多余的计算),后者指的是永远无法被执行到的代码。 死代码消除通常依赖于Use-Def和Def-Use数据流分析,这个数据流分析可以帮我们找到每个指令用到的变量是在哪里定义的。 这里介绍一种 DCE 的方法(来源于《高级编译器设计与实现》(鲸书)): 首先,标识所有计算必要值的指令。比如在函数中要返回(return)或输出(print)的值,或者它可能会对从函数外访问的存储单元有影响(全局内存访问,对函数外定义的数组访问)。 然后,以迭代的方式逐步标记对这种对计算必要值有贡献的指令。假如一个指令的结果是另一个必要值计算指令的输入,那么这个指令也是必要的。 当以上迭代函数稳定不变时,所有未标记的指令都可以认为是Dead Code,可以删除。 具体实现上,可以借助du/ud链来实现: 维护一个set,存储所有必要值的定义指令。 找出函数所有的必要值,标记这些值的定义指令。 对于set中的每个指令,顺着ud链找到所有使用这个指令的指令,将这些指令加入set。 对于上一步中新加入的指令,继续顺着ud链找到所有使用这个指令的指令,将这些指令加入set。 重复上一步,直到set不再变化。 函数中的指令,如果不在set中,就可以认为是Dead Code。 此处举个例子: _main: _T0 = 1 _T1 = 2 _T2 = _T1 + 5 _T3 = _T0 + 2 _T4 = _T3 * 5 return _T4 # _T4 是必要值 顺着ud链,可以找到 _T4 = _T3 * 5,因此 _T3 也是必要值。继续找到 _T3 = _T0 + 2,因此 _T0 也是必要值。最终 _T0、_T3、_T4 都是必要值,而 _T1、_T2 的定义指令都可以认为是Dead Code。 因此可以优化为: _main: _T0 = 1 _T3 = _T0 + 2 _T4 = _T3 * 5 return _T4 "},"docs/contest/backend.html":{"url":"docs/contest/backend.html","title":"后端设计","keywords":"","body":"后端设计 编译器后端的主要功能是将中间表示(IR)转换为目标架构的汇编代码,在我们的课程实验中即将TAC翻译为RISC-V汇编代码。与目标机器架构紧密相关的优化也会在这一阶段进行。 代码生成 目标代码的生成是后端的核心部分。通常中间表示不会与目标架构的汇编代码非常相似,一方面它们所用的指令不一样,另外中间表示也会省略掉与物理寄存器和函数调用的若干细节。这要求我们在将IR翻译为汇编指令时处理好这些缺失的部分,生成合法的汇编程序。 指令选择 对于一条IR指令,选择合适的汇编指令对应物。对于大部分算术指令,一对一翻译即可,这没有什么难度;而某些IR指令没有直接的相应汇编指令,需要被翻译为多条汇编指令。你可能需要选择相对更优的候选指令序列。一对多指令翻译包含一些微妙之处,比如可能引入额外的寄存器、有潜在的副作用、干扰数据流分析,有时将它们视为一个指令整体是更合理的选择。你可能需要恰当地选择将一条“指令”彻底地转化为汇编指令的时机。 这里举几个例子: 逻辑与和逻辑或。可详见step4。 函数调用。函数调用通常不止一条call指令,在它之前需要生成传参的指令(参数少时用mv,多的时候压栈),在它之后可能要修改栈指针。 SSA IR中的Phi指令。通常Phi指令会被翻译为mv指令,但留意多条Phi指令同时存在的情况,它们在语义上“同时发生”,而实际指令序列具有顺序,这可能导致寄存器中的值被错误覆盖。 寄存器分配 IR里通常会假设数量无限的虚拟寄存器(或称作变量),但目标ISA(Instruction Set Architecture)通常只允许有限数量的物理寄存器,我们必须将虚拟寄存器映射到物理寄存器上。如果物理寄存器无法容纳所有的活跃变量,它们就需要溢出(spill)到栈上。大多数架构上寄存器访问开销显著低于内存访问开销,因此我们应尽量避免发生spill。 课程实验使用的寄存器分配算法非常简单,它以基本块为单位,在基本块结束处活跃的变量会全部被spill到栈上。你会发现这个算法显得比较愚蠢,产生了大量实际无用的load和store指令。因此,你需要实现一个“全局”的寄存器分配算法,它应当能够跨基本块进行分析。(这里的“全局”通常以函数为粒度) 常见的全局寄存器分配算法包括图染色和线性扫描。由于我们并没有较为严格的编译时间要求,大家可以使用step13中提到的图染色算法。该算法的一个优势在于能够顺带处理mv指令,可以消除掉无用复制,这使得你前面做代码生成时可以轻松一点(能够较为无顾虑地生成mv指令)。 寄存器分配算法中存在一个比较微妙的地方:当我们不得不选择一个变量spill时,优先选择哪个变量。通常这里是启发式的,我们需要对每个变量设置一个优先级或溢出权重(spill weight)。假设我们已知一个变量中存放的是常数,那么它的保存和恢复开销都会比其它变量更低:无须保存,恢复时只需一条li指令而不必生成load。这种低spill开销的变量可以优先成为被踢出内存的倒霉蛋候选。(思考:我们是否应该优先spill循环体中的变量?)为了给变量设定合理的溢出权重,你可能需要依赖一些分析pass的结果。 栈帧确定和最终代码生成 在代码生成的早期阶段我们无法确定最终栈帧的大小。比如在寄存器分配阶段产生的溢出变量会使得栈帧大小增加,我们需要追踪栈上变量的偏移量和大小。留意load和store指令中允许的立即数偏移范围,当一个函数具有巨大的栈帧时,你可能需要插入一些额外的代码来计算栈上的地址或访问栈上的变量,甚至需要重新进行寄存器分配。 在这里我们介绍一种可能的实现方式。我们暂不考虑VLA(variable-length array),即认为栈上的所有对象都可以在编译期确定大小。首先我们将栈上的对象统一抽象为StackObject,包括栈上的数组、溢出的临时变量、用栈传入的函数参数。然后所有对栈的操作均使用单独的“指令”,例如 LoadFromStack t0, obj, offset: 将栈上对象obj偏移offset(立即数)处的内容加载到 t0 StoreToStack t0, obj, offset:将t0中的内容写入到栈上对象obj偏移offset处 LoadStackAddr t0, obj, offset:计算栈上对象obj偏移offset处的地址,将结果存放在t0 代码生成的大部分阶段均保持以上指令形式。最终确定栈帧时,统计所有栈上对象并为它们赋予一个相对栈帧的偏移。如果你打算在生成的代码中使用栈帧指针fp(frame pointer),展开的指令中可以直接使用这个偏移;如果你打算用栈指针sp进行寻址,你最好维护指令序列中sp发生的变化并计算栈上对象相对于sp的偏移(主要为了应对涉及栈传参的函数调用)。 最终我们将以上的这些“指令”展开。例如LoadFromStack可以保守地展开为以下RISC-V指令序列: li t0, (some immediate offset) add t0, sp, t0 ld t0, 0(t0) 但大多数时候ld t0, offset(sp)就足够了。需要注意的是StoreToStack可能无法展开,也许要在更早的阶段引入额外的临时变量并将其变换为LoadStackAddr和一条store指令。 确定栈帧后生成函数的prologue和epilogue,其中主要包括callee-saved寄存器的保存与恢复、对栈指针的调整。注意有些架构可能对栈指针有对齐要求(e.g. 必须是8的整数倍)。 附:函数调用相关 处理函数调用通常需要插入额外的指令用于传参,而寄存器传参的调用约定又和寄存器分配有一定关系。在Iterated Register Coalescing的论文中并没有提及函数调用约定的处理方式,在这里以RISC-V为例进行一些说明。一种直观的想法是将函数参数对应的临时变量直接预着色为对应的参数寄存器,但这样的方案存在较明显的问题。下面展示两个C语言片段: int f(int x) { // lots of stuff... return x; } 在这个例子中,如果我们将x对应的临时变量直接绑定到参数寄存器a0上,那么a0即x具有超长的生命周期,可能与大量的临时变量节点相干涉。如果中间的代码含有其它函数调用,对a0的使用存在冲突,有可能需要生成大量load/store。 int swap(int x, int y) { // ... swap(y, x); // ... } 对于外层swap,直观上x和y会被分别绑定到a0和a1;而中间再次调用swap时却又要求y在a0且x在a1中,这种冲突免不了一番折腾。 可以发现问题在于我们强行把参数变量和参数寄存器的生命周期绑定在了一起,而事实上调用约定只要求在传参时参数变量位于指定寄存器中。在函数体其它部分的代码中,调用约定不关心也管不着参数变量到底在哪个寄存器里。你可能会反驳:我们其实也关心,尽量让参数变量分配到对应的参数寄存器中有助于减少无意义的move指令。没错,但这个步骤可以交给寄存器分配算法和后续优化处理,在生成代码时我们更关注代码逻辑,应当将参数变量和传参时的寄存器解耦。 具体而言,这种解耦可以通过插入新的临时变量和move指令实现。(在下面的描述中只考虑寄存器传参) 调用其它函数前:假设函数调用的实参位于临时变量x1至xn中。那么我们引入新临时变量T1到Tn,然后按照mv Ti, xi的方式将全部xi移入Ti中,接下来再生成mv aj, Ti复制到目标参数寄存器。注意这里的2n条mv指令形成了两阶段,每个阶段内部的move指令顺序不重要,但不要跨阶段移动指令。 处理在寄存器中的传入参数:假设函数的形参对应临时变量x1到xn。直接在函数开头生成mv xi, ai即可。 以上面的swap函数为例子,插入上述辅助指令后的汇编伪代码如下: swap: mv x, a0 # 1 mv y, a1 # 2 # first move phase mv _T0, x # 3 mv _T1, y # 4 # second move phase mv a0, _T1 # 5 mv a1, _T0 # 6 call swap 在经过带move合并的寄存器分配后,大概率会得到这样的汇编代码: swap: mv t0, a0 mv a0, a1 mv a1, t0 call swap 这里引入了最少数量的额外寄存器,正是我们所期望的变量交换代码。首先前两条mv指令提示寄存器分配算法合并x和a0、y和a1,这一分配方案是可行的,因此前两条无用mv被消去。接下来我们注意到_T0与a1相干涉(指令4的Use集合、指令3的LiveOut集合包含a1,_T0在指令3的Def集合中),因此_T0不能被分配到a1;同时_T0也与a0相干涉(指令6的Use集合,指令5的LiveOut集合包含_T0,a0在指令5的Def集合中),最终_T0被分配到一个新的寄存器t0。而_T1可以安全地被分配到a1,故指令4被视作无用指令消除。 在生成函数调用的代码时,除传参外,还需要考虑caller-saved寄存器的处理。在我们的基本实验框架中,你可以在call指令前后保存并恢复活跃且在caller-saved寄存器中的变量,这样在其它指令看来是无事发生。不过在这里有一种更简便的实现方式:将所有caller-saved寄存器加入到call指令的Def集合中,剩下的事情交给寄存器分配算法处理。考虑以下C语言片段: int getint(); void putint(int); int main() { int x = getint(); putint(x); return x; } 在寄存器分配前可能对应如下代码: main: # prologue call getint mv x, a0 mv a0, x # ... omitted call putint mv a0, x # epilogue ret 采用上述方式,x处于call putint的LiveOut集合中,会与全部的caller-saved寄存器相干涉,这样x就会自动被分配到callee-saved寄存器上。经过后续优化可能的最终汇编代码如下: main: # prologue call getint mv s0, a0 call putint mv a0, s0 # epilogue ret 目标架构相关优化 这里简单地举几个例子。 指令选择相关的窥孔优化 此类优化指的是将局部的几条指令替换为更优的指令序列的一类优化,并非特指。需要注意的是此类优化较为琐碎,建议按需实现。 例如以下的RISC-V指令序列 li t0, 0 bne a0, t0, label1 可以被替换为bne a0, zero, label1,后续再通过无用指令消除去掉li t0, 0(假设该值不再使用)。总的来说,一类优化机会包括识别出指令序列中的常量,尝试将它们嵌入至指令中(RISC-V的I型指令),并进行无效果指令消除(mv到自身、加0、乘1)、强度削减(乘除2的幂转移位,除法转乘法)等优化。 再举一个ARM的例子。ARM的访存指令支持基址+索引*4的寻址模式(类似x86),以下汇编指令序列 mov r1, r1, LSL #2 add r0, r0, r1 ldr r0, [r0] 可以被合并为一条指令: ldr r0, [r0, r1, LSL #2] 这种汇编代码模式在数组访问中较为常见。 指令调度 指令调度指的是在不影响指令逻辑的前提下调整指令的顺序,目的之一是利用现代处理器的特性提升指令级并行度。基本块内的指令调度首先会利用指令间的依赖关系构造DAG,然后利用关键路径长度、寄存器压力、处理器发射宽度等因素结合处理器功能单元的执行模型依次决定指令的执行顺序。感兴趣的同学可以自行查看相关资料。 "},"REFERENCE.html":{"url":"REFERENCE.html","title":"参考资料","keywords":"","body":"参考资料 Writing a C Compiler: by Nora Sandler An Incremental Approach to Compiler Construction : by Abdulaziz Ghuloum Monkey: The programming language that lives in books C17 标准草案 N2176(N2176 是 C17 标准正式发布前的最后一版草案,根据 C17 标准的编者之一 Jens Gustedt 的博文,其与 C17 标准相比只有表述上的差异) RISC-V 手册 RISC-V(非官方)汇编指令用法 "}} \ No newline at end of file