diff --git a/REFERENCE.html b/REFERENCE.html index b6d9c06d9..4c87849dd 100644 --- a/REFERENCE.html +++ b/REFERENCE.html @@ -1176,7 +1176,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"参考资料","level":"10.1","depth":1,"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":"REFERENCE.md","mtime":"2023-09-11T01:55:37.487Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":".","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"参考资料","level":"10.1","depth":1,"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":"REFERENCE.md","mtime":"2023-09-11T02:44:42.072Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":".","book":{"language":""}}); }); diff --git a/docs/step0/env.html b/docs/step0/env.html index 95e2ddabd..c042c5fc3 100644 --- a/docs/step0/env.html +++ b/docs/step0/env.html @@ -1192,7 +1192,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"实验框架环境配置","level":"2.1.3","depth":2,"next":{"title":"运行实验框架","level":"2.1.4","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]},"previous":{"title":"RISC-V 的工具链使用","level":"2.1.2","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":"2023-09-11T01:55:37.491Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验框架环境配置","level":"2.1.3","depth":2,"next":{"title":"运行实验框架","level":"2.1.4","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.md","articles":[]},"previous":{"title":"RISC-V 的工具链使用","level":"2.1.2","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":"2023-09-11T02:44:42.072Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/errate.html b/docs/step0/errate.html index bc94fa98b..83ca5cba3 100644 --- a/docs/step0/errate.html +++ b/docs/step0/errate.html @@ -1204,7 +1204,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"勘误表","level":"1.2","depth":1,"next":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"RISC-V 环境配置","level":"2.1.1","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.2","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.3","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.4","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.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/step0/errate.md","mtime":"2023-09-11T01:55:37.491Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"勘误表","level":"1.2","depth":1,"next":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"RISC-V 环境配置","level":"2.1.1","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.2","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.3","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.4","depth":2,"path":"docs/step0/testing.md","ref":"docs/step0/testing.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/step0/errate.md","mtime":"2023-09-11T02:44:42.072Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/riscv.html b/docs/step0/riscv.html index 8ed58b57c..6af441167 100644 --- a/docs/step0/riscv.html +++ b/docs/step0/riscv.html @@ -1255,7 +1255,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":"实验框架环境配置","level":"2.1.3","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},"previous":{"title":"RISC-V 环境配置","level":"2.1.1","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":"2023-09-11T01:55:37.491Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"RISC-V 的工具链使用","level":"2.1.2","depth":2,"next":{"title":"实验框架环境配置","level":"2.1.3","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},"previous":{"title":"RISC-V 环境配置","level":"2.1.1","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":"2023-09-11T02:44:42.072Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/riscv_env.html b/docs/step0/riscv_env.html index 4836a46bf..5bf16d94d 100644 --- a/docs/step0/riscv_env.html +++ b/docs/step0/riscv_env.html @@ -1272,7 +1272,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"RISC-V 环境配置","level":"2.1.1","depth":2,"next":{"title":"RISC-V 的工具链使用","level":"2.1.2","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},"previous":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"RISC-V 环境配置","level":"2.1.1","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.2","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.3","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.4","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/riscv_env.md","mtime":"2023-09-11T01:55:37.491Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"RISC-V 环境配置","level":"2.1.1","depth":2,"next":{"title":"RISC-V 的工具链使用","level":"2.1.2","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},"previous":{"title":"配环境、跑测试","level":"2.1","depth":1,"ref":"","articles":[{"title":"RISC-V 环境配置","level":"2.1.1","depth":2,"path":"docs/step0/riscv_env.md","ref":"docs/step0/riscv_env.md","articles":[]},{"title":"RISC-V 的工具链使用","level":"2.1.2","depth":2,"path":"docs/step0/riscv.md","ref":"docs/step0/riscv.md","articles":[]},{"title":"实验框架环境配置","level":"2.1.3","depth":2,"path":"docs/step0/env.md","ref":"docs/step0/env.md","articles":[]},{"title":"运行实验框架","level":"2.1.4","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/riscv_env.md","mtime":"2023-09-11T02:44:42.072Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step0/testing.html b/docs/step0/testing.html index 4946d8154..61f0edda6 100644 --- a/docs/step0/testing.html +++ b/docs/step0/testing.html @@ -1195,7 +1195,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"运行实验框架","level":"2.1.4","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.3","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":"2023-09-11T01:55:37.491Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"运行实验框架","level":"2.1.4","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.3","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":"2023-09-11T02:44:42.072Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/arch.html b/docs/step1/arch.html index 52f4c3f49..b0f5822da 100644 --- a/docs/step1/arch.html +++ b/docs/step1/arch.html @@ -1266,7 +1266,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.4","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":"2023-09-11T01:55:37.491Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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.4","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":"2023-09-11T02:44:42.076Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/example.html b/docs/step1/example.html index 75d12fe52..a65dfc020 100644 --- a/docs/step1/example.html +++ b/docs/step1/example.html @@ -1137,12 +1137,7 @@



语义分析

在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误:

    -
  • main 函数是否存在。

    -
  • -
  • return 语句是否有返回值。

    -
  • -
  • 返回值是否在 int 合法的范围内。

    -
  • +
  • main 函数是否存在。(frontend/typecheck/namer.py:35

在实际操作中,我们遍历 AST 所用的方法就是的 Visitor 模式,通过 Visitor 模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于 Visitor 的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如 gcc 根据优化等级不同会有数百个不等的 pass。下面,我们将指出,step1 中我们是如何实现符号表构建 pass 和类型检查 pass 的,同学们可以选择去看相应的代码注释与实现细节。

frontend/typecheck/namer.pytyper.py 分别对应了符号表构建和类型检查这两次遍历。在框架中,NamerTyper 都是继承 frontend/ast/visitor.py 中的 Visitor 类来通过 Visitor 模式遍历 AST 。

@@ -1179,7 +1174,7 @@

目标Ӯ

实验框架中关于目标代码生成的文件主要集中 backend 文件夹下,step1 中你只需要关注 backend/riscv 文件夹中的 riscvasmemitter.py 以及 utils/riscv.py 即可。具体来说 backend/asm.py 中会先调用 riscvasmemitter.py 中的 selectInstr 方法对每个函数内的 TAC 指令选择相应的 RISC-V 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的 NativeInstr 指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitteremitEnd 方法生成每个函数的 RISC-V 汇编。

细节呢?

-

关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。这部分看着长其实不长(大家还是读一下吧)。

+

关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。

为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从 2022 变成 -2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):

首先,我们应该把 - 看作一个符号,而不应该将 -2022 看作一个整体,因为我们还可能遇到 -x 这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对 - 的处理。

@@ -1225,7 +1220,7 @@

细节呢?

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

+

现在尝试运行 python main.py --input example.c --parse 看看效果吧。(记得修改example.c

  • 怎么从 AST 变为 TAC 的?

    什么是 TAC ,如果你没读前面的章节,你可以快速看看这一部分。

    @@ -1255,7 +1250,7 @@

    细节呢?

    return pw.visitEnd()

    你可以不用关注pw是什么,假装它是一个容器,我们 visit 函数时带上这个容器,将翻译好的函数放进去。visitMainFunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵AST树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainFunc.body.accept(self, mv) 而函数体首先在一个block中(花括号括起来的部分),因此会先进入 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) 这里进入了FuncVisitor.visitLoad

    +

    到了此处出现了不同,我们发现visitIntLiteral中第一次调用了mv的成员函数 mv.visitLoad(expr.value) 这里进入了FuncVisitor.visitLoad

      def visitLoad(self, value: Union[int, str]) -> Temp:
           temp = self.freshTemp()
           if isinstance(value, int):
    @@ -1271,7 +1266,7 @@ 

    细节呢?

    _T1 = - _T0 return _T1
    -

    现在尝试运行 python main.py --input example.c --tac 看看效果吧。

    +

    现在尝试运行 python main.py --input example.c --tac 看看效果吧。

  • 怎么从TAC到汇编代码

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

    @@ -1299,9 +1294,20 @@

    细节呢?

    这里会进入第一个分支,由于 Risc-V 的调用约定将A0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条Move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。

    你可能会觉得,这一步不就是将 TAC 一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如T2 = T1 && T0,这里的逻辑与需要将T1、T0通过汇编指令先转换为True或False,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。

    物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。

    -

    现在尝试运行 python main.py --input example.c --riscv 看看效果吧。

    +

    现在尝试运行 python main.py --input example.c --riscv 看看效果吧。

  • +

    思考题

    +
      +
    1. 在我们的框架中,从 AST 向 TAC 的转换经过了 namer.transform, typer.transform如果没有这两个步骤,以下代码能正常编译吗,为什么?
    2. +
    +
    int main(){
    +    return 10;
    +}
    +
    +
      +
    1. 我们的框架现在对于main函数没有返回值的情况是在哪一步处理的?报的是什么错?
    2. +
    @@ -1357,7 +1363,7 @@

    No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"3.3.1","depth":2,"next":{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},"previous":{"title":"step1:仅一个 return 的 main 函数","level":"3.3","depth":1,"ref":"","articles":[{"title":"通过例子学习","level":"3.3.1","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.3","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/example.md","mtime":"2023-09-11T01:55:37.491Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"通过例子学习","level":"3.3.1","depth":2,"next":{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},"previous":{"title":"step1:仅一个 return 的 main 函数","level":"3.3","depth":1,"ref":"","articles":[{"title":"通过例子学习","level":"3.3.1","depth":2,"path":"docs/step1/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.3","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/example.md","mtime":"2023-09-11T02:44:42.076Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/provided.html b/docs/step1/provided.html index e93a75db6..0c4300d6b 100644 --- a/docs/step1/provided.html +++ b/docs/step1/provided.html @@ -1174,7 +1174,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/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.3","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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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/example.md","ref":"docs/step1/example.md","articles":[]},{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"path":"docs/step1/visitor.md","ref":"docs/step1/visitor.md","articles":[]},{"title":"规范","level":"3.3.3","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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/spec.html b/docs/step1/spec.html index 00ca640e1..0e3f3217f 100644 --- a/docs/step1/spec.html +++ b/docs/step1/spec.html @@ -1197,7 +1197,7 @@

    No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"规范","level":"3.3.3","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.2","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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"3.3.3","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.2","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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step1/visitor.html b/docs/step1/visitor.html index 2357b14e3..cd1b40888 100644 --- a/docs/step1/visitor.html +++ b/docs/step1/visitor.html @@ -1261,7 +1261,7 @@

    No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"next":{"title":"规范","level":"3.3.3","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"3.3.1","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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"Visitor 模式速成","level":"3.3.2","depth":2,"next":{"title":"规范","level":"3.3.3","depth":2,"path":"docs/step1/spec.md","ref":"docs/step1/spec.md","articles":[]},"previous":{"title":"通过例子学习","level":"3.3.1","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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step10/example.html b/docs/step10/example.html index 04406d760..ebe9d3af1 100644 --- a/docs/step10/example.html +++ b/docs/step10/example.html @@ -1248,7 +1248,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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step10/intro.html b/docs/step10/intro.html index b0bfda16c..f1c64f573 100644 --- a/docs/step10/intro.html +++ b/docs/step10/intro.html @@ -1190,7 +1190,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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step10/spec.html b/docs/step10/spec.html index 334a70f8f..55c0e75fa 100644 --- a/docs/step10/spec.html +++ b/docs/step10/spec.html @@ -1267,7 +1267,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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step11/example.html b/docs/step11/example.html index 4c54daebb..8adfa10ba 100644 --- a/docs/step11/example.html +++ b/docs/step11/example.html @@ -1245,7 +1245,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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step11/intro.html b/docs/step11/intro.html index 6fff26e4a..44d1b61fd 100644 --- a/docs/step11/intro.html +++ b/docs/step11/intro.html @@ -1194,7 +1194,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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step11/spec.html b/docs/step11/spec.html index 034127bf1..ecde302df 100644 --- a/docs/step11/spec.html +++ b/docs/step11/spec.html @@ -1267,7 +1267,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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step12/example.html b/docs/step12/example.html index 9163310f9..71874c254 100644 --- a/docs/step12/example.html +++ b/docs/step12/example.html @@ -1214,7 +1214,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":"2023-09-11T01:55:37.495Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step12/intro.html b/docs/step12/intro.html index f3fce0f3a..0141d21e4 100644 --- a/docs/step12/intro.html +++ b/docs/step12/intro.html @@ -1193,7 +1193,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step12/spec.html b/docs/step12/spec.html index 44eccb8e4..c8c86f5b8 100644 --- a/docs/step12/spec.html +++ b/docs/step12/spec.html @@ -1278,7 +1278,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":"REFERENCE.md","ref":"REFERENCE.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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":"../..","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"规范","level":"9.3.3","depth":2,"next":{"title":"参考资料","level":"10.1","depth":1,"path":"REFERENCE.md","ref":"REFERENCE.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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step2/example.html b/docs/step2/example.html index 38f04223b..6834de898 100644 --- a/docs/step2/example.html +++ b/docs/step2/example.html @@ -1279,7 +1279,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step2/intro.html b/docs/step2/intro.html index 5cce30edc..f226672a3 100644 --- a/docs/step2/intro.html +++ b/docs/step2/intro.html @@ -1187,7 +1187,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step2/spec.html b/docs/step2/spec.html index 61b462409..fe876ab5c 100644 --- a/docs/step2/spec.html +++ b/docs/step2/spec.html @@ -1198,7 +1198,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/example.html b/docs/step3/example.html index 981642cf0..a8be091c5 100644 --- a/docs/step3/example.html +++ b/docs/step3/example.html @@ -1281,7 +1281,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/intro.html b/docs/step3/intro.html index d7fdfbad7..c5d5f66b5 100644 --- a/docs/step3/intro.html +++ b/docs/step3/intro.html @@ -1203,7 +1203,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.080Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/precedence.html b/docs/step3/precedence.html index 1741c49aa..284c5c63e 100644 --- a/docs/step3/precedence.html +++ b/docs/step3/precedence.html @@ -1190,7 +1190,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step3/spec.html b/docs/step3/spec.html index 9ef39c4f6..e5d8cd499 100644 --- a/docs/step3/spec.html +++ b/docs/step3/spec.html @@ -1206,7 +1206,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step4/example.html b/docs/step4/example.html index 0e9f01e2a..2b4003606 100644 --- a/docs/step4/example.html +++ b/docs/step4/example.html @@ -1293,7 +1293,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step4/intro.html b/docs/step4/intro.html index ecc0f2539..55312263d 100644 --- a/docs/step4/intro.html +++ b/docs/step4/intro.html @@ -1203,7 +1203,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step4/spec.html b/docs/step4/spec.html index 5535cc1eb..06f778e3a 100644 --- a/docs/step4/spec.html +++ b/docs/step4/spec.html @@ -1229,7 +1229,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step5/example.html b/docs/step5/example.html index 5e6fa37ab..f67732045 100644 --- a/docs/step5/example.html +++ b/docs/step5/example.html @@ -1330,7 +1330,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step5/intro.html b/docs/step5/intro.html index 1f0d3a2b4..70b057de9 100644 --- a/docs/step5/intro.html +++ b/docs/step5/intro.html @@ -1210,7 +1210,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":"2023-09-11T01:55:37.499Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step5/spec.html b/docs/step5/spec.html index 4b73c6fc9..1ffde7ab0 100644 --- a/docs/step5/spec.html +++ b/docs/step5/spec.html @@ -1244,7 +1244,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/dataflow.html b/docs/step6/dataflow.html index 74771bd02..0acf44232 100644 --- a/docs/step6/dataflow.html +++ b/docs/step6/dataflow.html @@ -1309,7 +1309,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/example.html b/docs/step6/example.html index 73cff622b..12b97a034 100644 --- a/docs/step6/example.html +++ b/docs/step6/example.html @@ -1339,7 +1339,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/intro.html b/docs/step6/intro.html index 56ce3be10..062254de2 100644 --- a/docs/step6/intro.html +++ b/docs/step6/intro.html @@ -1198,7 +1198,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step6/spec.html b/docs/step6/spec.html index 97d6822ab..385bfaa8e 100644 --- a/docs/step6/spec.html +++ b/docs/step6/spec.html @@ -1249,7 +1249,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step7/example.html b/docs/step7/example.html index dc63aabf9..21623982f 100644 --- a/docs/step7/example.html +++ b/docs/step7/example.html @@ -1283,7 +1283,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.084Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step7/intro.html b/docs/step7/intro.html index 11315d153..3145bda4c 100644 --- a/docs/step7/intro.html +++ b/docs/step7/intro.html @@ -1198,7 +1198,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step7/spec.html b/docs/step7/spec.html index dcc6da0e3..2714c79af 100644 --- a/docs/step7/spec.html +++ b/docs/step7/spec.html @@ -1251,7 +1251,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step8/example.html b/docs/step8/example.html index 90db55eff..00d4267a0 100644 --- a/docs/step8/example.html +++ b/docs/step8/example.html @@ -1261,7 +1261,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step8/intro.html b/docs/step8/intro.html index 1978d16b2..eacf6344b 100644 --- a/docs/step8/intro.html +++ b/docs/step8/intro.html @@ -1191,7 +1191,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":"2023-09-11T01:55:37.503Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step8/spec.html b/docs/step8/spec.html index 0e37e15fb..35e364af3 100644 --- a/docs/step8/spec.html +++ b/docs/step8/spec.html @@ -1263,7 +1263,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":"2023-09-11T01:55:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step9/example.html b/docs/step9/example.html index 23d972c50..440926175 100644 --- a/docs/step9/example.html +++ b/docs/step9/example.html @@ -1403,7 +1403,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":"2023-09-11T01:55:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step9/intro.html b/docs/step9/intro.html index 5ce1890b9..2a5d29b62 100644 --- a/docs/step9/intro.html +++ b/docs/step9/intro.html @@ -1208,7 +1208,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":"2023-09-11T01:55:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.088Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/docs/step9/spec.html b/docs/step9/spec.html index 9e2cf247b..997780c24 100644 --- a/docs/step9/spec.html +++ b/docs/step9/spec.html @@ -1275,7 +1275,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":"2023-09-11T01:55:37.511Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"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":"2023-09-11T02:44:42.092Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":"../..","book":{"language":""}}); }); diff --git a/index.html b/index.html index 6a09c0b34..dd0ad5c8c 100644 --- a/index.html +++ b/index.html @@ -1289,7 +1289,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/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":"README.md","mtime":"2023-09-11T01:55:37.487Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T01:56:38.240Z"},"basePath":".","book":{"language":""}}); + gitbook.page.hasChanged({"page":{"title":"实验简介","level":"1.1","depth":1,"next":{"title":"勘误表","level":"1.2","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":"README.md","mtime":"2023-09-11T02:44:42.072Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2023-09-11T02:45:34.794Z"},"basePath":".","book":{"language":""}}); }); diff --git a/search_index.json b/search_index.json index 7d054aaba..10a9c8e4d 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","(k","+","./reports/.pdf,比如","./reports/stag",".gitlab","/","0;","0。","1","1.","1.pdf。","10%","10%。","10%)。","10%,对思考题的回答占","11","12","1;","20%","2022","2023","22/minidecaf","24:00","2;","4","80%","9","=",">","a[(l+r)/2];","a[],","a[i]","a[i];","a[j]","a[j];","bison)掩盖了很多语法分析的实现细节。","branch","branch,当切换到一个新的","break;","c","c++","ci","ci.yml","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","ci,这不会对你的提交/补交产生影响。","commit","compiler:","decaf","decaf,我们在新的且更简单的语言规范下复用了","generator(如","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github),托管至私有仓库的请不要给其他同学任何访问权限。","http://scheme2006.cs.uchicago.edu/11","https://git.tsinghua.edu.cn/compil","int","j","j)","j);","k","l)","l,","l;","merg","minidecaf","nora","nqcc","p","p)","parser。","pdf","pipelin","prepare.sh","push","python","qemu/spik","qsort(a,","qsort(int","r)","r;","retri","return","risc","sandler","stage","stage1","stage3","stage4","stage5","stage,每个","step","step0","step1","step10)。在这个","step12)。在这个","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step4)。在这个","step6","step6)。在这个","step8)。在这个","step。每个","step,共包含","u","u;","v","write","{","}","↩","上实现时,你可以用","下的","个","个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡","个步骤(其中","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你将实现常量操作(加减乘除模等)。","中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。","中你将支持声明全局变量,并且支持函数的声明和调用。","中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。","中你的代码会得到不一致的结果,请联系助教。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中描述了如何运行","中,你将支持数组,包括全局数组和局部数组。","为","为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评","为环境配置和框架学习,无需进行编程,不计入成绩。","为环境配置,主要是","了。","代码编译到","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","会对应于一个","你做了哪些工作(即你的实验内容)","你的学号","你的学号姓名","修改了实验指导的排版、内容,删除了c++框架部分内容,增加了更多的指导内容。","修改了部分实验顺序,期望降低同学们实验的难度。","假设","全局变量和函数(step9","关于名字由来,由于往年的实验叫","其中,stage0","具有代表性的例子介绍它的整个编译流程。在之前","删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。","到远端仓库的时间。并且,你也可以随意地","前每个","前补交,此","前这个","助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了","包含多个","参考资料","及之后不接受补交,此","及之后,至","及触发此次","反复运行","变量和语句(step5","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持","和手工语法分析器为","在","块语句和循环(step7","备注","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你认为成绩有问题,请及时与助教联系。","如果在多次","学术规范","实现","实验思路指导与问答墙","实验报告中需要包括:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验框架介绍视频","实验框架相对于2022年的实验框架进行了以下修改:","实验概述","实验环境虚拟机下载链接(使用方法参见网络学堂公告)","实验简介","实验起点和基本要求","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于每个阶段(stage):","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的","常量表达式(step2","年","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。","得分乘以","我们以","我们只接受","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将由易到难完成","所作的修改。","指导书上的思考题","提交/补交时间是","数组(step11","日","日(第十六周周日)24:00","是一个","是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。","是某个","更具体来讲是创建","更新的时间,这几乎等于你","最后一次触发","最后一次触发的","月","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本次实验一共设置","来合并前一个","格式的实验报告,其提交方式是放在仓库的","框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","每个","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","测试中看到。","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","的","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的实验报告需要放在","的帐号名后,助教会给每个人建立一个私有的仓库,url","的得分为","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的截止时间;","的文档都将以如下形式组织:首先我们会介绍当前","的时间,而不是","的时间;","的期末考试成绩)。","的编译器框架,所以今年的实验就叫","相关资源","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","程序代码编译成","第一个编译器(step0","简要叙述,为了完成这个","组织如下:","组织实验,各个","组织文档,每个","编译实验","编译实验分为多个","补交政策","设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser","评分会以","评分标准","语法规范的手工","语言实现","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的完整编译器,能够把","语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。","语言相同。","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。","课程问答墙","这个","里的实验报告为准,详见补交政策。","重新设计”的过程,一步步实现从简单到复杂的","需要用到的知识点,其次我们会以一个当前",",将作业提交到那个仓库即可。"],"docs/step0/errate.html":["./requirements.txt","1","1)","1.pdf。","119","1,避免溢出。感谢孟本源同学!","2021.10.5","3.9","=","]","_t1","a:","allocregfor","a:","a:python","a:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!","a:在","a:如果你安装了多版本的","a:请修改","a:非常抱歉,框架中输出时有一个小错误。在","basic","block","branch","bruteregalloc","bruteregalloc.pi","cfg,可以参见","ci","encount","error:","git.tsinghua","instal","len(...)","len(self.emitter.allocatableregs)","m","main.pi","multi_nesting.c","non","parser","pass。","pdf","pip","print","printer","printer.work(prog)","prog.printto()","python3.9","python框架","python,使用","q:","q:","q:python","q:使用","q:如何提交课程报告?","q:实验指导书中step4的目标代码生成部分,给出的ir对应汇编指令不正确,修改了原有寄存器的值?","q:我怎样才能知道我的提交通过了所有测试用例?","r","random.randint(0,","reg","reports/.pdf,比如","reports/stag","return","self.emitter.allocatableregs[","stage","stage.sh无法正常使用?","stage1","stage中的test","stage的前端接入到原先的中后端来进行测试。","step7","submodul","tests中的check.sh测试脚本,将pars","treeprinter(indentlen=)","utils.error.illegalargumentexception:","上,如","下的","不是必须的。","中第","中,由","中,输出三地址码时,请使用","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","函数实现有错误?","分支)。本地测试不受此次更新影响,因此更新本地的测试仓库","前就被释放了,后端会尝试到栈中寻找","勘误表","发布作业时打包有失误,请使用原有的minidecaf","命令无法正确安装依赖?","命令未必会对应","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","如果关于报告提交有任何问题,请及时联系助教。","安装依赖。","对应","并且不会找到,出现报错:","所对应的寄存器在","更新评测脚本之后,现在通过","最新的","格式提交到","框架寄存器分配中","框架无法正确输出三地址码?","框架的后端除了要修改指令选择部分之外,还需要修改基本块","法调试,发现是","版本的包管理器。请尝试使用","生成的以下中间代码无法成功生成目标代码。","的实验报告需要放在","的注释里给出的提示。","经过使用","结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","自己的仓库中,放在仓库根目录下的","行处随机数生成的范围,将上界改为","语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句:","请将实验报告以","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","这个"],"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.9",">","add","altern","apt","argpars","argparse:","c++","hints,如果你习惯在","instal","linux","m","miniconda","os)中进行开发。助教不推荐直接在","pip","pli","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了","ppa:deadsnakes/ppa","pylanc","python","python3.9","python,可以通过","r","repositori","requirements.txt,你可以通过","sudo","type","ubuntu,debain","unix","updat","vscode","window","wsl","下的","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","中搭建开发环境。对于","中进行开发的话同时推荐使用","以处理命令行参数。官方文档中提供了它的教程。","依赖包","关于操作系统,助教推荐使用","助教推荐使用类似","包列表文件","可以尝试如下命令:","命令修改","命令安装下文提到的","和","实验框架环境配置","实验框架,你需要安装或保证如下软件满足我们的要求:","或","框架使用了","框架本身在","框架里已经提供了需要的","此外,如果安装了多个版本的","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。","版本高于此版本。","环境下安装","环境(如","由于","的文档。","的新特性并仅在这一版本下经过测试。请保证你所使用的","的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用","的跨平台性,理论上也可以在","等),当然你也可以在类","系统环境(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/asmemitter.pi","backend/dataflow/","backend/reg/","backend/riscv/","backend/subroutineemitter.pi","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位整数存储,故","是一个与","是否正确就可以知道:是ast","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","此部分对应框架源码位置:","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编指令来翻译","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","生成中间代码","生成器和","生成汇编的话,为了支持","由于源语言(minidecaf)和目标语言(risc","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的形式表示(k表示变量的编号)。","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","目标平台汇编代码生成","目标平台汇编代码生成在","示例程序。请注意","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序由标签和指令构成:","程序编译到","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","类似的","类型和","类型检查","类型检查:各语句和表达式是否类型正确。","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器结构","缩小调试范围,通过把","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析程序位于","详细讨论。","语义分析","语法分析树的建立可以说明所输入的","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","课程实验的目标平台为","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输出成","还是","进行两遍扫描,分别完成以下的检查:","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","针对"],"docs/step1/provided.html":["6","break","step1","step2","step3","step5","step6","step7","step8","下面我们列出了所有框架中已经完成的特性:","中我们提供了","中我们提供了加法运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——作用域栈的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","和","已提供的语法特性","已经提供的语法特性","循环以及","循环实现,同学们可以参考着完成","循环的实现。","此外,我们提供了","语句的实现。","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。"],"docs/step1/example.html":["!,","\"","\"\"\"","#","&","&&","'main'","(body)","(children[0])","(expr)","(ident)","(op)","(ret_t)",",","...",".global",".text","0))","10,我们将这类一元运算操作都称为","1;这样的语句,但是不会见到return","2022","2022;","2022和_t1","2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","2022,就是将立即数","32","8",":","=",">","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","__init__(self,","_t0","_t0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return","_t1","_t1翻译过程发生了什么。","`p_`","a0","a0,","a1","accept","analyz","analyzer.accept(cfg)","asm.transform","ast","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","backend","backend/asm.pi","backend/riscv","befor","block","builder","builder.buildfrom(pair[0])","call","cfg","cfg:","cfgbuilder()","class","comma","def","docstr","ebnf","else:","emitend","example.c","expr","express","expression):","finish","frontend.parser.parser(位于","frontend/ast/tree.pi","frontend/ast/visitor.pi","frontend/lex/lex.pi","frontend/lexer/lex.py。ast","frontend/lexer/ply_lexer.pi","frontend/parser/ply_parser.pi","frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于","frontend/parser/ply_parser.py,而词法的定义位于","frontend/tacgen/tacgen.pi","frontend/typecheck/namer.pi","frontend/utils/tac","func","function","function.","function:","funcvisitor","funcvisitor.pi","gcc","grammar","identifier(\"main\")","if;这样的语句,因为","input","instr.valu","instr.value))","instr:","int","int):","integer(2022)","intliteral(2022)","isinstance(value,","lalr","lalr(1)","lbrace","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","li","livenessanalyzer()","load到一个虚拟寄存器","lparen","main","main()","main.pi","main.py,它通过调用","main:","mainfunc","mainfunc.body.accept(self,","main函数,代码贴了一些在这里:","minidecaf","minu","mv","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitend","mv.visitend()","mv.visitload(expr.value)","namer.transform","nativeinstr","node","none:","op:","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])","pars","parser","parser.pars","parser.parse(...)","pass","pass。下面,我们将指出,step1","phase.","pli","ply),其使用方法与","primari","prog.funcs:","prog:","program","program)","program.mainfunc()","program:","programwriter([\"main\"])","pw","pw.visitend","pw.visitend()","pw.visitmainfunc()","python","rbrace","readcod","rememb","ret","return","return)","risc","riscv","riscvasmemitter.pi","riscvsubroutineemitt","rparen","rule:","selectinstr","self.emitter.emitend()","self.emitter.selectinstr(func)","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.func.add(loadstrconst(temp,","self.regalloc.accept(cfg,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","special.","step1","step_pars","stmt.expr.accept(self,","str])","t0","t0,","t0,这里的逻辑与需要将t1、t0通过汇编指令先转换为true或false,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生","t1","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","tac","tacgen.transform","tacinstr.pi","tacprog):","tacprog:","temp","temp:","tint","token","transform(self,","translat","tree.unary(unaryop.neg,","typer","typer.pi","typer.transform","unari","unary(expression):","unary,其中p[0]代表的就是第一个unary,","unary,那么","union[int,","utils/riscv.pi","v","value))","value:","visit","visitblock","visitload(self,","visitor","visitreturn(self,","x","x同样也是表达式,其会生成一个值。而带返回值的","y","yacc","yacc(简称","{","|","}","~","~a,","。","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","下实现了各种","下面我们将通过一个简单的","下面的描述中一定要记得区分accept和直接对于mv.visitorxxx的调用,前者是在遍历ast时调用的,后者是在","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中。剩下的部分,对着代码和上面的ast看一下相信大家也知道发生了什么了。","中会先调用","中你只需要关注","中加入相应的分派函数。","中只有","中我们是如何实现符号表构建","中的","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中通过一遍","中间代码生成","中,a0","中,定义的新","中,若你增加了","为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从","为立即数2022分配一个临时变量","主函数入口符号","也就是","什么是","代码段","以","以及","会先visit","位","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位立即数到指定寄存器中,其中","你可以不用关注pw是什么,假装它是一个容器,我们","你可能会觉得,这一步不就是将","你应该就能看到类似的输出。(记得自己写一个example.c)","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。这部分看着长其实不长(大家还是读一下吧)。","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数会对不同类型的","函数入口标签","函数时带上这个容器,将翻译好的函数放进去。visitmainfunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵ast树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainfunc.body.accept(self,","函数是否存在。","函数的","函数)分别使用一个","函数,这个函数对于在block中的所有子节点调用了child.accept(self,","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到此为止我们得到的tac代码如下:","加载到寄存器","加载立即数2022到t0寄存器中","即可。具体来说","又对于","变为","变成","合法的范围内。","和","和类型检查","因此我们希望生成的","在","在实际操作中,我们遍历","在实验框架中,我们使用的是","在我们的实验要求中,返回值均是单个","在词法分析","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","声明全局符号","处理,并被转化为如下形式的一个","如何将一个立即数装载到指定寄存器中?","如何设置返回值?","字节流","它将在后续的","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义,以便lexer可以解析","实现,称为","实验框架中关于目标代码生成的文件主要集中","寄存器中,然后在后面加上一条","将返回值放到a0寄存器中","尝试运行","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","并不是一个会产生值的表达式)。","并在","并被","库来实现这一点。yacc","应当变为如下形式:","底层类,同学们可以不作修改,也可以按照自己的想法进行修改。","开头以被","当中,我们只需要提取","当程序读入程序的字符流之后,它首先会被","形式的语法规范生成相应","得到的这个","快速入门","怎么从","怎么从tac到汇编代码","我们先忽略livenessanalyzer和cfg以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectinstr,selectinstr函数中,我们也采用了visitor模式遍历指令序列,对于_t0","我们能发现","所用的方法就是的","所需的底层类。其中","扫描完成","指令。提供给生成","指令即可完成函数返回的工作。","指令来支持加载一个","指令选择相应的","指令(即所有操作数都已经分配好寄存器的指令),最后通过","指令,则需要在","指令,同学们可以在必要时修改或增加","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","提供了","文件夹下,step1","文件夹中的","方法对每个函数内的","方法生成每个函数的","时","时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。","时,遇到的子节点是","是","是一个根据","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","有一些差异。","本步骤主要涉及的语法为主函数和","来生成对应的","根据优化等级不同会有数百个不等的","模式。","模式有所了解,或者假设你已经知道在遍历","模式遍历","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","汇编。","汇编代码,并通过","汇编代码:","流:","测试用例,一起走过它的编译全流程:","源文件","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","现在尝试运行","生成。和语义分析一样,这部分也使用了","生成的","的","的一个纯","的主函数编译为","的主函数编译全流程:","的使用,结合我们的文档,来快速上手","的入门,但这不是必须的。","的处理。","的实现,大家可以直接运行通过","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的形式提供。","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的输出。","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","的?","目录下实现了生成","目标代码生成","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","直接看visitreturn函数,我们这里的return是一个带返回值函数的return","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","程序。除此之外的","程序流程的主要接口在","程序的入口点在","程序的生成是以函数为单位,对每个函数(step1","程序,","等符号都可以作为一元运算符出现,比如!x,","类中增加生成该指令的接口。在本框架中,tac","类中调用的。并且希望大家一定要对着代码看。","类来通过","细节呢?","继续看上述例子,我们先关注只有","综上所述,我们上述中间代码翻译成如下","编译实验框架,我们给大家的代码框架中已经包含所有","而函数体首先在一个block中(花括号括起来的部分),因此会先进入","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","节点的定义位于","表示寄存器名,","表示立即数值,如:li","识别。","词法分析","语义分析","语义分析步骤中,我们要遍历","语义计算中被用到。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句是否有返回值。","语句返回的常量,为之分配一个临时变量,再生成相应的","语句需要一个值,我们可以理解为带返回值的","语句,完成本步骤之后,你的编译器将支持将一个仅有","语法分析","语法分析器直接产生的实际上是一棵语法分析树,而构建","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","读内容","调用不同的visit","调用了","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","转化为如下形式的","输入,输出汇编代码。","返回","返回值是否在","返回指令即可。不难看出,本例对应的三地址码为:","这一函数里","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步是","这个数字是一个表达式,","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样的奇怪的","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这部分的工作流程如下:","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里进入了funcvisitor.visitload:","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","通过例子学习,一个仅有","都是继承","里加入新的","需要以","首先,我们应该把",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022",":"],"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":["!。","'|'!'|'~')","('","0","1。","1,!!2",":","==","c","express","int","integ","int;关于逻辑非,只有","stage","step2","step2:一元运算符","unari","|","~","~0","、按位取反","三个操作的语义和","中,我们要给整数常量增加一元运算:取负","以及常识相同,例如","以及逻辑非","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","变成:","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","的定义,从","稍微一提,关于按位取反,我们使用补码存储","简要叙述,为了完成这个","表示逻辑假,其他的","语法上,我们需要修改","都是逻辑真。"],"docs/step2/example.html":["!x;","0","1","1。在生成过程中,首先使用","2147483647","=","_t0","_t1","a0,a0","addexpr","ast","bitnotexpr","c++","e","elf","expr","foo(int","foo.c","foo.s(记得加","foo:","gcc","int","li","mabi=ilp32","march=rv32im","minidecaf","neg","negexpr","notexpr","o","o3","op","operand,运算类型","parser","python","ret","return","risc","riscv64","s","seqz","step1","step2","t0","t0,","t1,","tac","unari","unknown","v","visitor","x)","{","}","~!这三个单目运算符和从","。","一元负号","一元运算","不出意外你会获得如下结果:","与","中实现的整型常量越界检查。","中间代码生成","中间表达指令为例,risc","中,我们只需为","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考","写语法规则时,可以都用","到","参数","含义","和","因此,测例可以翻译成如下的中间代码:","在","在语法树上对应父","子两个结点,父结点为取负操作,子结点为常量","实验指导","实验指导。本实验指导使用的例子为:","对参数取负","开始,语法树上出现了各种运算操作结点。在生成","思考题","总结","成员","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们按照上一节划分的编译器阶段,分阶段给出","指令","指令。","指令与其对应,因此上述中间代码可以翻译为如下的","指令来完成翻译工作。以","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","按位取反","按照上文说的,","提示:发生越界的一步计算是","操作数","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","框架","框架中不同运算对应着不同的","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","汇编","汇编中有","汇编:","没有特别需要修改的地方。","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","由于","由于现在","的","的输出结果。例如,你可以通过","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","目标代码生成","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","程序。","符号。","符号来表示,正如","编译如下程序来了解如何翻译逻辑非运算符到","节点","节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。","范围内的非负整数,使得运算过程中发生越界。","表达式,只使用","词法语法分析","语义分析","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语法树节点对应的语法规则里都是","请注意,tac","这些语法树节点,在","选项):","通过例子学习","逻辑取反","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的"],"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":["%","'('","')","')'","'|'~'|'!')","(","('","('*'|'/'|'%')","('+'|'",")。","*、整除","+、减","/、模","1+2*(4/2+1)","7。",":","==","addit","c","c17","express","expression,变成","integ","multipl","primari","stage","step3","step3:加减乘除模","unari","|","、乘","以及常识相同,例如","以及括号","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","我们要增加的是:加","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","标准草案保持一致","简要叙述,为了完成这个","语法上我们继续修改"],"docs/step3/example.html":["#includ","/","0;","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","1","1+3","2","3","32","64","=","_t0","_t0,","_t1","_t2","add","addexpr","arm)中和","b","b);","binari","c++","divexpr","e1,右操作数","e2","identifi","int","kind","lexer","lexer(或","lhs,右操作数","li","main()","modexpr","mulexpr","name","op","parser)一些信息,最经典的例子是","printf(\"%d\\n\",","problem”。","python","qemu","return","rhs,运算类型","risc","riscv","step2","step2。","step3","subexpr","t0,","t0,t1","t1","t1,","t2,","token","v","x86","{","}","“typedef","不知道这点(parser","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","中间代码生成","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","乘法运算","二元运算","但有时,可能需要后续阶段告诉","作用","减法运算","加法运算","参数","取模运算","右操作数;","同","含义","和","因此,测例可以翻译成如下的中间代码:","在","实验指导","对有兴趣的同学:虽然","将两个参数相加","左操作数","左操作数;","思考题","总结","意义不同,但","成员","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","或","才知道),所以它们都会用同样的","指令","指令来完成翻译工作。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","本实验指导使用的例子为:","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","框架","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","的","目标代码生成","目标代码生成步骤的关键点与","相同,针对中间代码指令,选择合适的","类似step2,对每种二元运算实现了不同的语法树节点","节点","表示。","词法语法分析","语义分析","请注意,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":["!=","&&","&&、逻辑或","'&&'","'||'","('=='|'!=')","('|'>'|'|'>=')","1=2","1)。",":","==,",">,","addit","c","equal","express","logical_and","logical_or","relat","stage","step4","step4:比较和逻辑表达式","|","||","中逻辑运算符","为","以及常识相同,例如","任务概述","但特别注意,c","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","我们要增加的是:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","是逻辑真(int","有短路现象,我们不要求。","比较大小和相等的二元操作:、、>=,","简要叙述,为了完成这个","逻辑与"],"docs/step4/example.html":["&&","1","2",";","=","_t0","_t0,","_t1","_t2","andexpr","c","c++","d,","d;","e1,右操作数","e2","equexpr","gcc","geqexpr","grtexpr","ir","land","leqexpr","lesexpr","li","lor","lt","minidecaf","neqexpr","orexpr","python","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'","'{'","'}'","('='",":","assign","declar","express","expression)?","expression?","function","identifi","integ","logical_or","main","primari","stage","statement","statement*","step5:局部变量和赋值","type","|","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","函数内部可以包含多条语句和声明了。","变量的使用(读取/赋值)","变量的声明","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","栈帧","此外,我们的","的改动如下:","的概念,并介绍它的布局。","简要叙述,为了完成这个","语法上,step5","这一步我们终于要增加变量了,包括:"],"docs/step5/example.html":["\"a\"","#","#includ","+",".global",".text","0;","0;定义的,g(a)中的a是上一行的let","16","1;","2023","2023;","2;","3","32","3;","4","4;","4,即可得到","5","5;","=","_t0","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t1","_t1,","_t1。例如,测例中直接用返回","_t1,此时","_t2","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","a0,","accept:根据每个函数的","add","addi","allocforloc:每一条指令进行寄存器分配。","allocregfor:根据活跃变量信息决定为当前","assign","ast","b","backend/reg/bruteregalloc.pi","basicblock(基本块)内的指令进行寄存器分配。","binari","bind:将一个","c","calcul","calculate()","calculate();","d","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","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,并恢复","step11","step5","step6","step7","step9","symbol.pi","t0","t0,","t0,t1","t1","t1,","tac","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","tint","unbind:将一个","v","val","x","x;","y","y;","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","{","}","一个例子","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个通用寄存器,在这种情况下,我们无法将","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中间代码生成","中,主要有以下几个函数:","中,变量符号的定义里有该变量对应的","中,我们会将左值的范围进一步包括数组元素。","中,然后再把","临时变量对应起来。","临时变量成员。","临时变量的赋值","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为符号类的基类,varsymbol.pi","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","介绍,在当前的步骤不需要考虑)。","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","代替了返回变量","代码(你不需要精确了解它的含义,大致理解即可):","位整数,因此,我们可以把","保存在寄存器中,e","保存在栈帧中,因此需要分配","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","其中f(a)中的a是上一行的let","函数中定义名为","函数中所有出现过的变量符号即可。","函数作用域对应的单张符号表即可。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数执行","函数的栈帧,并且集中于临时变量的存储和加载。","函数调用","函数,将返回地址压入栈中。","函数,直到","到","加载到临时变量","参数","可以在符号表中找到(我们在扫描","同","名称","含义","和","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在实验框架中已经给出寄存器分配算法的代码,集中在","在扫描到","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在这个示例中,我们在","型,而","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","如果","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节的栈帧空间。sp","完备问题(可以从","实验指导","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","寄存器中,请写出一段","对应到框架代码上:","对应的临时变量。每当在","对应的符号。符号","对应的结点时报错。","对象,用以维护","局部变量和","已经成为了变量","思考题","总结","成员","我们使用","我们假定当前栈帧的栈顶地址存储在","我们首先来看本节指导用例所对应的中间代码:","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","指令","指令来翻译中间表示里的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令(例如","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","整型","无","无法找到,因此编译器需要在扫描到","时能快速找到","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","本实验指导使用的例子为:","本节指导用例对应如下","标识符(用于表示变量名)","栈帧","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","汇编中","汇编代码,将栈帧空间扩大","汇编代码:","的“替身”。每次需要用到变量","的值。因此,为了在后续使用变量","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,然后将返回地址弹出栈中,跳转到返回地址。","的全局变量,同时在","的地址。","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","目录下为符号的实现。其中","目录下为符号表的实现。其中","目标代码生成","符号表总是和作用域相关的。例如,在","简单的启发式寄存器分配算法","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类来处理它。","结点时,会依次检查该操作的两个操作数","节点","节点来表示它,给出的参考定义如下(框架中已经提供):","节点里,也可以单独设置一类节点继承","表示将","计算完成后,calcul","词法语法分析","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","语义分析","语言中的基本类型只有","语言中,我们可以在全局作用域中定义名为","请注意","请注意,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'","'{'","'}'",":","ast","block_item","block_item*","compound_stat","declar","express","function","identifi","stage","statement","step6","step6:作用域和块语句","type","|","中出现的每个变量名分别对应那个变量。","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","出现在代码不同地方可能标识完全不同的变量。","因此,变量名不能唯一标识变量了,同一个变量名","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","当然,如果变量在使用前还是必须先被声明。","我们要增加块语句的支持。","我们需要在符号表构建的过程中,确定","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","简要叙述,为了完成这个","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语法上改动不大","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","随之而来一个问题是:不同变量可以重名了。"],"docs/step6/example.html":["#","(a","1","1;","2","2;","3","3;","4","4;","=","_t0","_t1","_t2","_t3","_t4","_t5","ast","backend/dataflow/cfg.pi","backend/reg/bruteregalloc.pi","block","cfg","children","compstmt","int","main","main()","main(){","main:","main(可忽略)","minidecaf","python","return","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","step5","step6","stmt","tac","x","x;","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","{","}","不需要新增新的中间代码指令。","中添加基本块是否可达的判断。在寄存器分配算法","中的","中间代码生成","中,我们只维护了","为","为止。由于在栈顶作用域对应的符号表中不存在变量符号","从","代码的控制流图。int","代码:","作用域中定义的","作用域定义的","作用域栈","作用域里的","全局作用域(栈底)","函数","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数作用域里定义的变量","函数对应的作用域中,可以找到变量符号","函数时,开启一个局部作用域,在扫描","函数里定义了变量","则对应着内层代码块定义的变量","变量","变量。","只在内部大括号括起的作用域内生效。","含义","在","子语句列表","实验指导","对于c++:","对于python:","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应着","就是指","局部作用域","局部作用域(栈顶)","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","思考题","成员","我们定义了另一个变量","指令。","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","时定义变量符号","时,从栈顶作用域符号表查找","时,定义了另一个变量","时,我们需要分析","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_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'",":","assign","c","condit","express","expression?","expression)。","identifi","logical_or","stage","statement","statement)?","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'","'do'","'for'","'if'","'return'","'while'","('else'",":","break/continu","c","compound_stat","declar","express","expression?","stage","statement","statement)?","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_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","cond","cond,更新语句","continu","continue/break","continue_label:continu","funcvisitor","init,循环条件","int","ir","label","loop","lt","minidecaf","step6","step8","tac","update,循环体","utils/tac/funcvisitor.pi","中的","中间代码生成","为了实现所有可能的跳转,对每个","从执行的指令的条数这个角度(label","代码:","初始语句","含义","和","实验指导","将循环语句翻译成","循环、do","循环作为示例。","循环可以有以下两种翻译方式:","循环我们都需要定义三个跳转标签:begin,","循环的特例,我们选择了","循环要自带一个作用域。在示例里,for","循环语句","循环语句翻译成","循环都可以看作","思考题","成员","指令。不过为了实现循环语句,需要仔细地考虑如何将","指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","无","有许多可行的翻译方法,例如","本实验指导使用的例子为:","本步骤中没有需要新增的","本步骤语义分析阶段的处理方式和","标签。","标签和","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签的维护。","标签(示例中的","标签,这样才能确定每一条","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于循环语句可以嵌套,所以","的","的分支跳转指令。由于","目标代码生成","程序。因此,在符号表构建阶段,扫描到","第一种(即实验指导中的翻译方式):","第二种:","类里实现了维护","结点时,不要忘记开启一个局部作用域。","结点时,若当前不处于任何循环内,则报错。","节点","节点来表示它,给出的参考定义如下:","让我们先来看看示例对应的","词法语法分析","语义分析","语句","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句时应当跳转到的位置。","语句生成过程中需要动态维护","语句相类似,但是请额外注意以下两点:","语句跳转到何处。因此,在","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句,我们需要设计","语句,那么应当跳转到此处,执行循环之后的指令。","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","跳到这","这也是合法的","通过例子学习","里的","针对"],"docs/step8/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'do'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(i=0;","(int","0。","1。","8.1","8.2","8.3","8.4","8.5","8.6","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","9",":","expression)*)?","expression_list","function","function*","identifi","identifier)*)?","int","parameter_list","postfix","primari","program","runtim","runtime,部分函数在源代码中只有声明,其定义在","stage","step","step9","step9:函数","type","unari","void","|","任务概述","会引入","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","开始,minidecaf","开始,我们要支持多函数了。","我们还需要支持函数调用:","我们需要支持函数的声明和定义:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","注意:从","简要叙述,为了完成这个","编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","返回值实现。","返回类型,这可以通过忽略函数的"],"docs/step9/example.html":["!=","#","&&","(!v","((null","*base","*live)","*t,","+","...",".global",".text","//","0(sp)","1","1;","2","2);","32","4(sp)","5","52(sp)","56","9","=",">add(t",">contains(v))",">dirti",">getslottowrite(v,",">is_offset_fixed)",">liveout",">liveout);",">op0.var);",">var;","_frame","_reg[i]","_reg[riscvreg::fp];","_t0","_t0,","_t0这一行,我们要将虚拟寄存器t0作为参数x放入物理寄存器a0,假设此时t0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器t2,那么要先将t2","_t1","_t2","_t3","_,如果链接时出现问题请检查是不是下划线导致的。","a0","a0,","a1,","a7","add","addi","argument_list","ast","b","bodi","c","c++","c++框架中:","call","calle","caller","caller/calle","cnt)","cnt,","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。","end","epilogu","frontend/symbol/funcsymbol.pi","func","func(1,","func(int","func:","func_exit","func_exit:","function","gcc","i,","ident","ident,参数列表","if(i","int","int)从左到右存放在","int)放在","j","label","li","live","live);","liveset","lookupreg(t","lw","main","main()","main:","main_exit","main_exit:","minidecaf","mv","oss;","param","paramet","params,函数体","prologu","python","ra","ra,","ret","return","return_type,函数名","risc","riscvdesc::setregparam(tac","riscvdesc::spillreg(int","riscvreg","runtime.c,runtime.h,runtime.","save","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","sp,","spillreg(riscvreg::a0","spill到栈中。","start","std::ostringstream","step9","sw","symb/symbol.hpp","t","t0","t0,","t1","t1,","t2","t2,","t2)","tac","tac/dataflow.cpp","temp","v","v)","var_type,变量名","void","x","x,","xx","xxx","y","y)","y);","y;","{","}","上表给出","上述步骤","两类寄存器,而不是要求所有寄存器完全由","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个整数寄存器的分类。所谓","中","中。比如我们有这样一段","中的一方保存?为何保存返回地址的","中间代码生成","中,funcscop","为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下:","为何","之后,c++","从栈中将t0取出放入a0寄存器中","代码,使得不同的参数求值顺序会导致不同的返回结果。","但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设t0在此后不再被用到,那么t0就不在当前位置的liveout集合中,也就是说在spill寄存器时t0可以被覆盖掉,这可能导致t2被spill到了t0所在的位置,覆盖了t0。","位","使用的、和","假设我们有若干个参数,可以依次使用","先将op0加入当前的liveout集合,这可以保证spillreg时候不会将op0覆盖","关于测试样例:","具体的保存方法并不限制,但一般都使用栈来保存。","准备参数,完成传参。","函数","函数参数","函数参数以及返回值的传递","函数参数(32","函数时,相当于执行了:","函数调用","分别对应","即此时需要:","参数","参数类型","同学们可以使用这种参考的实现形式,也可以自行思考传参的处理方法。","含义","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","和","因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做:","因此,示例可以对应如下的","在","在param","实验指导","实验测例中有与","寄存器","寄存器。","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器?","将","将t2放入栈中(即:spill","思考题","成员","我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过","执行汇编中的函数调用指令,开始执行子函数直至其返回。","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。","提示","放入a0寄存器","放入a1寄存器","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","本实验指导使用的例子为:","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","来查看我们预定义的函数。","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","标准调用约定中要引入","框架","框架中会在生成的汇编中在函数名前面加上下划线","框架中出现了新的三地址码指令(param、call等),因此你需要参考","此处助教使用tac的op0来存放需要当作参数的虚拟寄存器","此处选择了一个栈上的位置用于保存寄存器","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理liveout集合,以下面三地址码为例:","的值作为参数","的函数调用时参数求值的顺序是未定义行为。试写出一段","的标准调用约定(gcc","目标代码生成","相关的)","称为调用序列(call","程序代码里的一个函数调用,包含了下面一系列的操作:","程序:","类表示函数符号。scope/scope.hpp","编译的文件相互调用的要求,因此,大家需要实现标准调用约定。","编译程序进行验证。","节点","节点来表示它,给出的参考定义如下:","表示函数作用域。","设置为下一个参数","词法语法分析","语义分析","请注意,tac","调用函数","调用函数名","调用约定","返回值(32","返回类型","通过例子学习","那么语义检查时应当报错。","那么,在进入","里实现了函数符号。","针对函数特性,我们需要设计","链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","(汇编)保存","(汇编)恢复"],"docs/step9/spec.html":["'&&'","'('","')","')'","':'","';'","';')","'='","'?'","'break'","'continue'","'do'","'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",".bss",".data",".text",":","declaration)*","elf(execut","format)。","fp","gcc","link","program","qemu)使用的可执行文件的格式是","stage","step10","step10:全局变量","|","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","对有兴趣的同学:","当然,广义上的编译器就囊括了这所有阶段。","我们要支持的是全局变量,语法改动非常简单:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","是其中存放代码的段(section),.bss","段或","段里。","汇编课上应该讲过,实际中(包括","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","访问它也不能通过","都是其中存放数据的段,前者零初始化后者须指定初始值。"],"docs/step10/example.html":["#",".bss",".data",".globl",".space",".word","0","0(t0)","2022","2022;","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","step9","symbol","t0,","t1","t1,","tac","tac/dataflow.cpp","v","v0,","x","x:","x;","{","}","上例中,.data","下面给出","个偏移的内存地址中的数据","中存储地址,加载与该地址相差","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中间代码生成","临时变量","为全局符号;.word","为字符串,加载","之后,c++","代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码,这样可以使中端与后端完全解耦。","伪指令可能会被转换成哪些","写出","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","参数","参考的","变量符号究竟存在哪里,如果所生成的汇编程序不给出","后是一个","含义","和","在","声明","字节。","字节整数,是","存放到","实际上,我们提供的中间代码设计和","实验指导","将全局变量放到特定的数据段中","思考题","所对应的数据段。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令链接:https://github.com/thethirdone/rars/wiki/support","按照汇编约定,data","提供了一系列的汇编指令,用以声明全局变量","数据段;.globl","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","有了上述两条指令,可以将测试用例翻译如下:","本实验指导使用的例子为:","本步骤引入全局变量,在引入全局变量之后,ast","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","框架中出现了新的三地址码指令(param、call等),因此你需要参考","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","汇编中有对应","汇编的思想是一致的,risc","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的定义,程序是有bug的。实际上,risc","的指令,我们直接给出翻译结果:","目标代码生成","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","符号对应的初始值。","符号所代表的地址","经过","翻译中间代码","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","表示存储空间大小为","表示输出到","表示预留一块连续的内存,4","词法语法分析","语义分析","请注意,tac","请注意,翻译所得的","这一","通过例子学习","针对全局变量,我们需要新设计","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。"],"docs/step10/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'do'","'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":["'('","')'","';'","'['","']'","']')*","('='","('['",":","declar","express","expression)?","expression_list","identifi","integ","minidecaf","postfix","primari","stage","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","arraytyp","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","ast","base,索引下标","bss","c","c++","frontend/type/array.pi","i2d3...*dn","identifi","in]。在将数组索引翻译成","index","indexexpr","int","length","load","m","main()","main:","n","namer","python","return","size","sp","stage","step","step10","step11","step9","store","t0","t1","tac","tac/dataflow.cpp","type/type.hpp","typer","x[10];","y[10];","{","}","一个","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","中引入的","中的","中类型检查的部分,以及","中间代码生成","中,使实现更加模块化。","之后,c++","了,还有可能是如","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","分配","参数","可以等价于访问","同中间代码生成,全局数组自行思考实现。","含义","在","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","字节的内存,并返回内存首地址","实验指导","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","思考题","成员","指令","指令将值写入数组元素。","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令来实现,我们还需要引入一条类似的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","数组和普通变量类似,可以分为局部数组和全局数组。","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","有能力的同学可以考虑将原先","本实验指导使用的例子为:","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","框架","框架中出现了新的三地址码指令(param、call等),因此你需要参考","段内存)。","注意:引入数组后,左值不再一定是","用于分配内存空间:","由于","目标代码生成","类型为","索引基底","索引运算","节点","节点来表示它,给出的参考定义如下:","表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","词法语法分析","语义分析","语言规范规定,允许局部变量是可变长度的数组(variabl","请注意,tac","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种,但仍然不允许类似","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","通过例子学习","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","采用","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对数组,我们需要设计","除了分配数组,我们还需要考虑如何访问数组元素。通过","需要增加的类型检查重构进","需要申请更大的"],"docs/step11/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')*","'break'","'continue'","'do'","'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",":","declar","function","identifi","integ","integer)*)?","parameter_list","stage","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/c++","cnt);","fill_n","fill_n(arr,","fill_n(int","fun(int","func(arr);","func(int","int","main()","memset","param[0]","param[]){","res,","return","risc","runtime.c","runtime.h","std::fill_n","step","step12","v","{","{1,2};","}","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中间代码生成","作为函数参数的数组类型第一维可以为空。事实上,在","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数用来给数组批量赋值,你可以按照","函数的参数列表需要加上数组类型。","函数的实现,其使用方式和功能同","和","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","实际上上述初始化可以等价地转化为:","实验指导","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","思考题","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","本实验指导使用的例子为:","来了解","标准库中的","标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看","由于","目标代码生成","相似。","等价于","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","词法语法分析","语义分析","这样的函数来实现数组数组的清零,我们的运行时库中也提供了","通过例子学习","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。","需要注意的是:在c++框架中,在生成函数时,编译器会自动给函数名前面加上下划线,来防止名字冲突,所以如果出现链接错误时,请先检查生成的汇编代码的函数名称和所要调用的函数名称是否一致。"],"docs/step12/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'do'","'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,","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","会将数组变为","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","数组传参是支持不定长度的","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","每个步骤结尾的","灰色部分表示相对上一节的修改。","规范","语义规范","语法规范"],"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":47},"tokenStore":{"root":{"0":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"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.005263157894736842},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.021052631578947368},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.019801980198019802}},"定":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.0038910505836575876},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"但":{"docs":{},"判":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"更":{"docs":{},"低":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"任":{"docs":{},"意":{"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.009900990099009901}}}}}},")":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},")":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}},";":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"则":{"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":{},"们":{"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.003745318352059925}}}}}}}},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}},"t":{"0":{"docs":{},")":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"docs":{}}},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"1":{"0":{"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},",":{"docs":{},"对":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"的":{"docs":{},"回":{"docs":{},"答":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},".":{"1":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},".":{"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.0037313432835820895}}},"3":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}},"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.0012787723785166241}}}}}}}}}}}}}}}}}},"1":{"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"1":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"2":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"3":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"4":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"docs":{}}},"2":{"docs":{"./":{"ref":"./","tf":0.005405405405405406},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},".":{"1":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"2":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"docs":{}}},"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.0024630541871921183}}},"docs":{"./":{"ref":"./","tf":0.032432432432432434},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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.007677543186180422}},".":{"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}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.008108108108108109},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.011904761904761904},"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.0019193857965451055},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"这":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}},",":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}},"!":{"docs":{},"!":{"2":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"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/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"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.0038910505836575876}},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"]":{"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":{},"我":{"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.014925373134328358}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"3":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},"=":{"docs":{},"=":{"4":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}},"docs":{}}}},"docs":{}},"=":{"2":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}},"docs":{}},")":{"docs":{},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}},";":{"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":{}}},"1":{"docs":{},".":{"1":{"0":{"docs":{},".":{"5":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010230179028132993},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},";":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"docs":{}}}},",":{"docs":{},"则":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"3":{"docs":{"./":{"ref":"./","tf":0.008108108108108109},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473}}}},"docs":{}},"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},".":{"0":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}},"docs":{}}},"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"4":{"7":{"4":{"8":{"3":{"6":{"4":{"7":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"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":{}},"2":{"docs":{},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}},"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":{}},"4":{"docs":{},":":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.013513513513513514}}},"docs":{}},"docs":{}}},"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.005758157389635317}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},".":{"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":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01984126984126984},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},",":{"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.0019193857965451055}}}},"”":{"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":{},"要":{"docs":{},"求":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"不":{"docs":{},"短":{"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"+":{"3":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}},"docs":{}},",":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"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.012345679012345678},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.00639386189258312},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},".":{"1":{"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.0078125},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.041237113402061855}}},"docs":{}},")":{"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.009900990099009901}}}},"应":{"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.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"。":{"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.00398406374501992}}}},"4":{"0":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}},".":{"1":{"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":{}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.011904761904761904},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}},"}":{"docs":{},";":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"5":{"2":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}}},"6":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}}},"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}},".":{"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.003745318352059925}}}}}}}},"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":{}}},"6":{"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.006944444444444444}}},"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}},".":{"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":{}}},"7":{"docs":{},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}},".":{"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":{}}},"8":{"0":{"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},".":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"2":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"3":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},".":{"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.0038910505836575876}}},"5":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"6":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"7":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"8":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"9":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"docs":{}}},"9":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},".":{"1":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"2":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"3":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"4":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"5":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"6":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"docs":{}}},"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.014925373134328358},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"i":{"docs":{"./":{"ref":"./","tf":0.008108108108108109}},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}}}}}}},"n":{"docs":{},"t":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},"e":{"docs":{},"g":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"docs":{}}},"k":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}}}}}}},"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.0028011204481792717}}}}}}}}}},"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.014492753623188406},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}},"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.008951406649616368}}}}},"docs":{}}}}}}}}}},"l":{"docs":{},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"r":{"docs":{},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.008951406649616368}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"o":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}}}},"'":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"*":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"/":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"%":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}},"+":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"=":{"docs":{},"=":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}},",":{"docs":{},"'":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.038461538461538464},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.057692307692307696},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}}},"a":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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":{}}},"x":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"!":{"docs":{},"v":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"(":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"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.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}},"+":{"docs":{"./":{"ref":"./","tf":0.008108108108108109},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.008403361344537815},"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.012315270935960592},"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.005758157389635317},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.0189873417721519},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.019801980198019802}},"、":{"docs":{},"减":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},".":{"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":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},"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.015625},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}},"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}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"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.011627906976744186}}},"a":{"docs":{},"l":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"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.005813953488372093}}}}}}},"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.0012787723785166241},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},".":{"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.0025575447570332483},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.049019607843137254},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}}}}},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.046511627906976744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}},"/":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}},"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.014925373134328358}}}},"/":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.019801980198019802}}}},"=":{"docs":{"./":{"ref":"./","tf":0.024324324324324326},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.025210084033613446},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.021739130434782608},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.034722222222222224},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.046798029556650245},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.03048780487804878},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.09523809523809523},"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.042105263157894736},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.030710172744721688},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.029069767441860465},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.03164556962025317},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.04950495049504951},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0199203187250996}},"=":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.04081632653061224},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}},"(":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"和":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},">":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.030927835051546393},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0076726342710997444},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"v":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"l":{"docs":{},"o":{"docs":{},"t":{"docs":{},"t":{"docs":{},"o":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},")":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}},"o":{"docs":{},"p":{"0":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}}}}},"docs":{}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},",":{"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.0012787723785166241},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"a":{"0":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"docs":{}}}},"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},"7":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"1":{"docs":{},"]":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"docs":{}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"7":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}},"docs":{}}}},"2":{"docs":{},"]":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"docs":{}}}},"4":{"docs":{},"]":{"docs":{},"[":{"5":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}},"docs":{}}}},"docs":{},"(":{"docs":{},"l":{"docs":{},"+":{"docs":{},"r":{"docs":{},")":{"docs":{},"/":{"2":{"docs":{},"]":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"docs":{}}}}}}},"]":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},";":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}},"[":{"1":{"2":{"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}},"docs":{}},"docs":{}},")":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"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.006329113924050633}}}}}}}}}}},"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.006329113924050633}}}}}}}},"docs":{}}},"docs":{}}},"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"j":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"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.006329113924050633}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"[":{"docs":{},"m":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}},"b":{"docs":{},"]":{"docs":{},",":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.03164556962025317}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},":":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"原":{"docs":{},"先":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"确":{"docs":{},"实":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"多":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}},"非":{"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.0078125}}}}}}}}}}}}}}}}}}}}}},".":{"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.030927835051546393}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"g":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.020618556701030927}},"e":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}},"m":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"中":{"docs":{},"和":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},",":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"2":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"3":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}},"=":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},",":{"0":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"docs":{}},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"docs":{}}},"docs":{}}}}},"4":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"docs":{}}}},"d":{"docs":{},"d":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.008403361344537815},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"t":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.04477611940298507},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.030927835051546393},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.03076923076923077},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.028985507246376812},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}}}}}}},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.028011204481792718},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.017902813299232736},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},")":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"省":{"docs":{},"略":{"docs":{},"掉":{"docs":{},"了":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},"中":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"旁":{"docs":{},"边":{"docs":{},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"检":{"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.0012787723785166241}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"m":{"docs":{},".":{"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.0012787723785166241}}}}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"(":{"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.0024630541871921183}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}},"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}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"%":{"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.0037313432835820895}}}},"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.0037313432835820895}}}}}}}}}}}}},"docs":{}}},"2":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179}}}},"4":{"docs":{},";":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}},"docs":{},"f":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}},",":{"docs":{},"其":{"docs":{},"大":{"docs":{},"致":{"docs":{},"实":{"docs":{},"现":{"docs":{},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}}}}}}},"。":{"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.018656716417910446}},"}":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}},"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":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"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.003838771593090211},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}},"i":{"docs":{},"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":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"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.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354}}}}},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.013513513513513514},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306}},",":{"docs":{},"当":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}},"、":{"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/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.06842105263157895},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.02564102564102564}}}}}}}}}},"_":{"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.010526315789473684}}}}}}},",":{"docs":{},"或":{"docs":{},"者":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}}}}}}}}}}}}}}}},"。":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"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.0078125}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}},"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.006329113924050633}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}},"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.0028011204481792717}},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"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.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"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":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0078125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},",":{"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.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"*":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},")":{"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}}}}}}}}}}}}}}}}}}}},"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}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"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.010169491525423728}},"z":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}},"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.010526315789473684}}}}}}}}},"本":{"docs":{},"轮":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"进":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"次":{"docs":{},"迭":{"docs":{},"代":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}},",":{"docs":{},"则":{"docs":{},"图":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"从":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527}}}},"o":{"docs":{},"k":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"s":{"docs":{},"s":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"c":{"1":{"7":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.1111111111111111}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.008108108108108109},"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.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"+":{"docs":{},"+":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.013513513513513514},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625}},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"(":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"修":{"docs":{},"改":{"docs":{},"此":{"docs":{},"文":{"docs":{},"件":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},"这":{"docs":{},"不":{"docs":{},"会":{"docs":{},"对":{"docs":{},"你":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"产":{"docs":{},"生":{"docs":{},"影":{"docs":{},"响":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"a":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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}}}}}}}}}}},"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.061224489795918366},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"d":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"n":{"docs":{},"d":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527}},"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.05555555555555555},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}},",":{"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.005263157894736842}}}}}}}},"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.021052631578947368},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},"e":{"docs":{},"/":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}},"_":{"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.010526315789473684}}}}}}}}}}}}}}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}},"f":{"docs":{},"g":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"见":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"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}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0392156862745098}}}}}},"p":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"a":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}},"l":{"docs":{},"l":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634}},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985}},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},",":{"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.003745318352059925}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"h":{"docs":{},"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.003968253968253968}}}}}}}}},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549}}},":":{"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.0038910505836575876}},",":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"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.009900990099009901}}}}}},"=":{"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":{}},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"d":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354}},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"新":{"docs":{},"的":{"docs":{},"且":{"docs":{},"更":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"下":{"docs":{},"复":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"*":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}},"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.008951406649616368},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.029411764705882353},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}}}},"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.005813953488372093}}}}},"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}}}}}},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},",":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.03225806451612903}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}}},"=":{"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":{}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}},"q":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"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.002702702702702703}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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":{},",":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"c":{"docs":{},"c":{"docs":{"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.0025575447570332483},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},",":{"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}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"p":{"docs":{},"h":{"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}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"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.002702702702702703}}},"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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":{}}}}}}}}}}}}}}}}}}}}}}},"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}}}},"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.010309278350515464}}}}}}}}}}}}}},"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.006329113924050633}}}}}}}}},"docs":{}}},"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01891891891891892},"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.011204481792717087},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"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.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.03940886699507389},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.03571428571428571},"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.005263157894736842},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.019193857965451054},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.048507462686567165},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.06962025316455696},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.09900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}},"2":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"docs":{}},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"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.04081632653061224},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.014492753623188406},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},"e":{"docs":{},"r":{"docs":{},"(":{"2":{"0":{"2":{"2":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"2":{"0":{"2":{"2":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},";":{"docs":{},"关":{"docs":{},"于":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}}}}},")":{"docs":{},"从":{"docs":{},"左":{"docs":{},"到":{"docs":{},"右":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"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.020618556701030927}}}},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497}},".":{"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}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},",":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"、":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}},"、":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}}}},"]":{"docs":{},"。":{"docs":{},"在":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"索":{"docs":{},"引":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}},"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":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"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}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"i":{"docs":{},"f":{"docs":{},"i":{"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/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"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.057971014492753624},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.01556420233463035},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.043478260869565216},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02247191011235955},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.022388059701492536},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.02109704641350211},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.07692307692307693},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.027888446215139442}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011204481792717087}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497}}}}}}}}},"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.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}},",":{"docs":{},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}}}}}}},"f":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}}},";":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288}}}},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728}}}},"i":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"。":{"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}}}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014005602240896359},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.031578947368421054}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"=":{"0":{"docs":{},";":{"docs":{},";":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"docs":{}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}},"1":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"docs":{}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"j":{"docs":{"./":{"ref":"./","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.003838771593090211}},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"a":{"docs":{},"v":{"docs":{},"a":{"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.0028011204481792717}}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}}},"e":{"docs":{},"n":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"k":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},",":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}},"/":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.00639386189258312}},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"作":{"docs":{},"业":{"docs":{},";":{"docs":{},"也":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},"(":{"docs":{},"或":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"q":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}},"s":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"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.0025575447570332483},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"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.020618556701030927}},"/":{"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.023255813953488372}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"s":{"docs":{},"t":{"docs":{},"=":{"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":{}}}}}}}}},"v":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}},"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}}}},")":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.023255813953488372},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"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":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.023255813953488372}}}}}}}}}}},"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.06153846153846154},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}},"o":{"docs":{},"r":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.046153846153846156},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.037037037037037035},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}}}}}}},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.021052631578947368}}},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"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}}}},"t":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"s":{"docs":{},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}},"l":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"docs":{}}}},"n":{"docs":{},"d":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}}},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"b":{"docs":{},"e":{"docs":{},"l":{"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.03684210526315789},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"m":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011204481792717087},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"m":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.021621621621621623},"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.033613445378151},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"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.011363636363636364},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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.010526315789473684},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497}}}},"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.0028011204481792717}},"s":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"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.0056022408963585435},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0076726342710997444},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.017241379310344827},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.03571428571428571},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.00639386189258312}}},"y":{"docs":{},",":{"docs":{},"它":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"(":{"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.0012787723785166241},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"{":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"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.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.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"贴":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}},"。":{"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.015873015873015872}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"b":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"l":{"docs":{},"p":{"3":{"2":{"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.012345679012345678},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"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}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"=":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"i":{"docs":{},"m":{"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.012345679012345678},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}},"docs":{}},"docs":{}}}}}}}},"u":{"docs":{},"l":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}},"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.0078125}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.05970149253731343},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}},"会":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"则":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}},"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.011204481792717087},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"e":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},"]":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"d":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},")":{"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}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}},"q":{"docs":{},"c":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"e":{"docs":{},"g":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.028409090909090908}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364}}}}}}},"q":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},"r":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"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.0012787723785166241}}}}}}}}}}}},"(":{"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}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"p":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}},"e":{"docs":{},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"最":{"docs":{},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"是":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}},"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.01727447216890595}},"_":{"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.038461538461538464},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"下":{"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.0012787723785166241}}},"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}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"docs":{}}}}},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"i":{"docs":{},"p":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.020618556701030927}},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"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.0078125}},"e":{"docs":{},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},".":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}},"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.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.029850746268656716},"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.014492753623188406},"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.007782101167315175},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}},"o":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"o":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"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/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.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}},"(":{"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/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/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"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.0024630541871921183}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"3":{"docs":{},".":{"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.020618556701030927}}},"docs":{}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.10309278350515463},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.008951406649616368},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"框":{"docs":{},"架":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},"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.030927835051546393},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}},"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":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},"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.010309278350515464}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}}},"1":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"则":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"2":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"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":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"w":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}}}}}}},"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.006944444444444444}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.023255813953488372}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"如":{"docs":{},"何":{"docs":{},"提":{"docs":{},"交":{"docs":{},"课":{"docs":{},"程":{"docs":{},"报":{"docs":{},"告":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"中":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"4":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"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.010309278350515464}},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"e":{"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.0025575447570332483},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.024296675191815855},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.0038910505836575876},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.018726591760299626},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297}},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"(":{"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/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.0019193857965451055}}}}}}}}}}}}}}},"g":{"0":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"1":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"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.0078125}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}},"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.0012787723785166241}}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.06153846153846154},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"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.008108108108108109},"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.0196078431372549},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010230179028132993},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"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/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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},",":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628}},"/":{"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.0025575447570332483}}}}}}}}}}}}}}},"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.0012787723785166241}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},":":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"a":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},".":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"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":{},"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}},"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.003838771593090211}}}},"v":{"3":{"2":{"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":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"s":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}},"e":{"docs":{},",":{"docs":{},"部":{"docs":{},"分":{"docs":{},"函":{"docs":{},"数":{"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.014492753623188406}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"c":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},",":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"h":{"docs":{},",":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}}},"s":{"1":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"2":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"v":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.019193857965451054}},"d":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"3":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"4":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"5":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{"./":{"ref":"./","tf":0.04594594594594595},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"一":{"docs":{},"起":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"及":{"docs":{},"分":{"docs":{},"支":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{},"无":{"docs":{},"论":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"h":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"使":{"docs":{},"用":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}},"中":{"docs":{},"的":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"的":{"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.0078125}}}}}}}}}}}}}}}}}}}}}},"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04081632653061224},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.037037037037037035},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.07692307692307693},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.027237354085603113},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.026217228464419477},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026119402985074626},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.029535864978902954},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.027888446215139442}},"(":{"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},")":{"docs":{},"?":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"r":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634}}}}},"e":{"docs":{},"p":{"0":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"1":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}},"1":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843}},":":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}},"2":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"为":{"docs":{},"数":{"docs":{},"组":{"docs":{},"添":{"docs":{},"加":{"docs":{},"更":{"docs":{},"多":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.005405405405405406},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.07142857142857142},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.00639386189258312},"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.011363636363636364},"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.002702702702702703}}},"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}}}}}}}}}}}}}}}}}}},"2":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.028409090909090908},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},":":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"3":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}},":":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}}}}}},"4":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"比":{"docs":{},"较":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}}}}}},"5":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},":":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}},"6":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}}}}}}},"7":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"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":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}},":":{"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.03571428571428571},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282}}}}}}}},"9":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},":":{"docs":{},"函":{"docs":{},"数":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}},"docs":{"./":{"ref":"./","tf":0.021621621621621623},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},",":{"docs":{},"共":{"docs":{},"包":{"docs":{},"含":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"_":{"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.0012787723785166241}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},",":{"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":{}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"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.0012787723785166241}}}}},"m":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"分":{"docs":{},"配":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"docs":{}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"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}}}}}}}}}}}}}}}}}}}},"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.0012787723785166241}}}}}}}}}}},"q":{"docs":{},"z":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"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.0064516129032258064}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"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.0028011204481792717}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"d":{"docs":{},"o":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.030927835051546393}}}}},"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}}},"z":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}}}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"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}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},":":{"docs":{},":":{"docs":{},"a":{"0":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{}}}}}}}}}}}}}}}},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"e":{"docs":{},"c":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},",":{"docs":{},"并":{"docs":{},"恢":{"docs":{},"复":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.015355086372360844}}}},"s":{"docs":{},"h":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"h":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}},"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.0024630541871921183}},"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.0024630541871921183}}}}}}}}},"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.0064516129032258064}}}},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}}}},"u":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},";":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"/":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}}}}}}}},"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.0012787723785166241}}}}}}}}}}}}}}},"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/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.010309278350515464}}}}}}}}}}}}}},"n":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"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.012345679012345678},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010230179028132993},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.061224489795918366},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0375},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.05970149253731343},"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.01556420233463035},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.02109704641350211},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0199203187250996}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}},",":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}},"docs":{}}}}},"那":{"docs":{},"么":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"i":{"docs":{},"x":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}},"o":{"docs":{},"n":{"docs":{},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"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}}}}}},"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.020618556701030927},"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.005263157894736842}}}}}}}}}}},"]":{"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.005813953488372093}}}},"docs":{"./":{"ref":"./","tf":0.008108108108108109},"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.0196078431372549},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010230179028132993},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.028409090909090908},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.023255813953488372},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"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}}}}}}}},"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/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010230179028132993},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":5.0130718954248366},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"(":{"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}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}},"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.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}}}}}}}}},"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.0056022408963585435}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"a":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"r":{"docs":{},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},".":{"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}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"(":{"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.002702702702702703},"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.030927835051546393}}}}}}},"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.010309278350515464}},",":{"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}}}}}}}},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.0012787723785166241},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.0038910505836575876},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306}}}},"1":{"docs":{},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"2":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"docs":{}}},"i":{"docs":{},"f":{"docs":{},"(":{"docs":{},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005405405405405406},"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.0012787723785166241},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.0038910505836575876},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297}},"”":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},",":{"docs":{},"且":{"docs":{},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"被":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}},"↩":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.002702702702702703}}}}}}}}}},",":{"docs":{},"如":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"进":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"的":{"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"面":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},",":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"将":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"述":{"docs":{},"步":{"docs":{},"骤":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}},"下":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}},"运":{"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/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.03571428571428571}}}}}}}}}}}}}}}}}},"将":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},"的":{"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":{},"o":{"docs":{},"r":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"每":{"docs":{},"行":{"docs":{},"语":{"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.005813953488372093}}}}},"进":{"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"各":{"docs":{},"种":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}}}}}},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"基":{"docs":{},"础":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"们":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"分":{"docs":{},"数":{"docs":{},"(":{"4":{"0":{"docs":{},"%":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"关":{"docs":{},"卡":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"(":{"docs":{},"其":{"docs":{},"中":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"汇":{"docs":{},"编":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"分":{"docs":{},"配":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"a":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"通":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"分":{"docs":{},"类":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}},"字":{"docs":{},"节":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},",":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"元":{"docs":{},"素":{"docs":{},"(":{"docs":{},"从":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}},"中":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"你":{"docs":{},"将":{"docs":{},"实":{"docs":{},"现":{"docs":{},"常":{"docs":{},"量":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"多":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"组":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"块":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"支":{"docs":{},"持":{"docs":{},"变":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"请":{"docs":{},"联":{"docs":{},"系":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"已":{"docs":{},"经":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{},"如":{"docs":{},"何":{"docs":{},"运":{"docs":{},"行":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"输":{"docs":{},"出":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"请":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"新":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"若":{"docs":{},"你":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"我":{"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.02040816326530612}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"维":{"docs":{},"护":{"docs":{},"了":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"引":{"docs":{},"入":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}},"算":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"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.0064516129032258064}}}}}}}}}}}}}}}}},"会":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"负":{"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.0024630541871921183}}}}}}}}}}}},"变":{"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.0024630541871921183}}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"把":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"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.0038910505836575876}}},"docs":{}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}},"使":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"加":{"docs":{},"模":{"docs":{},"块":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"第":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"一":{"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/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"话":{"docs":{},"同":{"docs":{},"时":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"以":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}},"剩":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"比":{"docs":{},"如":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"常":{"docs":{},"量":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"均":{"docs":{},"用":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}},"一":{"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.0019193857965451055}}}}}}}}}}}}}}}},"第":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}},"详":{"docs":{},"细":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"基":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"间":{"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.0028011204481792717}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}},"表":{"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.005681818181818182}}}}}}}}}}}}}},";":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.07142857142857142}},"加":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}},"基":{"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.03571428571428571}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"分":{"docs":{},"派":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"全":{"docs":{},"部":{"docs":{},"放":{"docs":{},"入":{"docs":{},"内":{"docs":{},"存":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"如":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"遍":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},"越":{"docs":{},"界":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"二":{"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.0064516129032258064}}}}}}}}}}}}}}}},"运":{"docs":{},"算":{"docs":{},"均":{"docs":{},"为":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},")":{"docs":{},"、":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"出":{"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.02040816326530612}}}}}}}}}}}}}}}}}}},"添":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"限":{"docs":{},"制":{"docs":{},"。":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"储":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{},"与":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"相":{"docs":{},"差":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"即":{"docs":{},"使":{"docs":{},"标":{"docs":{},"明":{"docs":{},"了":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"依":{"docs":{},"然":{"docs":{},"会":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"便":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"某":{"docs":{},"些":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"照":{"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.03571428571428571}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"帮":{"docs":{},"大":{"docs":{},"家":{"docs":{},"再":{"docs":{},"快":{"docs":{},"一":{"docs":{},"点":{"docs":{},"了":{"docs":{},"解":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"定":{"docs":{},":":{"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.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"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.005263157894736842}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"两":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"让":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"学":{"docs":{},"有":{"docs":{},"余":{"docs":{},"力":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"它":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"减":{"docs":{},"少":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"2":{"0":{"2":{"2":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"类":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},"由":{"docs":{},"于":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"符":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"止":{"docs":{},"。":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"是":{"docs":{},"必":{"docs":{},"不":{"docs":{},"可":{"docs":{},"少":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"。":{"docs":{},"已":{"docs":{},"知":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"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/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.0019193857965451055}}},"全":{"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.005813953488372093}}}}}}}}}}}},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"了":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.006329113924050633}}}}}}}}}},"代":{"docs":{},"码":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"雷":{"docs":{},"同":{"docs":{},"情":{"docs":{},"节":{"docs":{},"严":{"docs":{},"重":{"docs":{},"的":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"”":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}},"段":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"为":{"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":{},",":{"docs":{},"大":{"docs":{},"致":{"docs":{},"理":{"docs":{},"解":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}},"中":{"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":{"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":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}},"这":{"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.005813953488372093}}}}}}}}}}}}}}}}},"不":{"docs":{},"过":{"docs":{},"不":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}},"也":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}},"替":{"docs":{},"了":{"docs":{},"返":{"docs":{},"回":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"引":{"docs":{},"入":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"变":{"docs":{},"为":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},"你":{"docs":{},"做":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"工":{"docs":{},"作":{"docs":{},"(":{"docs":{},"即":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}},"的":{"docs":{},"学":{"docs":{},"号":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"姓":{"docs":{},"名":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}},"编":{"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":{},"p":{"docs":{},"w":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}},"认":{"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.006329113924050633}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"能":{"docs":{},"会":{"docs":{},"觉":{"docs":{},"得":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"不":{"docs":{},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}},"应":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}},"使":{"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":{},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{},"框":{"docs":{},"架":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"指":{"docs":{},"导":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"期":{"docs":{},"望":{"docs":{},"降":{"docs":{},"低":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"难":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},"设":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"在":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"9":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"不":{"docs":{},"是":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"栈":{"docs":{},"底":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.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":{},":":{"1":{"docs":{},".":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},"于":{"docs":{},"名":{"docs":{},"字":{"docs":{},"由":{"docs":{},"来":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"往":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"给":{"docs":{},"出":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"提":{"docs":{},"供":{"docs":{},"注":{"docs":{},"释":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"应":{"docs":{},"该":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"不":{"docs":{},"想":{"docs":{},"读":{"docs":{},"冗":{"docs":{},"长":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{},"了":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"小":{"docs":{},"技":{"docs":{},"巧":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"实":{"docs":{},"在":{"docs":{},"不":{"docs":{},"知":{"docs":{},"道":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"系":{"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.002702702702702703}}},"docs":{}}}}}}},"双":{"docs":{},"引":{"docs":{},"号":{"docs":{},"下":{"docs":{},"的":{"docs":{},"和":{"docs":{},"大":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"开":{"docs":{},"头":{"docs":{},"的":{"docs":{},"都":{"docs":{},"为":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}},"他":{"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":{},",":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}},"具":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}},"体":{"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.0028011204481792717}}}}}}}}}}}}}}}}},"的":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"删":{"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":{},";":{"docs":{},";":{"docs":{},")":{"docs":{},"这":{"docs":{},"种":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"其":{"docs":{},"本":{"docs":{},"质":{"docs":{},"与":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"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":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"远":{"docs":{},"端":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"意":{"docs":{},"地":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"可":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"有":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"了":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"为":{"docs":{},"止":{"docs":{},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}},"栈":{"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/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"补":{"docs":{},"交":{"docs":{},",":{"docs":{},"此":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"就":{"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.0078125}}}}}}}}}}}}}}}}}}},"助":{"docs":{},"教":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"想":{"docs":{},"说":{"docs":{},"的":{"docs":{},":":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"看":{"docs":{},"起":{"docs":{},"来":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"长":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"庞":{"docs":{},"大":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"希":{"docs":{},"望":{"docs":{},"提":{"docs":{},"供":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"全":{"docs":{},"面":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"来":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"理":{"docs":{},"解":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"构":{"docs":{},"成":{"docs":{},",":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"编":{"docs":{},"译":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"关":{"docs":{},"系":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"每":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"在":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"列":{"docs":{},"表":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},"参":{"docs":{},"考":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"资":{"docs":{},"料":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"REFERENCE.html":{"ref":"REFERENCE.html","tf":10.027777777777779}}}},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"及":{"docs":{},"之":{"docs":{},"后":{"docs":{},"不":{"docs":{},"接":{"docs":{},"受":{"docs":{},"补":{"docs":{},"交":{"docs":{},",":{"docs":{},"此":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},",":{"docs":{},"至":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"触":{"docs":{},"发":{"docs":{},"此":{"docs":{},"次":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"更":{"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01984126984126984}},"和":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"读":{"docs":{},"取":{"docs":{},"/":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}},"初":{"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/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}},"符":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}},"同":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"学":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"面":{"docs":{},"对":{"docs":{},"一":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"种":{"docs":{},"参":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"通":{"docs":{},"过":{"docs":{},"实":{"docs":{},"验":{"docs":{},"学":{"docs":{},"习":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"单":{"docs":{},"独":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"手":{"docs":{},"工":{"docs":{},"自":{"docs":{},"顶":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"应":{"docs":{},"只":{"docs":{},"能":{"docs":{},"作":{"docs":{},"为":{"docs":{},"至":{"docs":{},"多":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{"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.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.00639386189258312},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.014778325123152709},"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.02631578947368421},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.046511627906976744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"手":{"docs":{},"工":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"为":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"常":{"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.0012787723785166241}}}}}},"最":{"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.0038910505836575876}}}}}}}},"在":{"docs":{"./":{"ref":"./","tf":0.005405405405405406},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0076726342710997444},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"列":{"docs":{},"出":{"docs":{},"与":{"docs":{},"实":{"docs":{},"验":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},",":{"docs":{},"它":{"docs":{},"会":{"docs":{},"和":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"上":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"部":{"docs":{},"分":{"docs":{},"保":{"docs":{},"持":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"遇":{"docs":{},"到":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"段":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"第":{"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":{},"析":{"docs":{},"各":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"时":{"docs":{},",":{"docs":{},"若":{"docs":{},"它":{"docs":{},"们":{"docs":{},"引":{"docs":{},"用":{"docs":{},"了":{"docs":{},"某":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"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.0028011204481792717}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"即":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"跟":{"docs":{},"任":{"docs":{},"何":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"建":{"docs":{},"立":{"docs":{},"关":{"docs":{},"联":{"docs":{},"关":{"docs":{},"系":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"有":{"docs":{},"则":{"docs":{},"选":{"docs":{},"择":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"作":{"docs":{},"为":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"其":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"已":{"docs":{},"经":{"docs":{},"不":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"说":{"docs":{},"明":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"未":{"docs":{},"来":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"回":{"docs":{},"收":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"而":{"docs":{},"不":{"docs":{},"用":{"docs":{},"担":{"docs":{},"心":{"docs":{},"引":{"docs":{},"起":{"docs":{},"数":{"docs":{},"据":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"是":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"将":{"docs":{},"把":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"(":{"docs":{},"内":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"已":{"docs":{},"知":{"docs":{},"定":{"docs":{},"型":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"编":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"算":{"docs":{},"法":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"际":{"docs":{},"操":{"docs":{},"作":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"已":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}},"要":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"已":{"docs":{},"经":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"了":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"类":{"docs":{},"型":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"下":{"docs":{},"一":{"docs":{},"步":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"则":{"docs":{},"是":{"docs":{},"将":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"便":{"docs":{},"于":{"docs":{},"移":{"docs":{},"植":{"docs":{},"和":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"就":{"docs":{},"是":{"docs":{},"三":{"docs":{},"地":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"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.005681818181818182}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},",":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"实":{"docs":{},"际":{"docs":{},"拥":{"docs":{},"有":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"数":{"docs":{},"目":{"docs":{},",":{"docs":{},"将":{"docs":{},"无":{"docs":{},"法":{"docs":{},"生":{"docs":{},"成":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"采":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"和":{"docs":{},"分":{"docs":{},"配":{"docs":{},"数":{"docs":{},"目":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"资":{"docs":{},"源":{"docs":{},",":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"伪":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"都":{"docs":{},"有":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"与":{"docs":{},"之":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"时":{"docs":{},"刻":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"即":{"docs":{},"两":{"docs":{},"个":{"docs":{},"同":{"docs":{},"时":{"docs":{},"有":{"docs":{},"效":{"docs":{},"且":{"docs":{},"将":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"将":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"课":{"docs":{},"程":{"docs":{},"学":{"docs":{},"习":{"docs":{},"中":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"接":{"docs":{},"触":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"下":{"docs":{},"面":{"docs":{},"简":{"docs":{},"单":{"docs":{},"回":{"docs":{},"顾":{"docs":{},"一":{"docs":{},"下":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"和":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"辟":{"docs":{},"一":{"docs":{},"块":{"docs":{},"新":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"块":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"就":{"docs":{},"叫":{"docs":{},"做":{"docs":{},"“":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"”":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"各":{"docs":{},"种":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"需":{"docs":{},"要":{"docs":{},"临":{"docs":{},"时":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"局":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"语":{"docs":{},"句":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"逐":{"docs":{},"一":{"docs":{},"访":{"docs":{},"问":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"它":{"docs":{},"存":{"docs":{},"入":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"在":{"docs":{},"定":{"docs":{},"义":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"正":{"docs":{},"在":{"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"准":{"docs":{},"备":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"所":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"但":{"docs":{},"即":{"docs":{},"便":{"docs":{},"实":{"docs":{},"参":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"左":{"docs":{},"值":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"参":{"docs":{},"和":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"7":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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":{"./":{"ref":"./","tf":0.002702702702702703},"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.002702702702702703}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"把":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"等":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}},"如":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"交":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"也":{"docs":{},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"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.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"果":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"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.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"请":{"docs":{},"及":{"docs":{},"时":{"docs":{},"与":{"docs":{},"助":{"docs":{},"教":{"docs":{},"联":{"docs":{},"系":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"多":{"docs":{},"次":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"机":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"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.0078125}}}}}}}}}}}}}}}}}}}}}},"使":{"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/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}},"全":{"docs":{},"局":{"docs":{},"变":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"何":{"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.0012787723785166241}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"学":{"docs":{},"术":{"docs":{},"规":{"docs":{},"范":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},",":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"的":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}},"验":{"docs":{},"思":{"docs":{},"路":{"docs":{},"指":{"docs":{},"导":{"docs":{},"与":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"指":{"docs":{},"导":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"书":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"(":{"docs":{},"首":{"docs":{},"页":{"docs":{},"有":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"提":{"docs":{},"交":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"框":{"docs":{},"架":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"视":{"docs":{},"频":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"相":{"docs":{},"对":{"docs":{},"于":{"2":{"0":{"2":{"2":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"以":{"docs":{},"下":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":10.02061855670103}}}}}},",":{"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}}},"中":{"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.0012787723785166241}}}}}}}}}}}}}}}}},"所":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"概":{"docs":{},"述":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"环":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"介":{"docs":{"./":{"ref":"./","tf":10}}}},"起":{"docs":{},"点":{"docs":{},"和":{"docs":{},"基":{"docs":{},"本":{"docs":{},"要":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"中":{"docs":{},"有":{"docs":{},"与":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"际":{"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.005813953488372093}}}}}}}}}}}}}}},"上":{"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.009900990099009901}}}}}}}}}}}}}}}}}}},"对":{"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.0038910505836575876}},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}},"含":{"docs":{},"有":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{},"c":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"仅":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"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.006329113924050633}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"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.003968253968253968}},"的":{"docs":{},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"每":{"docs":{},"当":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"为":{"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.0024630541871921183}}}}}}},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"到":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"着":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}},"结":{"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.005681818181818182}}}}}},"有":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},"虽":{"docs":{},"然":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}}}},"象":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"未":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"尤":{"docs":{},"为":{"docs":{},"重":{"docs":{},"要":{"docs":{},",":{"docs":{},"掌":{"docs":{},"握":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"和":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"的":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},"与":{"docs":{},"使":{"docs":{},"用":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"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":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"2":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}}}}}}}}}},"说":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"年":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"秋":{"docs":{},"季":{"docs":{},"学":{"docs":{},"期":{"docs":{},"《":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"》":{"docs":{},"课":{"docs":{},"程":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"贴":{"docs":{},"合":{"docs":{},"课":{"docs":{},"程":{"docs":{},"教":{"docs":{},"学":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"提":{"docs":{},"升":{"docs":{},"训":{"docs":{},"练":{"docs":{},"效":{"docs":{},"果":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"设":{"docs":{},"计":{"docs":{},"了":{"docs":{},"比":{"docs":{},"较":{"docs":{},"完":{"docs":{},"善":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"沿":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"来":{"docs":{},"集":{"docs":{},"中":{"docs":{},"解":{"docs":{},"决":{"docs":{},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"了":{"docs":{},"任":{"docs":{},"何":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"中":{"docs":{},"检":{"docs":{},"索":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"尚":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"得":{"docs":{},"分":{"docs":{},"乘":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"到":{"docs":{},"的":{"docs":{},"这":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}},"只":{"docs":{},"接":{"docs":{},"受":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"将":{"docs":{},"会":{"docs":{},"对":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"作":{"docs":{},"相":{"docs":{},"似":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"如":{"docs":{},"发":{"docs":{},"现":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"雷":{"docs":{},"同":{"docs":{},"的":{"docs":{},"情":{"docs":{},"形":{"docs":{},",":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"和":{"docs":{},"被":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"将":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"易":{"docs":{},"到":{"docs":{},"难":{"docs":{},"完":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"提":{"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":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"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.02040816326530612}}}}}}}}}}}}}}},"先":{"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.014492753623188406}}}}}}}}}}}}},"增":{"docs":{},"加":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"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.0024630541871921183}}}}}}}}}}}}}}}},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"针":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"只":{"docs":{},"是":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"目":{"docs":{},"的":{"docs":{},"是":{"docs":{},"给":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"致":{"docs":{},"的":{"docs":{},"印":{"docs":{},"象":{"docs":{},":":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"到":{"docs":{},"底":{"docs":{},"是":{"docs":{},"由":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"部":{"docs":{},"分":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"部":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"规":{"docs":{},"定":{"docs":{},"整":{"docs":{},"数":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"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.005681818181818182}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"忽":{"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":{},"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":{},"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":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"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":{},"于":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"发":{"docs":{},"现":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"用":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"采":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}},"加":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}}},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"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.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}}}}},"对":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"条":{"docs":{},"件":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}}}}}}},"的":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"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.014925373134328358}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"已":{"docs":{},"经":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"额":{"docs":{},"外":{"docs":{},"定":{"docs":{},"义":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"了":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"按":{"docs":{},"照":{"docs":{},"本":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"上":{"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"首":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}},"人":{"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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}},"暂":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}},"对":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},"不":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"要":{"docs":{},"求":{"docs":{},"或":{"docs":{},"限":{"docs":{},"定":{"docs":{},";":{"docs":{},"但":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"固":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"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.004219409282700422}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},"作":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"谓":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"假":{"docs":{},"设":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"数":{"docs":{},"量":{"docs":{},"是":{"docs":{},"无":{"docs":{},"限":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"导":{"docs":{},"致":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},"无":{"docs":{},"法":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"对":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"做":{"docs":{},"一":{"docs":{},"一":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"调":{"docs":{},"度":{"docs":{},"与":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"来":{"docs":{},"合":{"docs":{},"理":{"docs":{},"使":{"docs":{},"用":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},"满":{"docs":{},"足":{"docs":{},"什":{"docs":{},"么":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"基":{"docs":{},"本":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"需":{"docs":{},"的":{"docs":{},"底":{"docs":{},"层":{"docs":{},"类":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"有":{"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/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.004219409282700422}}}}}}}}}}}}}}},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"分":{"docs":{},"配":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"和":{"docs":{},"保":{"docs":{},"存":{"docs":{},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"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.003745318352059925}}}}}}}}}}}}}}}}},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"上":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}},"令":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"集":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"思":{"docs":{},"路":{"docs":{},"是":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"简":{"docs":{},"洁":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"多":{"docs":{},"条":{"docs":{},"简":{"docs":{},"单":{"docs":{},"指":{"docs":{},"令":{"docs":{},"代":{"docs":{},"替":{"docs":{},"。":{"docs":{},"如":{"docs":{},"相":{"docs":{},"等":{"docs":{},"、":{"docs":{},"大":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},"、":{"docs":{},"逻":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"计":{"docs":{},"算":{"docs":{},"在":{"docs":{},"内":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"至":{"docs":{},"少":{"docs":{},"执":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"每":{"docs":{},"条":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"其":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}},"由":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"不":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}},"来":{"docs":{},"支":{"docs":{},"持":{"docs":{},"加":{"docs":{},"载":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"完":{"docs":{},"成":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"执":{"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.006329113924050633}}}}}}}}}}}}}}}}}},"选":{"docs":{},"择":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"(":{"docs":{},"即":{"docs":{},"所":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"如":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"同":{"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.0012787723785166241}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"部":{"docs":{},"分":{"docs":{},"代":{"docs":{},"码":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"只":{"docs":{},"要":{"docs":{},"在":{"docs":{},"你":{"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.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"合":{"docs":{},"(":{"docs":{},"说":{"docs":{},"出":{"docs":{},"两":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}}}},"都":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}},"为":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"在":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"每":{"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.0024630541871921183}}}}}},"顶":{"docs":{},",":{"docs":{},"f":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"栈":{"docs":{},"顶":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"时":{"docs":{},"间":{"docs":{},"是":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"供":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"环":{"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.0012787723785166241}},"与":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{},"发":{"docs":{},"生":{"docs":{},"越":{"docs":{},"界":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"计":{"docs":{},"算":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"再":{"docs":{},"像":{"docs":{},"现":{"docs":{},"在":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},"统":{"docs":{},"一":{"docs":{},"给":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"1":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}},"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.0028011204481792717}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"无":{"docs":{},"法":{"docs":{},"用":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"的":{"docs":{},"下":{"docs":{},"标":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}},"和":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"参":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}},"据":{"docs":{},"流":{"docs":{},"图":{"docs":{},"定":{"docs":{},"义":{"docs":{},"及":{"docs":{},"优":{"docs":{},"化":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"分":{"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.005813953488372093}}}}}}}}}}}},"日":{"docs":{"./":{"ref":"./","tf":0.013513513513513514}},"(":{"docs":{},"第":{"docs":{},"十":{"docs":{},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},")":{"2":{"4":{"docs":{},":":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}},"是":{"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.0012787723785166241},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"很":{"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.0028011204481792717}}},"根":{"docs":{},"据":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"声":{"docs":{},"明":{"docs":{},",":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"b":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"a":{"docs":{},"[":{"docs":{},"b":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}}},"条":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}},"在":{"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":{},"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"某":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"否":{"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":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}},"未":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"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.015384615384615385}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}},",":{"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.003968253968253968}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"本":{"docs":{},"身":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"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.0037313432835820895}},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}},"其":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"传":{"docs":{},"参":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"申":{"docs":{},"请":{"docs":{},"完":{"docs":{},"整":{"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.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"讲":{"docs":{},"是":{"docs":{},"创":{"docs":{},"建":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"等":{"docs":{},"于":{"docs":{},"你":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},"评":{"docs":{},"测":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"现":{"docs":{},"在":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"次":{"docs":{},"触":{"docs":{},"发":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},",":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"新":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"终":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"月":{"docs":{"./":{"ref":"./","tf":0.010810810810810811}}},"本":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"学":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"多":{"docs":{},"次":{"docs":{},"“":{"docs":{},"思":{"docs":{},"考":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"一":{"docs":{},"共":{"docs":{},"设":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"步":{"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.0012787723785166241}}}}}}}}}}}}}},"中":{"docs":{},"其":{"docs":{},"他":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"和":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{},"取":{"docs":{},"负":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"实":{"docs":{},"现":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"和":{"docs":{},"按":{"docs":{},"位":{"docs":{},"非":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"加":{"docs":{},"法":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"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.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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"无":{"docs":{},"须":{"docs":{},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"语":{"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.005263157894736842}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"调":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"但":{"docs":{},"要":{"docs":{},"求":{"docs":{},"声":{"docs":{},"明":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},")":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},"维":{"docs":{},"护":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}},"引":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}}},"节":{"docs":{},"指":{"docs":{},"导":{"docs":{},"用":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"主":{"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"安":{"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.0012787723785166241}}}}}}},"判":{"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":{},"们":{"docs":{},"预":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},"了":{"docs":{},"解":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"其":{"docs":{},"提":{"docs":{},"交":{"docs":{},"方":{"docs":{},"式":{"docs":{},"是":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},"框":{"docs":{},"架":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step11/example.html":{"ref":"docs/step11/example.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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"中":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"确":{"docs":{},"输":{"docs":{},"出":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}},"的":{"docs":{},"后":{"docs":{},"端":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}},"本":{"docs":{},"身":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}},"里":{"docs":{},"已":{"docs":{},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}},"中":{"docs":{},"不":{"docs":{},"同":{"docs":{},"运":{"docs":{},"算":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"会":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"新":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"、":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"参":{"docs":{},"考":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"比":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"步":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}},"节":{"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/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"进":{"docs":{},"而":{"docs":{},"深":{"docs":{},"入":{"docs":{},"理":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"和":{"docs":{},"相":{"docs":{},"关":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"具":{"docs":{},"备":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"面":{"docs":{},"依":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"将":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"扩":{"docs":{},"大":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"变":{"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.0012787723785166241}}},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"里":{"docs":{},"面":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"般":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"大":{"docs":{},"的":{"docs":{},"差":{"docs":{},"别":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"直":{"docs":{},"接":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"困":{"docs":{},"难":{"docs":{},"的":{"docs":{},"。":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"所":{"docs":{},"采":{"docs":{},"取":{"docs":{},"的":{"docs":{},"做":{"docs":{},"法":{"docs":{},",":{"docs":{},"是":{"docs":{},"首":{"docs":{},"先":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"一":{"docs":{},"种":{"docs":{},"相":{"docs":{},"对":{"docs":{},"接":{"docs":{},"近":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"有":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"对":{"docs":{},"应":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"的":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"标":{"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.023255813953488372}}}}}}}}}}}}}}},"的":{"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.005813953488372093}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"中":{"docs":{},"看":{"docs":{},"到":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"你":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},"知":{"docs":{},"识":{"docs":{},"都":{"docs":{},"比":{"docs":{},"较":{"docs":{},"初":{"docs":{},"级":{"docs":{},",":{"docs":{},"随":{"docs":{},"着":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"深":{"docs":{},"入":{"docs":{},",":{"docs":{},"将":{"docs":{},"会":{"docs":{},"循":{"docs":{},"序":{"docs":{},"渐":{"docs":{},"进":{"docs":{},"地":{"docs":{},"引":{"docs":{},"入":{"docs":{},"各":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"文":{"docs":{},"档":{"docs":{},"对":{"docs":{},"相":{"docs":{},"关":{"docs":{},"技":{"docs":{},"术":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"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.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"实":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"会":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"时":{"docs":{},"刻":{"docs":{},"只":{"docs":{},"能":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"为":{"docs":{},"了":{"docs":{},"把":{"docs":{},"若":{"docs":{},"干":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"塞":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"各":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"别":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"以":{"docs":{},"后":{"docs":{},"不":{"docs":{},"会":{"docs":{},"再":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"(":{"docs":{},"以":{"docs":{},"便":{"docs":{},"腾":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"占":{"docs":{},"用":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"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":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"没":{"docs":{},"有":{"docs":{},"新":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"除":{"docs":{},"非":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"可":{"docs":{},"以":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"分":{"docs":{},"配":{"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":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.010810810810810811},"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/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"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.02631578947368421}},"子":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}},"现":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}},"帐":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}},"得":{"docs":{},"分":{"docs":{},"为":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"成":{"docs":{},"绩":{"docs":{},"是":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"对":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}},"自":{"docs":{},"动":{"docs":{},"化":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"止":{"docs":{},"时":{"docs":{},"间":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"文":{"docs":{},"档":{"docs":{},"都":{"docs":{},"将":{"docs":{},"以":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"组":{"docs":{},"织":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}},"法":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"候":{"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"今":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"就":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"注":{"docs":{},"释":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"提":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"提":{"docs":{},"示":{"docs":{},",":{"docs":{},"如":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"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.0012787723785166241}}}}},"同":{"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":3.333333333333333}},"。":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"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.0028011204481792717}}}},"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.003968253968253968}}}}}}}}}}}}}}}}}}},"返":{"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":{},"测":{"docs":{},"试":{"docs":{},"。":{"docs":{},"请":{"docs":{},"保":{"docs":{},"证":{"docs":{},"你":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.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/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"性":{"docs":{},",":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.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/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":{},"来":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"形":{"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.0028011204481792717}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"调":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"使":{"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.0012787723785166241}}}}}}}}}}}}}}}}}},"入":{"docs":{},"门":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"方":{"docs":{},"式":{"docs":{},"更":{"docs":{},"符":{"docs":{},"合":{"docs":{},"你":{"docs":{},"的":{"docs":{},"直":{"docs":{},"觉":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}}}}}}},"对":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"进":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}},",":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}},"大":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"方":{"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/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/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"程":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"点":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"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.0024630541871921183}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"减":{"docs":{},"去":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"加":{"docs":{},"上":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"存":{"docs":{},"储":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"去":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"都":{"docs":{},"指":{"docs":{},"向":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"赋":{"docs":{},"给":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},",":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}},"为":{"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.007677543186180422}}}}}}},"含":{"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.014492753623188406}}}}}}},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"并":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"它":{"docs":{},"的":{"docs":{},"布":{"docs":{},"局":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}}}},"“":{"docs":{},"替":{"docs":{},"身":{"docs":{},"”":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"这":{"docs":{},"并":{"docs":{},"不":{"docs":{},"产":{"docs":{},"生":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"由":{"docs":{},"于":{"docs":{},"本":{"docs":{},"节":{"docs":{},"还":{"docs":{},"无":{"docs":{},"需":{"docs":{},"支":{"docs":{},"持":{"docs":{},"全":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"docs":{},"操":{"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":{},"有":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"声":{"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.01282051282051282}}}}},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}},"求":{"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.0038910505836575876}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"了":{"docs":{},"它":{"docs":{},"的":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"(":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"知":{"docs":{},"道":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"特":{"docs":{},"别":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"建":{"docs":{},"议":{"docs":{},"的":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"式":{"docs":{},"为":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"根":{"docs":{},"据":{"docs":{},"地":{"docs":{},"址":{"docs":{},"来":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"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.005813953488372093}}}}}}}}}}}}}}}},"代":{"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.0037313432835820895}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"和":{"docs":{},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}},"博":{"docs":{},"文":{"docs":{},",":{"docs":{},"其":{"docs":{},"与":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"源":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"信":{"docs":{},"息":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"的":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"同":{"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.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}},"即":{"docs":{},"“":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}},"似":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"硬":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"译":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"里":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"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.0028011204481792717}}}}},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"统":{"docs":{},"一":{"docs":{},"用":{"docs":{},"一":{"docs":{},"种":{"docs":{},"具":{"docs":{},"有":{"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.0028011204481792717}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"是":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"指":{"docs":{},"令":{"docs":{},"构":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"报":{"docs":{},"错":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"所":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"并":{"docs":{},"非":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"细":{"docs":{},"节":{"docs":{},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"因":{"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.005263157894736842}}}}}}}}}}}}}}}}}},"流":{"docs":{},"程":{"docs":{},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"接":{"docs":{},"口":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"点":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"生":{"docs":{},"成":{"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.0012787723785166241}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"只":{"docs":{},"能":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"a":{"docs":{},"s":{"docs":{},"t":{"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/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/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"0":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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.005263157894736842}}}}}}}}}}}}}}}}}},"二":{"docs":{},"种":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"简":{"docs":{},"要":{"docs":{},"叙":{"docs":{},"述":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"说":{"docs":{},",":{"docs":{},"狭":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"成":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"把":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"给":{"docs":{},"编":{"docs":{},"码":{"docs":{},"到":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"链":{"docs":{},"接":{"docs":{},"器":{"docs":{},"变":{"docs":{},"成":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"织":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"各":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"编":{"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.002702702702702703}},"分":{"docs":{},"为":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"框":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}},"到":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"致":{"docs":{},"划":{"docs":{},"分":{"docs":{},"为":{"docs":{},"三":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":5.002801120448179}}}},"的":{"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/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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}}}},"优":{"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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{},"相":{"docs":{},"互":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"设":{"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":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}},"评":{"docs":{},"分":{"docs":{},"会":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"标":{"docs":{},"准":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"语":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"的":{"docs":{},"手":{"docs":{},"工":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}},"树":{"docs":{},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"可":{"docs":{},"以":{"docs":{},"说":{"docs":{},"明":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}},"器":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}},"docs":{}}}}}},"我":{"docs":{},"们":{"docs":{},"继":{"docs":{},"续":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}}}}},"改":{"docs":{},"动":{"docs":{},"不":{"docs":{},"大":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}},"的":{"docs":{},"改":{"docs":{},"动":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"改":{"docs":{},"动":{"docs":{},",":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"里":{"docs":{},"都":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}},"言":{"docs":{},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"的":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"与":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}},"将":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"变":{"docs":{},"得":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"都":{"docs":{},"会":{"docs":{},"增":{"docs":{},"加":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"支":{"docs":{},"持":{"docs":{},"相":{"docs":{},"关":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"结":{"docs":{},"构":{"docs":{},"或":{"docs":{},"程":{"docs":{},"序":{"docs":{},"(":{"docs":{},"如":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"完":{"docs":{},"整":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"把":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"边":{"docs":{},"界":{"docs":{},"情":{"docs":{},"况":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"流":{"docs":{},"行":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},",":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"都":{"docs":{},"是":{"docs":{},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"。":{"docs":{},"为":{"docs":{},"何":{"docs":{},"这":{"docs":{},"一":{"docs":{},"特":{"docs":{},"性":{"docs":{},"广":{"docs":{},"受":{"docs":{},"欢":{"docs":{},"迎":{"docs":{},"?":{"docs":{},"你":{"docs":{},"认":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"数":{"docs":{},"学":{"docs":{},"运":{"docs":{},"算":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"比":{"docs":{},"较":{"docs":{},"运":{"docs":{},"算":{"docs":{},"了":{"docs":{},",":{"docs":{},"成":{"docs":{},"就":{"docs":{},"感":{"docs":{},"满":{"docs":{},"满":{"docs":{},"!":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"你":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},"还":{"docs":{},"只":{"docs":{},"能":{"docs":{},"支":{"docs":{},"持":{"docs":{},"常":{"docs":{},"量":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},",":{"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.018518518518518517}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282}}}}}}}}},"中":{"docs":{},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"语":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}},"我":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"规":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}},"规":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"句":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},";":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"想":{"docs":{},"要":{"docs":{},"输":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.07142857142857142}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"是":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"子":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}}},"结":{"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":{},"接":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"返":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}},",":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}},"我":{"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.005263157894736842}},"两":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}},"意":{"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.0038910505836575876}}}}}}}}}}}}},"终":{"docs":{},"止":{"docs":{},"该":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"当":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"块":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}},"不":{"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/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"和":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},"条":{"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.018518518518518517}}}}}}}}}}}}}}}}}}}}},"时":{"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.005263157894736842}}}}}}}}}}}},"没":{"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/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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"动":{"docs":{},"态":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"相":{"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.005263157894736842}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"何":{"docs":{},"处":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"这":{"docs":{},"儿":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"变":{"docs":{},"量":{"docs":{},"处":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"独":{"docs":{},"自":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"。":{"docs":{},"这":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"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.0038910505836575876}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}},"要":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"计":{"docs":{},"算":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"规":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"检":{"docs":{},"查":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"了":{"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.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":{},"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.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"所":{"docs":{},"有":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},",":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"生":{"docs":{},"成":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"、":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"、":{"docs":{},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"按":{"docs":{},"照":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"严":{"docs":{},"格":{"docs":{},"杜":{"docs":{},"绝":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"代":{"docs":{},"码":{"docs":{},"查":{"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.002702702702702703}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"赋":{"docs":{},"值":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"我":{"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.0078125}}}}}}}},"问":{"docs":{},"是":{"docs":{},"后":{"docs":{},"端":{"docs":{},"实":{"docs":{},"现":{"docs":{},"上":{"docs":{},"有":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"务":{"docs":{},"必":{"docs":{},"注":{"docs":{},"意":{"docs":{},"上":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}},"画":{"docs":{},"出":{"docs":{},"下":{"docs":{},"面":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}},"课":{"docs":{},"程":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"为":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}},"中":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"重":{"docs":{},"提":{"docs":{},"一":{"docs":{},"下":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"数":{"docs":{},"字":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}},"符":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"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":{},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"要":{"docs":{},"求":{"docs":{},"数":{"docs":{},"组":{"docs":{},"仍":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"但":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}}}}},"里":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"文":{"docs":{},"法":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}},"函":{"docs":{},"数":{"docs":{},"里":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"数":{"docs":{},"据":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"就":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"我":{"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.014492753623188406}}}}}}}}}}}}}}}}},"节":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"句":{"docs":{},"后":{"docs":{},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"其":{"docs":{},"定":{"docs":{},"义":{"docs":{},")":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"先":{"docs":{},"把":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"奇":{"docs":{},"怪":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"索":{"docs":{},"引":{"docs":{},"运":{"docs":{},"算":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"来":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},"些":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}},"里":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"为":{"docs":{},"准":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"也":{"docs":{},"是":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}}}}}},"面":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}},"额":{"docs":{},"外":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{},"传":{"docs":{},"参":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"一":{"docs":{},"种":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"重":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{},"”":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"一":{"docs":{},"步":{"docs":{},"步":{"docs":{},"实":{"docs":{},"现":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"到":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}},"名":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},",":{"docs":{},"其":{"docs":{},"次":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"以":{"docs":{},"一":{"docs":{},"个":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}},"替":{"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.03571428571428571}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"了":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"中":{"docs":{},"和":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"最":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}},":":{"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":{},"的":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}},"说":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"重":{"docs":{},"构":{"docs":{},"进":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"申":{"docs":{},"请":{"docs":{},"更":{"docs":{},"大":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}},",":{"docs":{},"将":{"docs":{},"作":{"docs":{},"业":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"那":{"docs":{},"个":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}},"设":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"又":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"且":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"语":{"docs":{},"句":{"docs":{},"通":{"docs":{},"过":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"了":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"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":{},"将":{"2":{"0":{"2":{"2":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"使":{"docs":{},"得":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"]":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"_":{"docs":{},"t":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01680672268907563},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"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.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}},"两":{"docs":{},"句":{"docs":{},"比":{"docs":{},"较":{"docs":{},"直":{"docs":{},"接":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"能":{"docs":{},"较":{"docs":{},"为":{"docs":{},"容":{"docs":{},"易":{"docs":{},"的":{"docs":{},"想":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"汇":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"检":{"docs":{},"查":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"已":{"docs":{},"经":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"是":{"docs":{},",":{"docs":{},"则":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"把":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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":{},"t":{"0":{"docs":{},"作":{"docs":{},"为":{"docs":{},"参":{"docs":{},"数":{"docs":{},"x":{"docs":{},"放":{"docs":{},"入":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"a":{"0":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"此":{"docs":{},"时":{"docs":{},"t":{"0":{"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":{},"t":{"2":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"要":{"docs":{},"先":{"docs":{},"将":{"docs":{},"t":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"1":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011204481792717087},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.014778325123152709},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.010526315789473684},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.023032629558541268},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"测":{"docs":{},"例":{"docs":{},"中":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"发":{"docs":{},"生":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},",":{"docs":{},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"2":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014005602240896359},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.010526315789473684},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527}},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"为":{"docs":{},"其":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"将":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"为":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"3":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}},"4":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}},"5":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}},"docs":{}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"_":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}},"l":{"1":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}},")":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"初":{"docs":{},"次":{"docs":{},"进":{"docs":{},"入":{"docs":{},"循":{"docs":{},"环":{"docs":{},"时":{"docs":{},",":{"docs":{},"从":{"docs":{},"这":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"2":{"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/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.005263157894736842}}}}}}},"3":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},")":{"docs":{},"处":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"docs":{},"k":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"[":{"docs":{},"i":{"docs":{},"]":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},":":{"docs":{},":":{"docs":{},"f":{"docs":{},"p":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}},",":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"1":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.034722222222222224},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.05161290322580645}}}}}}}},"2":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.034722222222222224},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.05161290322580645}}},"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},"d":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"\"":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"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}}}}},"l":{"docs":{},"f":{"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.01646090534979424},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}},"(":{"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}}}}},"i":{"docs":{},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}},"x":{"docs":{},"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":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497}}}}}}}}},"p":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"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.061224489795918366},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.029850746268656716},"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.015384615384615385},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.057971014492753624},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.033783783783783786},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.07407407407407407},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.03125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.05128205128205128},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0311284046692607},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0299625468164794},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.029850746268656716},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.0379746835443038},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.035856573705179286}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},",":{"docs":{},"变":{"docs":{},"成":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.07692307692307693},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.023346303501945526},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02247191011235955},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.022388059701492536},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.02531645569620253},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02390438247011952}}},")":{"docs":{},"。":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}}}}}}}}}}},"b":{"docs":{},"n":{"docs":{},"f":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.06153846153846154},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"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.0024630541871921183}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},")":{"docs":{},"。":{"docs":{},"假":{"docs":{},"设":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"t":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"t":{"1":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"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":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"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":{},"逻":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0064516129032258064}}},"docs":{}}}}}},"docs":{}}}}}}}},"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}}},"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},",":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"3":{"docs":{},",":{"docs":{},"t":{"1":{"docs":{},",":{"docs":{},"t":{"2":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"docs":{}}}},"3":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"docs":{}}}},"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"中":{"docs":{},"的":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{},"测":{"docs":{},"试":{"docs":{},"脚":{"docs":{},"本":{"docs":{},",":{"docs":{},"将":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"(":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"与":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"解":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"=":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}}}}}}}},"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}}}}}},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.028011204481792718},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.020460358056265986},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.031578947368421054},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}}}}}}}}}}}}}}},"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.0012787723785166241}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"/":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"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.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.011673151750972763},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.057692307692307696},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0199203187250996}},"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"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.0012787723785166241}}}}}}}}}}}}},"(":{"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":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},".":{"docs":{},"h":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}},"_":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"开":{"docs":{},"头":{"docs":{},"。":{"docs":{},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"解":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"(":{"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}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"docs/step3/example.html":{"ref":"docs/step3/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/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"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":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"合":{"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.0037313432835820895}}}}}}}}},"一":{"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.0028011204481792717}}}}}}},"出":{"docs":{},"意":{"docs":{},"外":{"docs":{},"你":{"docs":{},"会":{"docs":{},"获":{"docs":{},"得":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"知":{"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.006944444444444444}}}}}}}}}}}}},"为":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"等":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}}},"论":{"docs":{},"选":{"docs":{},"择":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"去":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"都":{"docs":{},"必":{"docs":{},"须":{"docs":{},"首":{"docs":{},"先":{"docs":{},"计":{"docs":{},"算":{"docs":{},"完":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"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.01282051282051282}}}}}}}}}},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}},"允":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}},"函":{"docs":{},"数":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"实":{"docs":{},"现":{"docs":{},"有":{"docs":{},"错":{"docs":{},"误":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"入":{"docs":{},"口":{"docs":{},"标":{"docs":{},"签":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"个":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"而":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"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.0028011204481792717}}}},"(":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"目":{"docs":{},"前":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"不":{"docs":{},"同":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"时":{"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":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"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":{},"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":{},"a":{"docs":{},"s":{"docs":{},"t":{"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":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.003968253968253968}}}}}}}}}}}}}}},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"可":{"docs":{},"以":{"docs":{},"递":{"docs":{},"归":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"栈":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"参":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"视":{"docs":{},"为":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"被":{"docs":{},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"被":{"docs":{},"以":{"docs":{},"实":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},")":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"形":{"docs":{},"参":{"docs":{},"均":{"docs":{},"为":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"且":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"上":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"其":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"和":{"docs":{},"功":{"docs":{},"能":{"docs":{},"同":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}}}}},")":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},",":{"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":{},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"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}}}}}}}}}},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"压":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"直":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"抽":{"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":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"所":{"docs":{},"有":{"docs":{},"出":{"docs":{},"现":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}},"作":{"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.0024630541871921183}}}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}},"分":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"至":{"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.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},"对":{"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.003968253968253968}}}}}}}}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"参":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"以":{"docs":{},"及":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"传":{"docs":{},"递":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{}},"docs":{}}}},"原":{"docs":{},"型":{"docs":{},",":{"docs":{},"三":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"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.009900990099009901}}}}}}}}}}}}}}}}}}},"分":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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/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/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/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.0028011204481792717}}}}}}}}}}}}}}}},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"了":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":10.0078125}}}}},"发":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"确":{"docs":{},"安":{"docs":{},"装":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}},"未":{"docs":{},"必":{"docs":{},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},"行":{"docs":{},"基":{"docs":{},"础":{"docs":{},"操":{"docs":{},"作":{"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.010309278350515464}}}},"安":{"docs":{},"装":{"docs":{},"下":{"docs":{},"文":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}},"工":{"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.0078125}}}}}}}}}}}}},"非":{"docs":{},"严":{"docs":{},"格":{"docs":{},"按":{"docs":{},"照":{"docs":{},"课":{"docs":{},"本":{"docs":{},"上":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"严":{"docs":{},"格":{"docs":{},"要":{"docs":{},"求":{"docs":{},"只":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"三":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"绝":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"指":{"docs":{},"令":{"docs":{},"均":{"docs":{},"可":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"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.0012787723785166241}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"被":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"法":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"发":{"docs":{},"现":{"docs":{},"是":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"。":{"docs":{},"请":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}},",":{"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/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"高":{"docs":{},"于":{"docs":{},"此":{"docs":{},"版":{"docs":{},"本":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"以":{"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.0078125}}}}}}}}}}}}}}}}}}},"可":{"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":{}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"器":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"。":{"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.0012787723785166241}}}}}}}}}}}}}}}}}},"过":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}},"经":{"docs":{},"过":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"结":{"docs":{},"果":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"构":{"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":{},"基":{"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.0024630541871921183}}}}}}}}}}}}}}}},"不":{"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.005263157894736842}}}}}}}}}}}}}}}},"若":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}},"合":{"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.0078125}}}}}}}}}}}}}}}}}},"行":{"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.0078125}}}}}}}}}}}}}}}}}},"#":{"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.04526748971193416},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01680672268907563},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.020460358056265986},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0784313725490196},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.03838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"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.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"$":{"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.010309278350515464},"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":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.00639386189258312}},"&":{"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.0012787723785166241},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"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}}}},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297}},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"o":{"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.023255813953488372}}}}}},")":{"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}}}}},"o":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}},".":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"s":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"加":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}},"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.0025575447570332483},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}},"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"/":{"docs":{},"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.0012787723785166241}}}}}}}}}}}},"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.0012787723785166241}}}}}}}}}}}}}}}}},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},";":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"而":{"docs":{},"词":{"docs":{},"法":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"e":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"/":{"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.0024630541871921183}}}}}}}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}},"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.0028011204481792717}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}},"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.0028011204481792717}}}}}}}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"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.006329113924050633}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},".":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497},"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/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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.007782101167315175},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"(":{"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/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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}}},"(":{"1":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},")":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179}},"{":{"docs":{},"i":{"docs":{},"f":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985}}}}}},"n":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"o":{"3":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364}}},"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"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.010309278350515464}}}}}}}}}}}}}}}}},"s":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"k":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"[":{"docs":{},"u":{"docs":{},"]":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}},"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}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}}}}}}},"x":{"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.006944444444444444}},"_":{"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.0056022408963585435}}}},"docs":{}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.034482758620689655},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.11507936507936507},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.030508474576271188},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.0755813953488372}},"(":{"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.003968253968253968}}}}}}}}}}}},"但":{"docs":{},"随":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"开":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"找":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"而":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"随":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}},"这":{"docs":{},"个":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}},"同":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}},"+":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"只":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"正":{"docs":{},"确":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"关":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"就":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},"了":{"docs":{},":":{"docs":{},"找":{"docs":{},"到":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{},"若":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"即":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"docs":{}},"docs":{}}},"z":{"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.0064516129032258064}}}}}}},"~":{"0":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"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}}}}}}}}},"a":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"!":{"docs":{},"这":{"docs":{},"三":{"docs":{},"个":{"docs":{},"单":{"docs":{},"目":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"和":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"一":{"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":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"求":{"docs":{},"解":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"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":{},"t":{"2":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"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/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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}},"元":{"docs":{},"负":{"docs":{},"号":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"运":{"docs":{},"算":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}},"个":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"例":{"docs":{},"子":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"函":{"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.004219409282700422}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"之":{"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":{},"们":{"docs":{},"想":{"docs":{},"要":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"种":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}},"每":{"docs":{},"一":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"都":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},",":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"能":{"docs":{},"体":{"docs":{},"现":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"确":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"外":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}}}},"甚":{"docs":{},"至":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}},"也":{"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.0012787723785166241}},"说":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"总":{"docs":{},"是":{"docs":{},"从":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"到":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"结":{"docs":{},"束":{"docs":{},"的":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"这":{"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":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"尽":{"docs":{},"管":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},"级":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},",":{"docs":{},"数":{"docs":{},"据":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"节":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"对":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"规":{"docs":{},"范":{"docs":{},"进":{"docs":{},"行":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"名":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"中":{"docs":{},"将":{"docs":{},"t":{"0":{"docs":{},"取":{"docs":{},"出":{"docs":{},"放":{"docs":{},"入":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"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.0012787723785166241},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"的":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}},"汇":{"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.0012787723785166241}}}}}}}}}}}}}}},"有":{"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.0024630541871921183}}}}}}}}}}}}}},"使":{"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/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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"和":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"创":{"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":{},"出":{"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.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":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"所":{"docs":{},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"主":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"索":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"是":{"docs":{},"否":{"docs":{},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"符":{"docs":{},"合":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"所":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"都":{"docs":{},"经":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"等":{"docs":{},"。":{"docs":{},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"其":{"docs":{},"语":{"docs":{},"义":{"docs":{},"未":{"docs":{},"必":{"docs":{},"正":{"docs":{},"确":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"未":{"docs":{},"必":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"具":{"docs":{},"体":{"docs":{},"含":{"docs":{},"义":{"docs":{},"在":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"使":{"docs":{},"得":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"无":{"docs":{},"法":{"docs":{},"确":{"docs":{},"定":{"docs":{},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"确":{"docs":{},"切":{"docs":{},"含":{"docs":{},"义":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"是":{"docs":{},"很":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"成":{"docs":{},"功":{"docs":{},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"则":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"对":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"适":{"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.0028011204481792717}}}}}}}}}}}}}},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"(":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}},"执":{"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":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"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/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":{},"个":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}},"因":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"需":{"docs":{},"要":{"docs":{},"想":{"docs":{},"办":{"docs":{},"法":{"docs":{},"把":{"docs":{},"这":{"docs":{},"些":{"docs":{},"无":{"docs":{},"限":{"docs":{},"多":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"“":{"docs":{},"塞":{"docs":{},"”":{"docs":{},"到":{"docs":{},"有":{"docs":{},"限":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"使":{"docs":{},"用":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"把":{"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.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}},"变":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"并":{"docs":{},"且":{"docs":{},"原":{"docs":{},"来":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"含":{"docs":{},"有":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}},"应":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"建":{"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/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/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.0012787723785166241}}}}},"始":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"。":{"docs":{},"简":{"docs":{},"而":{"docs":{},"言":{"docs":{},"之":{"docs":{},",":{"docs":{},"一":{"docs":{},"份":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"作":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"函":{"docs":{},"数":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}},"计":{"docs":{},"数":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},"往":{"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":{},"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":{"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.010309278350515464},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268}},"自":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"者":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},"打":{"docs":{},"开":{"docs":{},"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.007782101167315175}}}},"汇":{"docs":{},"编":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}},"把":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"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.014925373134328358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"转":{"docs":{},"化":{"docs":{},"成":{"docs":{},"类":{"docs":{},"似":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"样":{"docs":{},"“":{"docs":{},"更":{"docs":{},"模":{"docs":{},"糊":{"docs":{},"”":{"docs":{},",":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"的":{"docs":{},"语":{"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/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.005681818181818182}}}}}}},"这":{"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.005813953488372093}}}}}}}}}}}},"位":{"docs":{},"取":{"docs":{},"反":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}},"文":{"docs":{},"件":{"docs":{},",":{"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":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"docs":{}}}}}}},"中":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"修":{"docs":{},"改":{"docs":{},"相":{"docs":{},"应":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"方":{"docs":{},"式":{"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.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"都":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"其":{"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.003968253968253968}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"选":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"快":{"docs":{},"速":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}},"机":{"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":{},"器":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"式":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"有":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"的":{"docs":{},"根":{"docs":{},"结":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"整":{"docs":{},"颗":{"docs":{},"树":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"针":{"docs":{},"对":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},"作":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"再":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"一":{"docs":{},"次":{"docs":{},"语":{"docs":{},"法":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"并":{"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/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/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":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"该":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"。":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"取":{"docs":{},"负":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"条":{"docs":{},"指":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"不":{"docs":{},"安":{"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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},":":{"docs":{},"安":{"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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}},"引":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"后":{"docs":{},",":{"docs":{},"左":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"一":{"docs":{},"定":{"docs":{},"是":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}},",":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"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.0012787723785166241}}}},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"上":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"有":{"docs":{},"效":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"理":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"词":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"识":{"docs":{},"别":{"docs":{},"出":{"docs":{},"程":{"docs":{},"序":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"保":{"docs":{},"留":{"docs":{},"字":{"docs":{},"、":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"算":{"docs":{},"符":{"docs":{},"、":{"docs":{},"分":{"docs":{},"界":{"docs":{},"符":{"docs":{},"等":{"docs":{},"单":{"docs":{},"词":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"即":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"把":{"docs":{},"识":{"docs":{},"别":{"docs":{},"结":{"docs":{},"果":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"以":{"docs":{},"供":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"在":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"针":{"docs":{},"对":{"docs":{},"所":{"docs":{},"输":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"然":{"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.0037313432835820895}}},"让":{"docs":{},"它":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}},"环":{"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.010309278350515464}}}}},"(":{"docs":{},"如":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}},"用":{"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":{},"局":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},":":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}},"等":{"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.010309278350515464}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"出":{"docs":{},"现":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"!":{"docs":{},"x":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}},"均":{"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":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"跳":{"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.0038910505836575876},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"将":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}},"而":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"是":{"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":{},"首":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"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/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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"虚":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"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.0012787723785166241}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"值":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"分":{"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.02040816326530612}}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"预":{"docs":{},"留":{"docs":{},"一":{"docs":{},"块":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"4":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}},"docs":{}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}},",":{"docs":{},"只":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}},"计":{"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.0024630541871921183}}}}}}}}}}}}}},"跑":{"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.0028011204481792717}}}},"入":{"docs":{},",":{"docs":{},"输":{"docs":{},"出":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}},"运":{"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}}}}}},"测":{"docs":{},"试":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"算":{"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.0028011204481792717}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"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.0012787723785166241}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"把":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"锅":{"docs":{},"甩":{"docs":{},"给":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"这":{"docs":{},"大":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"包":{"docs":{},"含":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"调":{"docs":{},"度":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"是":{"docs":{},"指":{"docs":{},"选":{"docs":{},"用":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"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":{},"烈":{"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":{},"件":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"参":{"docs":{},"考":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"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.003745318352059925}}}},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"保":{"docs":{},"存":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"恢":{"docs":{},"复":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}},"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.0028011204481792717}}}}},"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.0028011204481792717}}}}}}}}}}}},"(":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},")":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},";":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"=":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"_":{"docs":{},"t":{"docs":{},"k":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"\"":{"docs":{},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497}}}},"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.0049261083743842365}}}}},"@":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"后":{"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"一":{"docs":{},"份":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"及":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"常":{"docs":{},"识":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}},"括":{"docs":{},"号":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},"这":{"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/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.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":{},"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":{},"在":{"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":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"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":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"在":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},"t":{"0":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"掉":{"docs":{},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"t":{"2":{"docs":{},"被":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"到":{"docs":{},"了":{"docs":{},"t":{"0":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"t":{"0":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"c":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}},"为":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}},"另":{"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/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":{},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"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/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/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.010309278350515464}}}},"然":{"docs":{},"遵":{"docs":{},"循":{"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/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}},"的":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"作":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"但":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"号":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"必":{"docs":{},"须":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"左":{"docs":{},"值":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"同":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"对":{"docs":{},"应":{"docs":{},"框":{"docs":{},"架":{"docs":{},"源":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}}}}}}}}},"处":{"docs":{},"助":{"docs":{},"教":{"docs":{},"使":{"docs":{},"用":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"的":{"docs":{},"o":{"docs":{},"p":{"0":{"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.0019193857965451055}}}}}}}}}}}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"公":{"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.0028011204481792717}}}}}}}}}}}}}},"当":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},",":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"示":{"docs":{},"例":{"docs":{},",":{"docs":{},"讲":{"docs":{},"述":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"方":{"docs":{},"式":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"步":{"docs":{},"骤":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"受":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"推":{"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/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":{},"可":{"docs":{},"执":{"docs":{},"行":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"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":{},"整":{"docs":{},"除":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"t":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}},"y":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}},"(":{"docs":{},"简":{"docs":{},"称":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"。":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"docs":{}},"docs":{}}},"|":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.04481792717086835},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.028132992327365727},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.05970149253731343},"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.06153846153846154},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.056338028169014086},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.07246376811594203},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.07317073170731707},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04081632653061224},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.08783783783783784},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.07407407407407407},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.078125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.11538461538461539},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.08171206225680934},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.043478260869565216},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.08614232209737828},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.08955223880597014},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.10548523206751055},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.10358565737051793}},"|":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.03076923076923077},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"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.008403361344537815}}}},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},";":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"对":{"docs":{},"应":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"成":{"docs":{},"员":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"的":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"作":{"docs":{},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"用":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"域":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}},"栈":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872}}},"里":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"为":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}},"参":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"添":{"docs":{},"加":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"降":{"docs":{},"低":{"docs":{},"实":{"docs":{},"验":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"部":{"docs":{},"分":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"据":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"完":{"docs":{},"成":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"加":{"docs":{},"法":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}},"载":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"2":{"0":{"2":{"2":{"docs":{},"到":{"docs":{},"t":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"模":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"在":{"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.003968253968253968}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"不":{"docs":{},"像":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"一":{"docs":{},"样":{"docs":{},"保":{"docs":{},"留":{"docs":{},"了":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"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.0028011204481792717}}}}}}}}}}}}}}}}}},"将":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"会":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"(":{"docs":{},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"求":{"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.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"备":{"docs":{},"问":{"docs":{},"题":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"分":{"docs":{},"配":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}},"请":{"docs":{},"写":{"docs":{},"出":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"如":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}},"是":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"(":{"docs":{},"又":{"docs":{},"名":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"认":{"docs":{},"为":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"需":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"非":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"指":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"可":{"docs":{},"以":{"docs":{},"期":{"docs":{},"望":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"仍":{"docs":{},"保":{"docs":{},"持":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"这":{"docs":{},"要":{"docs":{},"求":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"将":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"放":{"docs":{},"到":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"docs":{}}}}}}},"两":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"相":{"docs":{},"加":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}},"t":{"2":{"docs":{},"放":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"(":{"docs":{},"即":{"docs":{},":":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}},"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.005813953488372093}}}}}}}}}}}}}}}},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"知":{"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.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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"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.0028011204481792717}}}}}}}}}}}}}},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"图":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728}},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"标":{"docs":{},"签":{"docs":{},"(":{"docs":{},"可":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{},"地":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"在":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"经":{"docs":{},"历":{"docs":{},"中":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},"已":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"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.005263157894736842}}},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}},"是":{"docs":{},"整":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"(":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"准":{"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.014925373134328358}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"中":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"来":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"库":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"正":{"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.0024630541871921183}}}}}}}}}}}}},"记":{"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.0028011204481792717}},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"步":{"docs":{},"骤":{"docs":{},"是":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"再":{"docs":{},"一":{"docs":{},"次":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.005681818181818182}}}}}}}}}}}}}}}}}}},"与":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}},"录":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"请":{"docs":{},"注":{"docs":{},"意":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872}},"构":{"docs":{},"建":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},":":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"是":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"检":{"docs":{},"查":{"docs":{},"出":{"docs":{},"符":{"docs":{},"号":{"docs":{},"定":{"docs":{},"义":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"总":{"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.0024630541871921183}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"正":{"docs":{},"如":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"指":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"2":{"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.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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"型":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"检":{"docs":{},"查":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},":":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}},"基":{"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.003745318352059925}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"中":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}},"调":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"处":{"docs":{},"理":{"docs":{},"它":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},",":{"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.005263157894736842}}}}}}}},"表":{"docs":{},"示":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},".":{"docs":{},"h":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"缩":{"docs":{},"小":{"docs":{},"调":{"docs":{},"试":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"把":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"适":{"docs":{},"合":{"docs":{},"后":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"结":{"docs":{},"果":{"docs":{},"是":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"跟":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}},"详":{"docs":{},"细":{"docs":{},"讨":{"docs":{},"论":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"介":{"docs":{},"绍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"理":{"docs":{},"论":{"docs":{},"。":{"docs":{},"大":{"docs":{},"家":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"求":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"会":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"某":{"docs":{},"点":{"docs":{},"之":{"docs":{},"后":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"化":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"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.0028011204481792717}}}}}}}}}}}}}}}}},"语":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"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/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"不":{"docs":{},"只":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"种":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}},"已":{"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.03571428571428571}}}}}}}}},"成":{"docs":{},"为":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"着":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}}}}}}},"的":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"选":{"docs":{},"择":{"docs":{},"了":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}},"控":{"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.0038910505836575876}}}},"后":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"还":{"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.01282051282051282}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}},"有":{"docs":{},"其":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"且":{"docs":{},"是":{"docs":{},"它":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"子":{"docs":{},"集":{"docs":{},"。":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"也":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"d":{"docs":{},"o":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}},"作":{"docs":{},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"两":{"docs":{},"种":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}},"我":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}},"要":{"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.005263157894736842}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"作":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"反":{"docs":{},"复":{"docs":{},"执":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"括":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}},"!":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"x":{"docs":{},";":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"=":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"(":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},",":{"docs":{},"结":{"docs":{},"果":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"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":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"'":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"'":{"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.014925373134328358},"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.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.0641025641025641},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.027237354085603113},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0299625468164794},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.029850746268656716},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03375527426160337},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.03187250996015936}}}},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"'":{"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.014925373134328358},"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.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.0641025641025641},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.027237354085603113},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0299625468164794},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.029850746268656716},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03375527426160337},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.03187250996015936}}}},";":{"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.043478260869565216},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.037037037037037035},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.10256410256410256},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.03501945525291829},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.033707865168539325},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.033582089552238806},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.0379746835443038},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0398406374501992}},")":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}},"{":{"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}},"}":{"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"~":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"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.014925373134328358},"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.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"|":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"&":{"docs":{},"&":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"=":{"docs":{},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},":":{"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"?":{"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}},"d":{"docs":{},"o":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.02564102564102564},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.02564102564102564},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"]":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"docs":{},"*":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"+":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"?":{"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.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.005115089514066497},"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.061224489795918366},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.075},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.07462686567164178},"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.07692307692307693},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.09154929577464789},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.08695652173913043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.09146341463414634},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.08163265306122448},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.12162162162162163},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05555555555555555},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.07003891050583658},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.08695652173913043},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.07865168539325842},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.07835820895522388},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.08860759493670886},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.057692307692307696},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.08366533864541832},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},":":{"docs":{},"=":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"[":{"0":{"docs":{},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"`":{"docs":{},"p":{"docs":{},"_":{"docs":{},"`":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"要":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"大":{"docs":{},"家":{"docs":{},"来":{"docs":{},"说":{"docs":{},"有":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"即":{"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.0012787723785166241}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{},"左":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"便":{"docs":{},"是":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}},"又":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"范":{"docs":{},"围":{"docs":{},"内":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}},"声":{"docs":{},"明":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"全":{"docs":{},"局":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}},"处":{"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.0012787723785166241}}}}}}}}}}}}}}}},",":{"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.0012787723785166241}}},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"(":{"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.0024630541871921183}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"内":{"docs":{},"存":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"是":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"定":{"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.0012787723785166241}}}}}}}}}}}}}},",":{"docs":{},"以":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"可":{"docs":{},"以":{"docs":{},"解":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"库":{"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.0012787723785166241}}}}}}}}}}}}}},"底":{"docs":{},"层":{"docs":{},"类":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"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.0012787723785166241}}}}}}}}}}},"程":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}},"且":{"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.02040816326530612}}}}}}}}}}}}}}}}},"一":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}},"也":{"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.003745318352059925}}}}}}}}}}}}}}}}},"遇":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"入":{"docs":{},"门":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"怎":{"docs":{},"么":{"docs":{},"从":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"方":{"docs":{},"法":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"内":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"便":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"差":{"docs":{},"异":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},"短":{"docs":{},"路":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"语":{"docs":{},"言":{"docs":{},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"这":{"docs":{},"四":{"docs":{},"个":{"docs":{},"集":{"docs":{},"合":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"以":{"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.005263157894736842}}}}}}}}}}}}}},"三":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},":":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}},"能":{"docs":{},"力":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"将":{"docs":{},"原":{"docs":{},"先":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}},"根":{"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.0012787723785166241}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"程":{"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":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"流":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"我":{"docs":{},"们":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"。":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0038363171355498722}}}}}},"让":{"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":{},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"看":{"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.0012787723785166241}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"将":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}},"到":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}}}}}}}}}}}}},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"吧":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}},"(":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}},"细":{"docs":{},"节":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}},"继":{"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.0012787723785166241}}}}}}}}}}}}}}}}},"综":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"。":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"定":{"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.0012787723785166241}}}}}}}}}}}}}}}},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"新":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"添":{"docs":{},"加":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"部":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"只":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"读":{"docs":{},"内":{"docs":{},"容":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"调":{"docs":{},"用":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}}}}}}},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"约":{"docs":{},"定":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"上":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"返":{"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025575447570332483}},"值":{"docs":{},"是":{"docs":{},"否":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"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.0012787723785166241}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}}}}},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}},"都":{"docs":{},"是":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}}},"逻":{"docs":{},"辑":{"docs":{},"真":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/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/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"省":{"docs":{},"略":{"docs":{},"。":{"docs":{},"省":{"docs":{},"略":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012787723785166241}}},"成":{"docs":{},"员":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"方":{"docs":{},"法":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"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/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"数":{"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":{},"列":{"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/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.003968253968253968}}}}}}}}}}},"先":{"docs":{},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}},"遍":{"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":{},"封":{"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.0024630541871921183}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}},"小":{"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/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028}},"等":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}},"就":{"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.003968253968253968}}}}},"很":{"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/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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}},"规":{"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.007782101167315},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":10.00749063670412},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":10.007462686567164},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":10.0084388185654},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":10.00796812749004}}}},"记":{"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/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/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}},"乘":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}},"任":{"docs":{},"务":{"docs":{},"概":{"docs":{},"述":{"docs":{"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":{},"进":{"docs":{},"你":{"docs":{},"的":{"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.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}},"稍":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"一":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"加":{"docs":{},"法":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"写":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"时":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"都":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"含":{"docs":{},"义":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}}}}},"句":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"总":{"docs":{},"结":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"被":{"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/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}},"逻":{"docs":{},"辑":{"docs":{},"取":{"docs":{},"反":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"与":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"或":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"会":{"docs":{},"麻":{"docs":{},"烦":{"docs":{},"一":{"docs":{},"点":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"例":{"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.0038910505836575876}},":":{"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.003745318352059925}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}}}}}}}},"引":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}}}}},"%":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}},"“":{"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.006944444444444444}}}}}}}}},"控":{"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.003745318352059925}}}}}}},"乘":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855}}}}}}},"减":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.041666666666666664},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.05161290322580645}},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"意":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"味":{"docs":{},"着":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"没":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}}}},"除":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/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":{},"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"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":{},"小":{"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.015384615384615385}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"。":{"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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"判":{"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.014492753623188406},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"运":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"建":{"docs":{},"立":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"在":{"docs":{},"退":{"docs":{},"出":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"对":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"非":{"docs":{},"常":{"docs":{},"重":{"docs":{},"要":{"docs":{},"。":{"docs":{},"那":{"docs":{},"么":{"docs":{},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"如":{"docs":{},"何":{"docs":{},"建":{"docs":{},"立":{"docs":{},"和":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"呢":{"docs":{},"?":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"代":{"docs":{},"码":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"与":{"docs":{},"销":{"docs":{},"毁":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"概":{"docs":{},"念":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"区":{"docs":{},"域":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"于":{"docs":{},"存":{"docs":{},"储":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"介":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"配":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"了":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"的":{"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.007936507936507936}},"(":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872}}}}}}}}}}},"无":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"法":{"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.0024630541871921183}}}}}}}}}}}}}}}}},"条":{"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":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"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/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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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/step6/intro.html":{"ref":"docs/step6/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/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}},"则":{"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.003968253968253968}}}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"里":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}},"空":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"集":{"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/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}},"会":{"docs":{},"先":{"docs":{},"对":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"再":{"docs":{},"根":{"docs":{},"据":{"docs":{},"其":{"docs":{},"值":{"docs":{},"选":{"docs":{},"择":{"docs":{},"计":{"docs":{},"算":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"或":{"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/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/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/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/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/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"到":{"docs":{},"这":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}}}},"默":{"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.005263157894736842}}}}}},"两":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"将":{"docs":{},"o":{"docs":{},"p":{"0":{"docs":{},"加":{"docs":{},"入":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"保":{"docs":{},"证":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"时":{"docs":{},"候":{"docs":{},"不":{"docs":{},"会":{"docs":{},"将":{"docs":{},"o":{"docs":{},"p":{"0":{"docs":{},"覆":{"docs":{},"盖":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"准":{"docs":{},"备":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"拿":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"放":{"docs":{},"入":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"1":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"docs":{}}}},"构":{"docs":{},"建":{"docs":{},"符":{"docs":{},"号":{"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.0019193857965451055}}}}}}}}}}}}}}}},"的":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"称":{"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.0019193857965451055}}}}}}}}}}}}},"段":{"docs":{},"或":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}},"里":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}},"中":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"其":{"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.005813953488372093}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"已":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}},"访":{"docs":{},"问":{"docs":{},"它":{"docs":{},"也":{"docs":{},"不":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}}}},"伪":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"哪":{"docs":{},"些":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"甚":{"docs":{},"至":{"docs":{},"可":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}},"连":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"都":{"docs":{},"写":{"docs":{},"不":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}}}}}}}},"难":{"docs":{},"度":{"docs":{},"不":{"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.022222222222222223}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"索":{"docs":{},"引":{"docs":{},"基":{"docs":{},"底":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"运":{"docs":{},"算":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}},"采":{"docs":{},"用":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"多":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},"按":{"docs":{},"照":{"docs":{},"类":{"docs":{},"似":{"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.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"手":{"docs":{},"册":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"length":5259},"corpusTokens":["!","!,","!=","!=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","!x;","!。","\"","\"\"\"","\"(\"","\")\"","\";\"","\"=\"","\"_tk\"","\"a\"","\"declaration\"]]):","\"gcc:","\"if\"","\"input.c\"","\"rv32i2p0_m2p0\"","\"unprivileg","#","#includ","$","$?","$。例如,让你运行","$,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。","%","&","&&","&&、逻辑或","'&&'","'''","'('","')","')'","':'","';'","';')","'='","'?'","'['","']'","']')*","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'do'","'for'","'if'","'int'","'int')","'main'","'return'","'while'","'{'","'|'!'|'~')","'|'~'|'!')","'||'","'}'","'}')?","(","(!v","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","((null","(0","(0)","(1","(1)","(2","(a","(a/b)*b","(a=1)+(a=a+1);","(add","(body)","(children[0])","(compound_stat","(condition)","(expr)","(express","(extend","(function","(i","(i)","(i=0;","(ident)","(int","(integ","(k","(lh)","(op)","(ret_t)","(rh)","(sifiv","(sub","(sysv),","(tac)","(type","(x)",")",")。","*","*base","*dst,","*live)","*t,","*、整除","+","+、减",",",".","...","......","...;","./a.out","./a.out:","./check.sh","./configur","./reports/.pdf,比如","./reports/stag","./requirements.txt",".align",".attribut",".bss",".data",".file",".gitlab",".global",".globl",".ident",".option",".section",".size",".space",".text",".text.startup,\"ax\",@progbit",".type",".word","/","//","/usr/","/usr/local/bin/pk","/usr/local/bin/pk,要么每次都用完整路径。","/、模","0","0(sp)","0(t0)","0))","0,","0;","0;}。","0;定义的,g(a)中的a是上一行的let","0。","0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为","0。例如:","0)。","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","0,则其行为都是未定义的。当","0,我们会对第三个操作数求值。当第一个操作数的值为","0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于","0,语义规范说","0,跳转到","0;当操作数等于","1","1)","1+2*(4/2+1)","1+3","1+3==4","1.","1.1","1.2","1.3","1.pdf。","10%","10%。","10%)。","10%,对思考题的回答占","10.1","10.1.0","10.2","10.3","10,我们将这类一元运算操作都称为","11","11.1","11.2","11.3","11.4","119","12","12.1","12.2","16","1;","1;这样的语句,但是不会见到return","1;,这样一条声明在语义上等价于","1=2","1]","1],补码表示。","1。","1。在生成过程中,首先使用","1(待我们加上四则运算后)。","1)。","1,!!2","1,也就是说","1,当不满足时结果为","1,避免溢出。感谢孟本源同学!","1,那么判断是否有","1;否则其结果为","2","2)","2);","2+3)。","2,","2.","2.1","2.2","2.3","2.4","2.5","20%","20.04","2020.04.0)","2020.08.2","2021.10.5","2022","2022;","2022和_t1","2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","2022,就是将立即数","2023","2023;","2123),对初始化表达式是非字面量的情况不做任何要求(例如","2147483647","2147483648,但可以写成","22/minidecaf","233","233;}","24:00","2;","2;,则对应的","2;,否则执行","2^31","2^31,","2”。","2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。","2,否则判断是否有","2;","3","3)","3))","3))(前序表示),不能解析成mul","3);","3),不能解析成sub","3,","3.1","3.2","3.3","3.4","3.5","3.5,即其操作数的求值顺序是未指定行为。","3.9","32","3;","3;。因此,我们设置了两个跳转标签","3应该解析成sub","3应该解析成语法树add","4","4(sp)","4.1","4.2","4.3","4.4","4.5","40","4;","4};","4,即可得到","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","52(sp)","56","5;","6","6.1","6.2","6.3","6.4","64","7.1","7.2","7.3","7。","8","8.1","8.2","8.3","8.3.0","8.3.0\"","8.4","8.5","8.6","8.7","8.8","8.9","80%","9","9.1","9.2","9.3","9.4","9.5","9.6",":","::=",";",";。","=","==","==,","==(等于)和",">",">,",">add(t",">contains(v))",">dirti",">getslottowrite(v,",">is_offset_fixed)",">liveout",">liveout);",">op0.var);",">var;","?","@function","[","[0,","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","]","__init__(self,","_frame","_l1","_l1:","_l1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到","_l2","_l2:","_l2)是执行","_l2,分别表示","_l3","_l3)处。","_lk","_reg[i]","_reg[riscvreg::fp];","_t0","_t0,","_t0。如果","_t0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return","_t0这一行,我们要将虚拟寄存器t0作为参数x放入物理寄存器a0,假设此时t0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器t2,那么要先将t2","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t1","_t1,","_t1}","_t1。","_t1。例如,测例中直接用返回","_t1翻译过程发生了什么。","_t1,此时","_t2","_t2,","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","_t3","_t3,","_t3}","_t4","_t5","_,如果链接时出现问题请检查是不是下划线导致的。","`p_`","a%b","a.out","a.out:","a.out。但","a.out,具体操作如下","a.out,获取返回码","a0","a0,","a0,233","a0,a0","a1","a1,","a7","a:","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:根据每个函数的","add","addexpr","addi","addit","address","alloc","allocforloc:每一条指令进行寄存器分配。","allocregfor","allocregfor:根据活跃变量信息决定为当前","altern","analysis),或者称为“活跃变量分析”。","analyz","analyzer.accept(cfg)","andexpr","antlr","appl","approach","apt","arch,","argpars","argparse:","argument_list","arm...)和源语言(minidecaf,","arm)中和","arr[0]","arr[1]","arr[2];","arr[3];","arr[3]={1,2,0};","arr[3]={1,2};","arr[4]","arraytyp","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","asm.transform","assign","assign_stmt","ast","ast),接下来通过扫描","ast省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。","ast)。比如,对于下面这一段简单的minidecaf","ast,对每个语句和表达式逐一进行类型检查,并在","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","a。","a:","a:python","a:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!","a:在","a:如果你安装了多版本的","a:请修改","a:非常抱歉,框架中输出时有一个小错误。在","b","b);","backend","backend/asm.pi","backend/asmemitter.pi","backend/dataflow/","backend/dataflow/cfg.pi","backend/reg/","backend/reg/bruteregalloc.pi","backend/riscv","backend/riscv/","backend/subroutineemitter.pi","barku","base,索引下标","bash","basic","basicblock(基本块)内的指令进行寄存器分配。","bbl","befor","begin","beginloop_label:开始下一轮迭代","beginloop_label:本轮迭代完成","beginloop_label:本轮迭代完成,条件满足时进行下一次迭代","behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。","behavior),即对程序的行为无任何限制。","beq","beqz","binari","bind:将一个","bison","bison)掩盖了很多语法分析的实现细节。","bit","bitnotexpr","block","block,","block_item","block_item*","block)和控制流图(control","bnez","bodi","book","br","branch","branch、beqz(条件为假时跳转)、bnez(条件为真时跳转)或者","branch、condbranch","branch,当切换到一个新的","break","break/continu","break;","break_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","brew","bruteregalloc","bruteregalloc.pi","bss","builder","builder.buildfrom(pair[0])","b,则图中包含从","c","c++","c++框架中:","c,","c/c++","c17","c=0;","c=0;}","calcul","calculate()","calculate();","call","calle","caller","caller/calle","caller,语句中的表达式的值会返还给","cat","cd","cfg","cfg:","cfgbuilder()","cfg,可以参见","child","child.accept(self,","children","child,直接调用","ci","ci.yml","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","ci,这不会对你的提交/补交产生影响。","class","clone","cnt)","cnt);","cnt,","code,","comma","commit","compil","compilation)。","compiler:","compiler:","compound_stat","compstmt","cond","condbranch","condit","cond,更新语句","cond,真分支","conflict","construct","continu","continue/break","continue_label:continu","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。","cp","ctrl","ctrl,i=i+1","ctx)","ctx:","d","d,","d;","d=0;","d=0;}","d=0;,到底是","d=0;?","darwin.tar.gz,不过还需要通过","darwin.tar.gz,只用里面的","data","decaf","decaf,我们在新的且更简单的语言规范下复用了","declar","declaration)*","def","devic","df","dfg(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。","dfs(func)","dfs(node:","divexpr","docstr","dtc","dtc):","e","e1,右操作数","e2","e;","ebnf","echo","elf","elf(execut","elif","else:","else;","else(dangl","else)","else),要求","emitend","encount","end","epilogu","epilogue。epilogu","epilogue,将","equal","equexpr","error\"","error:","example.c","exec","execut","executable,","expr","express","expression)*)?","expression):","expression)?","expression?","expression_list","expression)。","expression,变成","e)。假设我们的处理器只有","f()","f(){if(0)","f(a);","f(a);。","f(int","file","file:","fill_n","fill_n(arr,","fill_n(int","finish","flow","fn","foo(int","foo.c","foo.s(记得加","foo:","form)","format","format)。","found","fp","fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。","fp,此时","frontend.parser.parser(位于","frontend/ast/node.pi","frontend/ast/tree.pi","frontend/ast/visitor.pi","frontend/ast。","frontend/lex/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/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;作用域相关数据结构位于","frontend/utils/tac","fun(int","func","func(1,","func(arr);","func(int","func:","func_exit","func_exit:","function","function(node):","function):","function*","function,","function.","function:","funcvisitor","funcvisitor.pi","g(a);","gcc","gcc,用来生成","gcc,这种","generator(如","geqexpr","ghuloum","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github","github),托管至私有仓库的请不要给其他同学任何访问权限。","git。","grammar","graph)是用于进行上述分析的数据结构。","grtexpr","gustedt","hello","hints,如果你习惯在","homebrew","http://scheme2006.cs.uchicago.edu/11","https://blog.csdn.net/daybreak222/article/details/87968078","https://git.tsinghua.edu.cn/compil","https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git","i,","i2d3...*dn","i;","i=0;;i=i+1)","i=0;i","i=0;i。","i=1;","ident","identifi","identifier(\"i\")","identifier(\"main\")","identifier(main)","identifier)*)?","identifier,","identifier),可以用字符串字面量表示终结符(如","ident,参数列表","if(a)","if(b)","if(i","if;这样的语句,因为","if_stmt","if。","if;","in]。在将数组索引翻译成","increment","index","indexexpr","init","init、ctrl","init、ctrl、post","init,i","init,循环条件","input","input.","input.c","input.s,最高优化等级(否则输出的汇编会很冗长)","instal","instr.valu","instr.value))","instr:","instruct","int","int(1)","int(2)","int):","integ","integer(2022)","integer)*)?","intliteral(2022)","int)从左到右存放在","int)放在","int;关于逻辑非,只有","ir","ir)是介于语法树和汇编代码之间的一种程序表示。","ir,只需要写","isa","isa=rv32g","isinst","isinstance(child,","isinstance(node,","isinstance(value,","j","j)","j);","java...)。由于不同源语言的","jen","jmp","jump","k","kind","l)","l,","l;","la","label","lalr","lalr(1)","land","languag","lbrace","len(...)","len(self.emitter.allocatableregs)","length","leqexpr","lesexpr","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","lexer(或","lhs,右操作数","li","link","linked,","linux","linux/mac","linux用户","linux,spik","list=riscv32","live","live);","livein","livein(succ(b))。","livein、liveout","livein、liveout。","livenessanalyzer()","liveout","liveout(b)","liveset","liveus","load","load_symbol","loader","load到一个虚拟寄存器","localalloc:根据活跃变量信息对一个","logical_and","logical_or","lookupreg(t","loop","lor","lparen","ls","lsb","lt","lts;","lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在","lw","m","mabi=ilp32","mac","maco","mac),window","mac),可以尝试自行根据","main","main()","main(){","main(){return","main,","main.pi","main.py,它通过调用","main:","main_exit","main_exit:","mainfunc","mainfunc.body.accept(self,","main。","main函数,代码贴了一些在这里:","main(可忽略)","main:","make","march=rv32im","memset","merg","miniconda","minidecaf","minu","mip","mips,","mips)规定的物理寄存器,其数目有限;而","modexpr","monkey:","mul","mulexpr","multi_nesting.c","multipl","mv","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitend","mv.visitend()","mv.visitload(expr.value)","n","n2176(n2176","name","namer","namer(visitor[scopestack,","namer.transform","nativeinstr","naur","neg","negexpr","neqexpr","node","node):","node,","node.functions:","node:","non","none","none:","none]):","nopic","nora","notexpr","notimplementederror","nqcc","o","o3","offset","ok","oop","op","op:","operand:","operand,运算类型","operator,","optional[u]:","orexpr","oss;","os用户,假设你已经将spike加入环境变量,将pk加入系统目录","os)中进行开发。助教不推荐直接在","otherwis","p","p)","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])","parallel","param","param[0]","param[]){","param_list","param_list,","paramet","parameter_list","params,函数体","pars","parser","parser.pars","parser.parse(...)","parser。","parser)一些信息,最经典的例子是","pass","pass。","pass。下面,我们将指出,step1","path=$path:/path/to/riscv","pdf","phase.","pip","pipelin","pk","pk。","pk,不过那是","pli","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了","ply),其使用方法与","post","postfix","post。","ppa:deadsnakes/ppa","prebuilt","prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to","prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc","prefix=/usr/loc","prepare.sh","primari","print","printer","printer.work(prog)","printf(\"%d\\n\",","printf(\"hello","problem”。","prog.funcs:","prog.printto()","prog:","program","program(listnode[union[\"function\",","program)","program):","program,","program.mainfunc()","program:","programwriter([\"main\"])","program),大写字母打头的是终结符(如","prologu","prologue。prologu","prologue,将","push","pw","pw.visitend","pw.visitend()","pw.visitmainfunc()","pylanc","python","python3.9","python框架","python,使用","python,可以通过","q:","qemu","qemu/spik","qemu。","qemu)使用的可执行文件的格式是","qemu,即","qsort(a,","qsort(int","q:","q:python","q:使用","q:如何提交课程报告?","q:实验指导书中step4的目标代码生成部分,给出的ir对应汇编指令不正确,修改了原有寄存器的值?","q:我怎样才能知道我的提交通过了所有测试用例?","r","r)","r;","ra","ra,","rais","random.randint(0,","ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了","rbrace","readcod","readm","recurs","reduc","reg","reg0","reg0,","reg1","reg1,","relat","rememb","remot","reports/.pdf,比如","reports/stag","repositori","represent","requirements.txt,你可以通过","res,","result","result);","result;","ret","retri","return","return(statement):","return)","return):","return,","return_type,函数名","rhs,运算类型","risc","riscv","riscv/riscv","riscv32","riscv64","riscv64,","riscvasmemitter.pi","riscvdesc::setregparam(tac","riscvdesc::spillreg(int","riscvreg","riscvsubroutineemitt","rparen","rules)。","rule:","runtim","runtime.c","runtime.c,runtime.h,runtime.","runtime.h","runtime,部分函数在源代码中只有声明,其定义在","rust","rv32i","rv32im","s","s1;","s2;","sandler","sat","save","saved。","scan","scope","scope.pi","scopestack)","selectinstr","self.emitter.allocatableregs[","self.emitter.emitend()","self.emitter.selectinstr(func)","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.func.add(loadstrconst(temp,","self.regalloc.accept(cfg,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","self.visitother(that,","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","seqz","shell","shell,那加到","shift","sifiv","sim","size","slt","snez","someth","sp","sp,","spec\"。","spec\",另外这里也有(非官方的)指令用法说明。下图给出了","special.","spike","spike(会自动安装","spill","spillreg(riscvreg::a0","spill到栈中。","sp,并恢复","ssh","stack_align,","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","stage","stage.sh无法正常使用?","stage1","stage3","stage4","stage5","stage中的test","stage的前端接入到原先的中后端来进行测试。","stage,我们将一起实现对变量以及分支语句的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️","stage,每个","start","statement","statement(node):","statement)?","statement*","static","std::fill_n","std::ostringstream","step","step0","step1","step10","step10)。在这个","step10:全局变量","step11","step11:数组","step12","step12)。在这个","step12:为数组添加更多支持","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step1,实验框架给出的初始代码可以通过","step2","step2。","step2:一元运算符","step3","step3:加减乘除模","step4","step4)。在这个","step4:比较和逻辑表达式","step5","step5:局部变量和赋值","step6","step6)。在这个","step6:作用域和块语句","step7","step7:","step7:","step8","step8)。在这个","step8:循环语句","step9","step9:函数","step_pars","step_until=1","step。每个","step,共包含","stmt","stmt.expr.accept(self,","store","store,搜索ubuntu,选择ubuntu20.04.","str])","strip","sub","subexpr","submodul","subroutineinfo.pi","sudo","sw","symb/symbol.hpp","symbol","symbol.pi","syntax","t","t)","t):","t0","t0,","t0,t1","t0结果,成立为1,失败为0","t0,这里的逻辑与需要将t1、t0通过汇编指令先转换为true或false,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生","t1","t1,","t2","t2,","t2)","t3,t1,t2","t3,t3","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","tac","tac/dataflow.cpp","tacgen.transform","tacinstr.pi","tacprog):","tacprog:","tac)看起来很像汇编,与汇编最大的区别在于","tap","target","temp","temp:","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","test.c","testcases/step1/multi_digit.c","testcases/step1/newlines.c","tests中的check.sh测试脚本,将pars","that:","then,假分支","tint","tint(typeliteral):","token","token。它被看成是一个取负符号、后面是它的绝对值。","transform(self,","translat","tree","tree,","tree.unary(unaryop.neg,","treeprinter(indentlen=)","type","type(int)","type,","type/type.hpp","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,其中p[0]代表的就是第一个unary,","unary,那么","unbind:将一个","union[int,","unix","unknown","updat","update,循环体","user","user。","utils.error.illegalargumentexception:","utils/riscv.pi","utils/tac/funcvisitor.pi","utils/tac;中间代码生成位于","v","v)","v,","v.visitfunction(self,","v.visitprogram(self,","v0,","v:","val","value))","value:","var_type,变量名","version","virtualbox","visit","visitblock","visitfunction(self,","visitload(self,","visitor","visitor(protocol[t,","visitor[t,","visitor。此外,为了便于实现,我们不使用","visitother(self,","visitprogram(self,","visitreturn(self,","visitxxx","vmware","void","vscode","v(非官方)汇编指令用法","v,risc","win10","window","world!","world!\"输出。","world!\\n\");","write","wsl","wsl,或者运行一个虚拟机。","wsl,通过","x","x)","x+","x,","x86","x86,","x86_64","x:","x;","x[10];","xx","xxx","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x同样也是表达式,其会生成一个值。而带返回值的","x(然后回车)。如果开头没有","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","x,那你最终敲到终端里的是","y","y)","y);","y;","y[10];","yacc","yacc(简称","y。","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","y,并且","zero,","zsh","{","{1,","{1,2};","{_t0,","{_t0}","{_t1}","{_t2,","{if(b)","|","||","}","}”","},且其返回值被","~","~!这三个单目运算符和从","~/.bashrc使修改生效。","~/.zshrc","~0","~a,","——","“typedef","“执行到了","“控制流图”","↩","、乘","、按位取反","。","【linux","【maco","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","一个","一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。","一个例子","一个函数中可以有任意多条","一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。","一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。","一元负号","一元运算","一或多次,?","一样,见上一节。如果不设置每次使用","一般来说,在三地址码的基础上是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。","一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念,","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","三个操作的语义和","三地址码","三地址码定义位于","三地址码(three","三地址码;在编译器后端中,将三地址码转换为","上例中,.data","上实现时,你可以用","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上的结点类型。","上表给出","上进行类型标注。对于静态类型(static","上述步骤","上面例子对应的控制流图如下:","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","上,如","下实现了各种","下标运算越界是未定义行为。","下的","下运行(qemu","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:","下面我们列出了所有框架中已经完成的特性:","下面我们将通过一个简单的","下面描述了","下面是环境配置指南,请阅读自己的系统的那一小节。","下面汇总一下。","下面的例子中,代码中不同的基本块被标以不同的颜色:","下面的描述中一定要记得区分accept和直接对于mv.visitorxxx的调用,前者是在遍历ast时调用的,后者是在","下面给出","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","不一样。","不为","不允许","不出意外你会获得如下结果:","不合法,但","不同,直接从","不支持","不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号","不是合法的","不是必须的。","不是编译器常量;","不知道这点(parser","不等于","不能出现在循环外。","不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。","不过事实上,很多时候看","不需要新增新的中间代码指令。","与","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","两类寄存器,而不是要求所有寄存器完全由","个","个偏移的内存地址中的数据","个元素(从","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个整数寄存器的分类。所谓","个模块。","个步骤(其中","个汇编生成器,只有","个源语言和","个目标代码生成模块。如果有了","个目标指令集,需要写","个通用寄存器,在这种情况下,我们无法将","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中。剩下的部分,对着代码和上面的ast看一下相信大家也知道发生了什么了。","中。比如我们有这样一段","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中会先调用","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你只需要关注","中你将实现常量操作(加减乘除模等)。","中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。","中你将支持声明全局变量,并且支持函数的声明和调用。","中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。","中你的代码会得到不一致的结果,请联系助教。","中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。","中出现的每个变量名分别对应那个变量。","中加入相应的分派函数。","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中只有","中只需要考虑常量的计算,直到","中存储地址,加载与该地址相差","中实现的整型常量越界检查。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中引入的","中引入的二元运算节点中进行修改即可。","中引入的运算均为二元运算,在","中我们提供了","中我们提供了加法运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——作用域栈的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","中我们是如何实现符号表构建","中描述了如何运行","中搭建开发环境。对于","中添加基本块是否可达的判断。在寄存器分配算法","中的","中的一方保存?为何保存返回地址的","中的临时变量均用","中的变/常量可以直接对应。","中的第","中目标代码生成主要是指令的选择以及","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中第","中第一个","中类型检查的部分,以及","中规定不管返回值有没有被使用,都是未定义行为。","中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中进行开发的话同时推荐使用","中通过一遍","中逻辑运算符","中间代码指令。需要特别提出的是,risc","中间代码生成","中间表达指令为例,risc","中,a","中,a0","中,funcscop","中,i=0","中,tac","中,主要有以下几个函数:","中,你将支持数组,包括全局数组和局部数组。","中,使实现更加模块化。","中,变量符号的定义里有该变量对应的","中,定义的新","中,我们会将左值的范围进一步包括数组元素。","中,我们只维护了","中,我们只需为","中,我们对于短路求值未做要求,但在包括","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","中,我们要给整数常量增加一元运算:取负","中,然后再把","中,由","中,若你增加了","中,负数字面量不被整体作为一个","中,输出三地址码时,请使用","中;寄存器分配在","临时变量","临时变量对应起来。","临时变量成员。","临时变量的赋值","临时变量赋值操作","为","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","为了实现","为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下:","为了实现所有可能的跳转,对每个","为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","为了简单,我们不要求这点。比如对于形如","为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供","为了让","为何","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为假,那么应当跳转到","为全局符号;.word","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为字符串,加载","为止。由于在栈顶作用域对应的符号表中不存在变量符号","为环境配置和框架学习,无需进行编程,不计入成绩。","为环境配置,主要是","为真,那么按顺序执行","为立即数2022分配一个临时变量","为符号类的基类,varsymbol.pi","为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:","主函数入口符号","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","之前执行的初始化函数中","之前甚至","之后","之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:","之后,c++","之后,如果我们想要编写一种遍历","之外的函数没有","之类的","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","乘法运算","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","也就是","也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。","也提供了","也有很多写法,另一种是用尖括号表示非终结符","了。","了,还有可能是如","事实上,由于","二元操作符","二元运算","什么是","介绍,在当前的步骤不需要考虑)。","从","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从执行的指令的条数这个角度(label","从本步骤开始,由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","从栈中将t0取出放入a0寄存器中","从编译器中端出来的中间代码中,我们对","从这里下载我们预编译的二进制程序包","从这里下载预编译好的","仓库链接。","代替了返回变量","代码","代码”的操作被称为交叉编译(cross","代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码中的标签只有标志","代码中,x","代码为示例:","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出","代码可简化为:","代码段","代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑","代码的控制流图。int","代码的格式,只要方便自己调试即可。例如,你也可以将","代码编译到","代码转化为了","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","代码(你不需要精确了解它的含义,大致理解即可):","代码,不过不是合法的","代码,也许","代码,使得不同的参数求值顺序会导致不同的返回结果。","代码,这样可以使中端与后端完全解耦。","代码:","以","以上给出了一份","以下讲述数据流分析的内容中,所有的","以及","以及常识相同,例如","以及括号","以及逻辑非","以后就能编译到","以处理命令行参数。官方文档中提供了它的教程。","以这个文法对应的一段","任务概述","仿照","优先和最接近的没有匹配","优先级和结合性","优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1","会先visit","会对应于一个","会将数组变为","会引入","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","会返回","伪指令可能会被转换成哪些","但为了实现简便,我们就不要求支持这点。","但我们加上参数","但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设t0在此后不再被用到,那么t0就不在当前位置的liveout集合中,也就是说在spill寄存器时t0可以被覆盖掉,这可能导致t2被spill到了t0所在的位置,覆盖了t0。","但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习c或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:","但有时,可能需要后续阶段告诉","但特别注意,c","位","位整数,因此,我们可以把","位有符号整数类型,范围","位汇编","位汇编。","位的","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的支持存在问题。","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位的,而我们需要","位的,请使用我们预编译的","位立即数到指定寄存器中,其中","作为函数参数的数组类型第一维可以为空。事实上,在","作为函数调用的表达式的值。一个函数可以有任意多条","作用","作用域中定义的","作用域定义的","作用域栈","作用域里的","作详细介绍。","你使用语言的框架里是如何处理悬吊","你做了哪些工作(即你的实验内容)","你可以不用关注pw是什么,假装它是一个容器,我们","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","你可能会觉得,这一步不就是将","你应该就能看到类似的输出。(记得自己写一个example.c)","你的学号","你的学号姓名","你的编译器","你还可以开一个","你需要:","使用","使用时记得加这个参数,否则默认编译到","使用的、和","使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","例如","例如,for","例如,int","例如:执行","依然遵循语义规范","依赖包","保存在寄存器中,e","保存在栈帧中,因此需要分配","修改了实验指导的排版、内容,删除了c++框架部分内容,增加了更多的指导内容。","修改了部分实验顺序,期望降低同学们实验的难度。","假设","假设在经过了词法分析和语法分析后,我们已经成功将","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","假设我们有若干个参数,可以依次使用","做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的","做详细介绍。","先将op0加入当前的liveout集合,这可以保证spillreg时候不会将op0覆盖","全局作用域(栈底)","全局变量和函数(step9","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","公钥添加到你的","关于名字由来,由于往年的实验叫","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。这部分看着长其实不长(大家还是读一下吧)。","关于操作系统,助教推荐使用","关于数据流分析的细节,我们将在","关于测试样例:","关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考","关系操作符","关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如","其中","其中f(a)中的a是上一行的let","其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:","其中,stage0","其他测试点,太长省略","其优先级的设定会导致其含义在某些时候可能会反直观,例如,0","其实也支持非字面量的编译期常量,例如","具体来说,在这一阶段中,我们需要对","具体的保存方法并不限制,但一般都使用栈来保存。","具有代表性的例子介绍它的整个编译流程。在之前","写出","写语法规则时,可以都用","准备参数,完成传参。","减法运算","出现在代码不同地方可能标识完全不同的变量。","函数","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数中定义名为","函数中所有出现过的变量符号即可。","函数会对不同类型的","函数作用域对应的单张符号表即可。","函数作用域里定义的变量","函数入口标签","函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用","函数入口),以及作为分支语句的跳转目标(tac","函数内部可以包含多条语句和声明了。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数参数","函数参数以及返回值的传递","函数参数(32","函数实现有错误?","函数对应的作用域中,可以找到变量符号","函数执行","函数执行至","函数抽象到一个接口里,各种具体的","函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,df","函数时带上这个容器,将翻译好的函数放进去。visitmainfunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵ast树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainfunc.body.accept(self,","函数时,开启一个局部作用域,在扫描","函数时,相当于执行了:","函数是可以递归调用的。","函数是否存在。","函数根据被遍历的结点类型不同,执行不同的遍历逻辑。","函数用来给数组批量赋值,你可以按照","函数的","函数的参数列表需要加上数组类型。","函数的实现,其使用方式和功能同","函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。","函数的栈帧,并且集中于临时变量的存储和加载。","函数调用","函数返回","函数里定义了变量","函数)分别使用一个","函数,将返回地址压入栈中。","函数,并把不同的","函数,直到","函数,编译器应当报错。","函数,这个函数对于在block中的所有子节点调用了child.accept(self,","分别对应","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","分支","分支。在","分支和","分支开始位置和整个","分支条件","分支的代码,并在该分支结束时,用一条","分支语句","分支需要是一个语句(statement)而非声明(declaration)。","分支)。本地测试不受此次更新影响,因此更新本地的测试仓库","分支,就会执行第二个语句,否则整个","分支,所以在递归到子结点时,请先判断子结点是否存在。","分支,那么只需要一个跳转标签即可。例如我们将例子中的","分析等理论知识在实践中的应用。","分配","划分基本块。","则对应着内层代码块定义的变量","创建","创建了一个仓库,其中","初始语句","删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。","判等操作符","到","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到可执行文件","到底和哪一个","到栈上)。","到此为止我们得到的tac代码如下:","到汇编","到汇编的步骤一分为二。如果目标代码有误,通过检查","到汇编翻译有误。","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","到远端仓库的时间。并且,你也可以随意地","前就被释放了,后端会尝试到栈中寻找","前每个","前补交,此","前这个","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","加法操作","加法运算","加载到临时变量","加载到寄存器","加载立即数","加载立即数2022到t0寄存器中","助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了","助教已经为每位同学在","助教推荐使用类似","勘误表","包列表文件","包含多个","匹配。","即便是类似","即可。","即可。具体来说","即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。","即是控制表达式,其求值在循环体的每次执行之前。post","即此时需要:","却编译出","参数","参数类型","参考","参考的","参考资料","又对于","及之后不接受补交,此","及之后,至","及更高的版本,你可以直接使用","及触发此次","反复运行","发布作业时打包有失误,请使用原有的minidecaf","取模运算","取负操作","变为","变成","变成:","变量","变量。","变量和语句(step5","变量的使用(读取/赋值)","变量的初始化表达式指定了变量的初始值。","变量的声明","变量符号究竟存在哪里,如果所生成的汇编程序不给出","另外这里也有(非官方的)指令用法说明。","只在内部大括号括起的作用域内生效。","只支持","可以参考这个教程进行升级,升级时注意备份。","可以在符号表中找到(我们在扫描","可以尝试如下命令:","可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过定义等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。","可以等价于访问","可以适配不同指令集(risc","可执行文件","可执行文件。","可执行文件,所以我们的","可执行文件,最后用","可执行文件;","可执行程序。","可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出","右操作数;","合法。","合法的范围内。","同","同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。","同中间代码生成,全局数组自行思考实现。","同学们可以使用这种参考的实现形式,也可以自行思考传参的处理方法。","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持","同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。","名称","后是一个","后面risc","后面会用到:(","后,可以用负号配合正整数常量来间接表示负整数常量。","含义","命令修改","命令安装下文提到的","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","命令无法正确安装依赖?","命令未必会对应","命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。","和","和常说的","和循环体)。","和手工语法分析器为","和最近的","和类型检查","因为","因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做:","因此我们不能直接使用有些系统自带的","因此我们希望生成的","因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。","因此,变量名不能唯一标识变量了,同一个变量名","因此,测例可以翻译成如下的中间代码:","因此,示例可以对应如下的","在","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","在param","在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。","在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。","在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。","在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2)","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:","在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a","在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。","在实际操作中,我们遍历","在实验框架中已经给出寄存器分配算法的代码,集中在","在实验框架中,我们使用的是","在实验要求的语义规范中,条件表达式存在短路现象。即:","在对","在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。","在我们的实验要求中,返回值均是单个","在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。","在扫描到","在框架中,我们有以下的","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在第","在编译实验中可能需要的用法。","在词法分析","在语法树上对应父","在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。","在这个示例中,我们在","在这段","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","块之前就要具有的了)。","块语句和循环(step7","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","型,而","基于上面三个特点,已经求出基本块的","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","基本块","基本块是指一段这样的代码序列:","基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:","基本块(basic","基本指令集,并包含","基础的设计模式都在","声明","声明全局符号","处理,并被转化为如下形式的一个","处,我们使用一条","备注","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","大于","大于等于","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","大致如下。","如何将一个立即数装载到指定寄存器中?","如何设置返回值?","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果","如果一个不是","如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你认为成绩有问题,请及时与助教联系。","如果使用的是低版本的","如果关于报告提交有任何问题,请及时联系助教。","如果出于某些原因必须使用低版本的","如果出现悬吊","如果在多次","如果在机器上直接安装了较低版本的","如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。","如果当前基本块以","如果想要访问某个子结点","如果没有安装qemu模拟器,则会出现如下错误:\"bash:","如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。","如果输入程序没有","子两个结点,父结点为取负操作,子结点为常量","子句也可以不带,但这会导致语法二义性:els","子语句列表","字节。","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节整数,是","字节流","字节的内存,并返回内存首地址","字节的栈帧空间。sp","存放到","学术规范","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","它会对应如下的","它对应的完整语法分析树可能长这样:","它将在后续的","安装","安装依赖","安装依赖。","安装工具链","完备问题(可以从","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","完成符号表构建后,我们就可以自顶向下地遍历","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义,以便lexer可以解析","实现","实现的时候,你可以直接让所有函数都默认返回","实现,称为","实际上上述初始化可以等价地转化为:","实际上,我们提供的中间代码设计和","实验思路指导与问答墙","实验报告中需要包括:","实验指导","实验指导。本实验指导使用的例子为:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验框架中关于目标代码生成的文件主要集中","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","实验框架介绍视频","实验框架环境配置","实验框架相对于2022年的实验框架进行了以下修改:","实验框架,你需要安装或保证如下软件满足我们的要求:","实验概述","实验测例中有与","实验环境虚拟机下载链接(使用方法参见网络学堂公告)","实验简介","实验起点和基本要求","寄存器","寄存器。","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器中,然后在后面加上一条","寄存器中,请写出一段","寄存器分配","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器?","对于","对于c++:","对于python:","对于下标运算","对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于含有未定义行为的","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","对于感兴趣的同学:c","对于每个阶段(stage):","对参数取负","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应到框架代码上:","对应的不使用跳转的汇编。","对应的临时变量。每当在","对应的临时变量为","对应的符号。符号","对应的结点时报错。","对应着","对应结点到","对应结点的有向边。对于以","对有兴趣的同学:","对有兴趣的同学:虽然","对未声明的变量的使用是错误。","对象,用以维护","将","将t2放入栈中(即:spill","将两个参数相加","将全局变量放到特定的数据段中","将循环语句翻译成","将返回值放到a0寄存器中","小于","小于等于","小写字母打头的是非终结符(如","尝试运行","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","就","就可以被替换成新的非终结符","就是指","局部作用域","局部作用域(栈顶)","局部变量和","局部变量的名字可以为","工具使用","工具链。","工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的","工具链并解压。","工具链并解压到你喜欢的目录。","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","工具链,由","工具,在环境配置中已经叙述了安装和使用方法。","左操作数","左操作数;","已提供的语法特性","已经成为了变量","已经提供的语法特性","常说的","常量表达式(step2","年","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。","并不是一个会产生值的表达式)。","并且不会找到,出现报错:","并在","并被","并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。","库来实现这一点。yacc","应当变为如下形式:","应用商店可以很容易地安装","应该等于","应该输出一个可执行文件","底层类,同学们可以不作修改,也可以按照自己的想法进行修改。","建立基本块之间的连接关系。","建议使用","建议各位同学使用我们提供的","开头以被","开头的","开始计数)。","开始,minidecaf","开始,我们要支持多函数了。","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","开始,语法树上出现了各种运算操作结点。在生成","引入的运算符也都适用。","当","当且仅当其对应的二进制位是","当中,我们只需要提取","当操作数不等于","当操作数有一个非","当操作数都非","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","当然也是可以的,而且更清晰简单。","当然,如果一条","当然,如果变量在使用前还是必须先被声明。","当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。","当然,广义上的编译器就囊括了这所有阶段。","当程序读入程序的字符流之后,它首先会被","当遇到","当遇到一个","形式的语法规范生成相应","往往也可以调用qemu环境正确执行,并得到\"hello","很容易通过增加新的非终结符,去掉这些符号。例如","得分乘以","得到的这个","循环、do","循环、while","循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于","循环以及","循环作为示例。","循环可以有以下两种翻译方式:","循环和","循环实现,同学们可以参考着完成","循环我们都需要定义三个跳转标签:begin,","循环括号中的三个表达式/声明自左向右依次为","循环的","循环的实现。","循环的控制表达式的求值在循环体的每次执行之前。","循环的控制表达式的求值在循环体的每次执行之后。","循环的特例,我们选择了","循环而言:如果","循环要自带一个作用域。在示例里,for","循环语句","循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果","循环语句的作用域(包含","循环语句的语义和","循环语句翻译成","循环语句还会使用。","循环都可以看作","必做:risc","必做:测试你是否正确配置好了环境","快速入门","怎么从","怎么从tac到汇编代码","思考题","总结","恭喜你!到目前为止,你已经成功实现了一个基于","悬吊","意义不同,但","意味着执行时没有通过","成员","成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:","我们人为规定:els","我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。","我们以","我们使用","我们假定当前栈帧的栈顶地址存储在","我们假设你已经正确设置好了环境变量,否则运行","我们先忽略livenessanalyzer和cfg以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectinstr,selectinstr函数中,我们也采用了visitor模式遍历指令序列,对于_t0","我们只接受","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的","我们定义了另一个变量","我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将由易到难完成","我们按照上一节划分的编译器阶段,分阶段给出","我们提供了预编译的","我们提供预先编译好的","我们暂不要求支持不包含函数体的函数声明。","我们没有支持","我们用缩进表示树结构,其中","我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过","我们的编译器只生成","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。visitor","我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。","我们能发现","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","我们要增加块语句的支持。","我们要增加对循环语句,以及","我们要增加的是:","我们要增加的是:加","我们要支持条件语句,包括","我们要支持的是全局变量,语法改动非常简单:","我们还需要支持函数调用:","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","我们采用","我们需要下载安装","我们需要先引入下面四种针对基本块的集合:","我们需要在符号表构建的过程中,确定","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","我们需要支持函数的声明和定义:","我们首先来看本节指导用例所对应的中间代码:","或","或不定长数组","或者","或自行编译。","所","所以我们无法用字面量表示","所以,我们不要求支持变长数组","所作的修改。","所使用,则这是一个未定义行为。","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","所对应的寄存器在","所对应的数据段。","所有","所用的方法就是的","所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在","所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。","所需的底层类。其中","手册","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","才知道),所以它们都会用同样的","才需要考虑符号表构建。","才需要考虑,届时再介绍其处理方法)。如上例所示,tac","打开microsoft","执行","执行一条","执行完之后,有可能跳转到另一个基本块","执行汇编中的函数调用指令,开始执行子函数直至其返回。","扩展(乘除法)。本实验中我们不需要其他扩展。","扫描完成","把","把export","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令。","指令。不过为了实现循环语句,需要仔细地考虑如何将","指令。提供给生成","指令不支持","指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","指令与其对应,因此上述中间代码可以翻译为如下的","指令与汇编指令类似,每条","指令为条件跳转指令,branch","指令为跳转指令。","指令即可完成函数返回的工作。","指令将值写入数组元素。","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令来完成翻译工作。","指令来完成翻译工作。以","指令来实现,我们还需要引入一条类似的","指令来执行。如果","指令来支持加载一个","指令来翻译中间表示里的","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令跳转到","指令选择相应的","指令都是位运算指令,不是逻辑运算指令。","指令链接:https://github.com/thethirdone/rars/wiki/support","指令集文档在这里,我们只需要其中的","指令集架构,编译实验要求你的编译器把","指令集架构,编译实验要求所实现的编译器把","指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替。如相等、大于等于、逻辑与、逻辑或等等,同学们实现时需要特别注意。","指令(例如","指令(即所有操作数都已经分配好寄存器的指令),最后通过","指令,则需要在","指令,同学们可以在必要时修改或增加","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了c语言操作符的优先级和结合性,因为我们的minidecaf语言是c语言的一个子集,所以这张表格也足够我们的语言使用了。","指导书上的思考题","按位取反","按照上文说的,","按照下面的","按照本文档的前几节(riscv","按照汇编约定,data","按照测例的","按照这个规定,parser","换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。","接下来我们会用到","接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,将对我们所使用的中间代码","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","控制流、数据流分析和寄存器分配","控制流和数据流分析","控制流图","控制流图是一个有向图:它以基本块作为结点,如果一个基本块","推荐:运行实验框架","提交/补交时间是","提供了","提供了一系列的汇编指令,用以声明全局变量","提供了与中间代码中","提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:","提示","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","提示:发生越界的一步计算是","操作数","操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于","操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:","改进你的编译器,支持本节引入的新特性,通过相关测试。","放入a0寄存器","放入a1寄存器","数据段;.globl","数据流分析","数据流图定义及优化在","数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。","数组传参是支持不定长度的","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","数组和普通变量类似,可以分为局部数组和全局数组。","数组的下标操作","数组的传参:","数组的初始化:","数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在","数组类型,其值和地址都可以用一个32位整数存储,故","数组(step11","整个操作序列扫描完毕后,我们就成功建立了所有基本块。","整型","整数运算越界是未定义行为(undefin","文件,","文件夹下,step1","文件夹中的","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","文件,gcc","文件,其中写入如下内容","新引入的每个运算都有一个对应的语法树节点.","新特性的语义、优先级、结合性和","方便起见,我们称","方法对每个函数内的","方法生成每个函数的","无","无条件跳转到","无法找到,因此编译器需要在扫描到","日","日(第十六周周日)24:00","时","时定义变量符号","时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。","时能快速找到","时请用完整路径。","时都要输入完整路径。不过对于","时,从栈顶作用域符号表查找","时,会执行第一个子句;当控制条件等于","时,其结果为","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","时,如果有","时,定义了另一个变量","时,应终止执行并返回","时,我们需要分析","时,条件表达式的求值结果为第三个操作数所求得的值。","时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非","时,表达式","时,选择没有","时,逻辑与操作符","时,逻辑或操作符","时,逻辑非运算符","时,遇到的子节点是","是","是一个","是一个与","是一个声明,其声明发生在控制表达式的第一次求值之前;如果","是一个很像","是一个数组类型,b","是一个整数类型,a[b]","是一个根据","是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl","是一条声明,则其所声明的变量所属的作用域是整个","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_t0","是其中存放代码的段(section),.bss","是合法的","是合法的代码片段。","是否成功安装,详见risc","是否正确就可以知道:是ast","是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。","是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。","是左结合的,所以表达式1","是未定义行为。这一条规则对于后续","是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回","是某个","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","是逻辑真(int","显然,两个代码块里的变量","更具体来讲是创建","更新的时间,这几乎等于你","更新评测脚本之后,现在通过","替换为你自己的","最后一次触发","最后一次触发的","最后,扫描语句","最新的","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","月","有一些差异。","有三种循环语句:for","有了上述两条指令,可以将测试用例翻译如下:","有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","有以下三种特点:","有短路现象,我们不要求。","有短路现象,我们的实现中不要求大家考虑它们的短路性质。","有能力的同学可以考虑将原先","有许多可行的翻译方法,例如","本","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本实验指导使用的例子为:","本次实验一共设置","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","本步骤中无须新增新的","本步骤中没有需要新增的","本步骤中语义分析没有特别需要增加的内容,只需要在扫描到","本步骤主要涉及的语法为主函数和","本步骤引入全局变量,在引入全局变量之后,ast","本步骤语义分析阶段的处理方式和","本节主要就是引入了跳转,后面","本节指导用例对应如下","机器上、把","机器上,却要编译到","条件表达式","条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于","条边)。","来了解","来判断结点类型,而是调用结点自身的一个","来合并前一个","来安装用户态的","来实现这个接口。","来手动更新。","来查看我们预定义的函数。","来生成对应的","来表示跳转用标签,以此和函数入口标签区分开来。","来说,这一点其实几乎已经被语法保证,因为其","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","标准库中的","标准正式发布前的最后一版草案,根据","标准的编者之一","标准相比只有表述上的差异)","标准草案","标准草案保持一致","标准调用约定中要引入","标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看","标签。","标签和","标签处","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","标签的维护。","标签(示例中的","标签,这样才能确定每一条","标记而且存在跳转语句跳转到这个行号时。","标记,即不能跳转到基本块中间。","标识符(用于表示变量名)","栈帧","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","根据优化等级不同会有数百个不等的","根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。","根据这个方程,我们可以通过迭代更新的办法求出每个基本块的","根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","格式提交到","格式的实验报告,其提交方式是放在仓库的","框架","框架中不同运算对应着不同的","框架中会在生成的汇编中在函数名前面加上下划线","框架中出现了新的三地址码指令(param、call等),因此你需要参考","框架使用了","框架寄存器分配中","框架无法正确输出三地址码?","框架本身在","框架比较特殊,需要同学们对寄存器分配相关的","框架的后端除了要修改指令选择部分之外,还需要修改基本块","框架里已经提供了需要的","框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","检查是否安装成功","模式。","模式就是常见的一种。","模式有所了解,或者假设你已经知道在遍历","模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","模式速成","模式遍历","模式,并以框架中的代码为示例进行介绍。","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","模拟器和一个简易内核","模拟器运行","模拟器,不过只能在","此处助教使用tac的op0来存放需要当作参数的虚拟寄存器","此处选择了一个栈上的位置用于保存寄存器","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","此外,如果安装了多个版本的","此外,我们提供了","此外,我们的","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","此部分对应框架源码位置:","步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","段内存)。","段或","段里。","每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。","每个","每个步骤结尾的","每个节点的出度都是","比较大小和相等的二元操作:、、>=,","汇编","汇编。","汇编中","汇编中有","汇编中有对应","汇编中的","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","汇编代码,将栈帧空间扩大","汇编代码,并通过","汇编代码:","汇编变成","汇编指令来翻译","汇编标签","汇编的思想是一致的,risc","汇编课上应该讲过,实际中(包括","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","汇编,然后再使用","汇编:","没有特别需要修改的地方。","没有被初始化的(局部)变量的值是不确定的。","法调试,发现是","注意","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","注意这里的","注意,我们虽然是用的工具前缀是","注意:if","注意:从","注意:安装了qemu之后,直接运行","注意:引入数组后,左值不再一定是","注意:由于子模块使用","活跃变量和活跃变量方程","活跃变量集合","流:","测试中看到。","测试你","测试用例,一起走过它的编译全流程:","测试运行的","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","源文件","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","灰色部分表示相对上一节的修改。","然后从这里上下载我们预编译的二进制程序包","然后在","然后让它等价于","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。","版本的包管理器。请尝试使用","版本高于此版本。","版本,如果你是其他平台(如m1","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","环境下安装","环境配置","环境配置和实验框架环境配置)配置好实验环境。","环境(如","现在尝试运行","现在让我们来看看示例所对应的","甚至可以支持","生成。和语义分析一样,这部分也使用了","生成中间代码","生成器和","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","生成汇编的话,为了支持","生成的","生成的以下中间代码无法成功生成目标代码。","生成的可执行程序只能在你本机(x86)上运行。","生成过程中,每当扫描到","用于分配内存空间:","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","用户】qemu","用户】spike","用户环境配置指南","用户环境配置指南安装","由于","由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(live","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","由于循环语句可以嵌套,所以","由于每个结点只含有一个语句,因此其","由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其","由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用","由于源语言(minidecaf)和目标语言(risc","由于现在","由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理liveout集合,以下面三地址码为例:","的","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的“替身”。每次需要用到变量","的一个纯","的一种参考方法。","的主函数编译为","的主函数编译全流程:","的代码片段,你可以以任意方式处理。","的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(scope","的使用,结合我们的文档,来快速上手","的值。因此,为了在后续使用变量","的值为0,则跳转到","的值为真(不等于0),那么应当执行","的值作为参数","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值是不确定的。","的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,然后将返回地址弹出栈中,跳转到返回地址。","的入门,但这不是必须的。","的全局变量,同时在","的内容","的内容进行细微修改。具体来说,需要在","的内容,就是上面汇编输出的简化版本","的函数执行到了它的","的函数调用时参数求值的顺序是未定义行为。试写出一段","的分支跳转指令。由于","的博文,其与","的同学可以使用","的含义与","的地址。","的声明,risc","的处理。","的处理方式更符合你的直觉。","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里","的定义,从","的定义,程序是有bug的。实际上,risc","的实现,大家可以直接运行通过","的实验报告需要放在","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","的工具链使用","的工具链使用。","的工具链使用总结了","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的左操作数必须是一个可修改的左值(modifi","的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。","的帐号名后,助教会给每个人建立一个私有的仓库,url","的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。","的形式提供。","的形式表示(k表示变量的编号)。","的得分为","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的截止时间;","的所有测例。","的指令,我们直接给出翻译结果:","的支持:","的改动如下:","的文档。","的文档都将以如下形式组织:首先我们会介绍当前","的文法:","的新特性并仅在这一版本下经过测试。请保证你所使用的","的方法,可以直接继承","的时候选择shift,从而对悬挂else进行就近匹配。","的时间,而不是","的时间;","的期末考试成绩)。","的标准调用约定(gcc","的根结点类型","的概念,并介绍它的布局。","的求值在循环体的每次执行之后。","的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。","的注释里给出的提示。","的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的源码进行编译,附","的用户态模式,我们使用","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的目标是支持数组的初始化和传参:","的目标是支持数组:","的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用","的结果为","的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是","的结果是其操作数的相反数。","的结果是操作数的乘积。","的结果是操作数的和。","的结果是第一个操作数减去第二个操作数所得的差。","的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为","的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符","的编译器框架,所以今年的实验就叫","的编译结果","的记号:","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","的跨平台性,理论上也可以在","的输出。","的输出结果。例如,你可以通过","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","的运算结果为","的返回码,也就是我们","的那个值","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","的?","目录下为符号的实现。其中","目录下为符号表的实现。其中","目录下实现了生成","目标代码生成","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","目标代码生成步骤的关键点与","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","目标平台汇编代码生成","目标平台汇编代码生成在","直接看visitreturn函数,我们这里的return是一个带返回值函数的return","相似。","相关信息","相关的)","相关资源","相同,即“如果","相同,针对中间代码指令,选择合适的","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","示例程序。请注意","称为调用序列(call","程序。","程序。因此,在符号表构建阶段,扫描到","程序。除此之外的","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序代码编译成","程序代码里的一个函数调用,包含了下面一系列的操作:","程序出现了分支结构,我们需要开始考虑跳转语句了。在","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序流程的主要接口在","程序由标签和指令构成:","程序的入口点在","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","程序的生成是以函数为单位,对每个函数(step1","程序编译到","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","程序,","程序,ast","程序,在启用优化选项编译时,编译器可能产生意料之外的结果。","程序:","稍微一提,关于按位取反,我们使用补码存储","空","空集","符号。","符号对应的初始值。","符号所代表的地址","符号来表示,正如","符号表","符号表总是和作用域相关的。例如,在","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","第一个编译器(step0","第一种(即实验指导中的翻译方式):","第二种:","等","等。","等于","等价于","等价于将其替换为一个非零常数,比如","等均为","等模拟器来运行","等符号都可以作为一元运算符出现,比如!x,","等跳转语句时。","等跳转语句(但可以包含","等),当然你也可以在类","等,然后参考下面","简单的启发式寄存器分配算法","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","类中增加生成该指令的接口。在本框架中,tac","类中调用的。并且希望大家一定要对着代码看。","类似step2,对每种二元运算实现了不同的语法树节点","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类似的","类似的指令:","类型为","类型具体指","类型和","类型基类","类型检查","类型检查:各语句和表达式是否类型正确。","类型,但可以忽略返回值达到类似的效果。","类来处理它。","类来通过","类表示函数符号。scope/scope.hpp","类里实现了维护","类,并在对应结点的","系统环境(mac","索引基底","索引运算","组织如下:","组织实验,各个","组织文档,每个","细节呢?","经过","经过使用","结合性是一个操作符的性质,例如","结合,也就是说上面两种理解中只有前者合法。","结合?","结尾,则不需要加入新的边。","结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。","结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共","结构。现在,我们想要编写代码对","结构:","结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","结点时,不要忘记开启一个局部作用域。","结点时,会依次检查该操作的两个操作数","结点时,若当前不处于任何循环内,则报错。","结点的基类","结点类实现(进行了适当的简略):","给出","继续看上述例子,我们先关注只有","综上所述,我们上述中间代码翻译成如下","编译","编译优化的基础是数据流分析。","编译到","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器应当只接受","编译器的构造中会使用到很多设计模式,visitor","编译器结构","编译如下程序来了解如何翻译逻辑非运算符到","编译实验","编译实验分为多个","编译实验框架,我们给大家的代码框架中已经包含所有","编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。","编译的文件相互调用的要求,因此,大家需要实现标准调用约定。","编译程序进行验证。","缩小调试范围,通过把","翻译中间代码","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","而","而不是","而函数体首先在一个block中(花括号括起来的部分),因此会先进入","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","而是用","而看到第二个时只能选择有","而这里的","而非","能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有","自己的仓库中,放在仓库根目录下的","节点","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","节点来表示它,给出的参考定义如下(框架中已经提供):","节点来表示它,给出的参考定义如下:","节点的定义位于","节点里,也可以单独设置一类节点继承","节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。","节点,还需要类似地实现条件表达式节点(框架中已经提供)。","若","范围内的整数常量,","范围内的非负整数,使得运算过程中发生越界。","获得了每个基本块的","虚拟机,使用","虽然也运行在我们的","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","行处随机数生成的范围,将上界改为","补交政策","表示。","表示使用","表示函数作用域。","表示分组,|","表示存储空间大小为","表示寄存器名,","表示将","表示接下来是一条命令,记得运行的时候去掉","表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","表示立即数值,如:li","表示输出到","表示选择,*","表示逻辑假,其他的","表示预留一块连续的内存,4","表达式","表达式,只使用","被绑定到","规范","计算完成后,calcul","计算机无法运行。","让我们先来看看示例对应的","让我们来看看示例所对应的","让我们考虑","记号书写语法规范,采用类似","设置","设置为下一个参数","设置环境变量不管用,要么把它放到系统目录","设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser","访问它也不能通过","评分会以","评分标准","识别。","词法分析","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析程序位于","词法语法分析","该方程说的是一个基本块的","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","详细讨论。","语义分析","语义分析步骤中,我们要遍历","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","语义规范","语义计算中被用到。","语句","语句。","语句不总是有","语句不给任何变量定值,load","语句修改为","语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的","语句则会给对应变量定值)。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句和","语句和条件表达式时递归地访问其子结点即可。请注意","语句和条件表达式(又称三元/三目表达式,ternari","语句块","语句基类","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以","语句所在的最小的循环语句的循环体的末尾。","语句所在的最小的循环语句的执行。","语句既可以带","语句时应当跳转到的位置。","语句时,都需要调用","语句是否有返回值。","语句没有","语句生成过程中需要动态维护","语句的","语句的实现。","语句的执行便已经完成。","语句的结束位置。如果","语句的结束位置,从而跳过","语句的语义和","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语句相类似,但是请额外注意以下两点:","语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。","语句而言,当控制条件不等于","语句要么出现在循环体里,要么其就是循环体。","语句跳转到何处。因此,在","语句返回的常量,为之分配一个临时变量,再生成相应的","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句需要一个值,我们可以理解为带返回值的","语句)。","语句,完成本步骤之后,你的编译器将支持将一个仅有","语句,意味着将程序的执行跳转至该条","语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的","语句,意味着终止该条","语句,我们需要设计","语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:","语句,那么应当跳转到此处,执行循环之后的指令。","语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句:","语法上我们继续修改","语法上改动不大","语法上没有太大改动,","语法上的改动是:","语法上,step5","语法上,我们需要修改","语法分析","语法分析器直接产生的实际上是一棵语法分析树,而构建","语法分析树的建立可以说明所输入的","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","语法树节点对应的语法规则里都是","语法规范","语法规范的手工","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","语言中的基本类型只有","语言中规定只有使用了返回值才是未定义行为,而","语言中,我们可以在全局作用域中定义名为","语言中,逻辑运算符","语言实现","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?","语言的完整编译器,能够把","语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。","语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个","语言相同。","语言相同,注意条件表达式优先级只比赋值高。","语言相同,注意检查","语言规范规定,允许局部变量是可变长度的数组(variabl","请务必注意上表中的两个变量","请将实验报告以","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意","请注意我们提供的预编译","请注意,tac","请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","请注意,翻译所得的","请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到","请画出下面","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","读内容","课程中覆盖,这里重提一下","课程实验的目标平台为","课程问答墙","调用不同的visit","调用了","调用函数","调用函数名","调用约定","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp","账号上,才能将其克隆下来。","赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。","赋值运算","跑在","路径","跳到这","跳转到","转化为如下形式的","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输入,输出汇编代码。","输出","输出成","输出的汇编比看什么文档都有用。","输出结果","输出结果,能看到是","运算符","运行","运行在我们的","运行实验框架","运行测试","返回","返回值实现。","返回值是否在","返回值(32","返回指令即可。不难看出,本例对应的三地址码为:","返回类型","返回类型,这可以通过忽略函数的","返回,例如","还是","这一","这一函数里","这一插件。","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步我们终于要增加变量了,包括:","这一步是","这一节引入的","这个","这个临时变量,在符号表中存储","这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:","这个数字是一个表达式,","这个方程的直观意义是:","这个符号时,应当为该符号设置一个成员,存储","这个问题被称为","这也是合法的","这些语法树节点,在","这条语句后已经为其定义),而","这条语句时,中间代码先把立即数","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样的函数来实现数组数组的清零,我们的运行时库中也提供了","这样的奇怪的","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种“gcc","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这种,但仍然不允许类似","这种,同样也是未定义行为。","这部分的工作流程如下:","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里的","这里进入了funcvisitor.visitload:","进行两遍扫描,分别完成以下的检查:","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","进行扫描。很容易写出递归的","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","连快速排序都写不了。","选项):","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","通过例子学习,一个仅有","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","逻辑与","逻辑取反","逻辑或","逻辑操作符","逻辑表达式会麻烦一点,因为","遍历。","遍历:","那么在扫描到加法操作的","那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的","那么语义检查时应当报错。","那么,在进入","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","都可以被省略。省略","都是其中存放数据的段,前者零初始化后者须指定初始值。","都是继承","都是逻辑真。","配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。","配置。","配置文件里)","采用","里加入新的","里实现了函数符号。","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","里的","里的临时变量也是","里的实验报告为准,详见补交政策。","里面的","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","重新设计”的过程,一步步实现从简单到复杂的","针对","针对全局变量,我们需要新设计","针对函数特性,我们需要设计","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对块语句,我们需要设计","针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对局部变量定义和赋值操作,我们需要设计","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对数组,我们需要设计","针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的","链接,你需要将你的","问题","问题。","问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。","问题的?请简要描述。","除了分配数组,我们还需要考虑如何访问数组元素。通过","除入口语句外基本块中不含任何的","除出口语句外基本块中不含任何的","除法运算","除非特别声明,子表达式求值顺序是未规定行为(unspecifi","随之而来一个问题是:不同变量可以重名了。","难度不大,但有了数组让我们能够写很多有意思的程序了,step11","集合。如果我们把基本块内所有","集合中去掉","集合以后的部分。","集合以后,我们需要进一步地计算基本块内每个","集合就是源操作数对应的所有变量。","集合是","集合是其所有后继基本块的","集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。","集合是在这个基本块内被定值的所有变量。所谓的定值","集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出","集合的变量加上","集合的并集,而且","集合,以下是求解的伪代码:","集合:一个基本块的","集合:在离开基本块出口的时候是活跃的那些变量。","集合:在进入基本块入口之前必须是活跃的那些变量。","集要么是空集,要么只含有一个元素。","零或一次。","零或多次,+","需要以","需要增加的类型检查重构进","需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令sourc","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的","需要注意的是,由于我们目前只支持一个","需要注意的是:在c++框架中,在生成函数时,编译器会自动给函数名前面加上下划线,来防止名字冲突,所以如果出现链接错误时,请先检查生成的汇编代码的函数名称和所要调用的函数名称是否一致。","需要特别注意的是,在","需要用到的知识点,其次我们会以一个当前","需要申请更大的","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。","需要说明的是","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。","预编译的较新版本的工具链对","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","首先把文件夹riscv64","首先,我们应该把","默认在","(definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:stor","(可选)设置环境变量,方法与","(如果你不用系统自带的","(小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","(更新","(汇编)保存","(汇编)恢复",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",也就使得",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",将作业提交到那个仓库即可。",",并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022",",设置“开发者模式”以及“启用子系统功能”。",":"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"实验简介","keywords":"","body":"MiniDecaf 编译实验\n\n助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了 C++ 框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。\n\n实验概述\nMiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step,共包含 12 个 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\n2023 年秋季学期基本沿用了 2022 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。\n实验框架相对于2022年的实验框架进行了以下修改:\n\n为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供 Python 语言实现\n删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。\n修改了部分实验顺序,期望降低同学们实验的难度。\n修改了实验指导的排版、内容,删除了C++框架部分内容,增加了更多的指导内容。\n\n实验起点和基本要求\n本次实验一共设置 12 个步骤(其中 step0 为环境配置,主要是 RISC-V 工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的 step1-11 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。\n我们以 stage 组织实验,各个 stage 组织如下:\n\n \n 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。\n \n \n 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。\n \n \n 变量和语句(step5-step6)。在这个 stage 中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。\n \n \n 块语句和循环(step7-step8)。在这个 stage 中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。\n \n \n 全局变量和函数(step9-step10)。在这个 stage 中你将支持声明全局变量,并且支持函数的声明和调用。\n \n \n 数组(step11-step12)。在这个 stage 中,你将支持数组,包括全局数组和局部数组。\n \n\n\n\n同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持 step1 - step6 语法规范的手工 parser。\n\n设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser generator(如 Bison)掩盖了很多语法分析的实现细节。\n\n其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。\nstage1 - stage3 和手工语法分析器为 4 个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡 10%)。\nstage4 - stage5 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评 10% 的期末考试成绩)。\n我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。\n在 2023 年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。\n请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。\n实验提交\n大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler-22/minidecaf-你的学号 ,将作业提交到那个仓库即可。\n每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git merge 来合并前一个 branch 所作的修改。\n本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。\n.gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件;\nprepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。\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评分会以 2023 年 1 月 1 日 24:00 前每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。\n如果你认为成绩有问题,请及时与助教联系。\n补交政策\n\n假设 a 日 24:00 是某个 stage 的截止时间;\na + k (k \na + 9 日 24:00 及之后,至 1 月 1 日(第十六周周日)24:00 前补交,此 stage 得分乘以 1 / 2;\n提交/补交时间是 1 月 1 日 24:00 前这个 stage 的 branch 最后一次触发 CI 的时间;\n更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。\n如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。\n\n\n1 月 1 日 24:00 及之后不接受补交,此 stage 的得分为 0。\n\n学术规范\n由于实验有一定难度,同学之间相互学习和指导是提倡的。\n对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。\n如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。\n我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。\n代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。\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/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:Python 框架无法正确输出三地址码?\nA:非常抱歉,框架中输出时有一个小错误。在 main.py 中,输出三地址码时,请使用 prog.printTo() 语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句:\nprinter = TreePrinter(indentLen=)\nprinter.work(prog)\n\n \nQ: Python框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。\n经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错:\nutils.error.IllegalArgumentException: error: encounter a non-returned basic block\n请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?\nA:Python 框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。\n \nQ:我怎样才能知道我的提交通过了所有测试用例?\nA:在 2021.10.5 更新评测脚本之后,现在通过 CI 结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。本地测试不受此次更新影响,因此更新本地的测试仓库 submodule 不是必须的。\n \nQ:实验指导书中step4的目标代码生成部分,给出的IR对应汇编指令不正确,修改了原有寄存器的值?\nA:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!\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 \nQ:Python 框架寄存器分配中 allocRegFor 函数实现有错误?\nA:请修改 bruteregalloc.py 中第 119 行处随机数生成的范围,将上界改为 len(...) - 1,避免溢出。感谢孟本源同学!\nreg = self.emitter.allocatableRegs[\n random.randint(0, len(self.emitter.allocatableRegs) - 1)\n]\n\nQ: Parser Stage中的test-parser-stage.sh无法正常使用?\nA: 发布作业时打包有失误,请使用原有的minidecaf-tests中的check.sh测试脚本,将parser-stage的前端接入到原先的中后端来进行测试。\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 中搭建开发环境。对于 C++ 实验框架,你需要安装或保证如下软件满足我们的要求:\n\npython 3.9\n框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性并仅在这一版本下经过测试。请保证你所使用的 python 版本高于此版本。\nLinux 环境下安装 Python 3.9 可以尝试如下命令:\n> sudo add-apt-repository ppa:deadsnakes/ppa\n> sudo apt update\n> sudo apt install python3.9\n\n此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。\n框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse:\n$ python3.9 -m pip install -r ./requirements.txt\n\n\nargparse\n框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。\n\nply\nply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了 ply 的文档。\n\n\n助教推荐使用类似 Miniconda 的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用 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 | backend/asmemitter.py | backend/subroutineemitter.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 循环实现,同学们可以参考着完成 do-while 和 for 循环的实现。\n下面我们列出了所有框架中已经完成的特性:\n\nStep1 中我们提供了所有实现。\nStep2 中我们提供了取负运算的实现。\nStep3 中我们提供了加法运算的实现。\nStep5 中我们提供了基础数据结构——符号表的实现。\nStep6 中我们提供了 if 语句的实现。\nStep7 中我们提供了基础数据结构——作用域栈的实现。\nStep8 中我们提供了 while 循环以及 break 语句的实现。\n此外,我们提供了 Step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。\n\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 2022;\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(2022) Comma RBrace\n并被 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(2022)\n得到的这个 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。\n尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c)\n语义分析\n在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误:\n\nmain 函数是否存在。\n\nreturn 语句是否有返回值。\n\n返回值是否在 int 合法的范围内。\n\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 = 2022 # 为立即数2022分配一个临时变量\n return _T0 # 返回\n\n\n下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。\n\nfrontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。\nfrontend/utils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。提供给生成 TAC 程序流程的主要接口在 funcvisitor.py 中,若你增加了 TAC 指令,则需要在 FuncVisitor 类中增加生成该指令的接口。在本框架中,TAC 程序的生成是以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 FuncVisitor 来生成对应的 TAC 程序。除此之外的 TAC 底层类,同学们可以不作修改,也可以按照自己的想法进行修改。\n目标代码生成\n目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:\n\n如何将一个立即数装载到指定寄存器中?\nRISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2022,就是将立即数 2022 加载到寄存器 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, 2022 # 加载立即数2022到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 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的 NativeInstr 指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitEnd 方法生成每个函数的 RISC-V 汇编。\n细节呢?\n\n 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。这部分看着长其实不长(大家还是读一下吧)。\n\n为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从 2022 变成 -2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):\n首先,我们应该把 - 看作一个符号,而不应该将 -2022 看作一个整体,因为我们还可能遇到 -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(2022)\n看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 2022 这个数字是一个表达式, -2022 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。\n\n词法分析 & 语法分析\n 在 frontend/lex/lex.py 里加入新的 lex token 定义,以便lexer可以解析 -:\n t_Minus = \"-\"\n\n 在 ply 的 lexer 中,定义的新 token 需要以 t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。\n 在 frontend/ast/tree.py 里加入新的 AST 节点定义(以及相应的其它东西):\n class 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:\n def 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\n def p_unary_expression(p):\n \"\"\"\n unary : Minus unary\n \"\"\"\n p[0] = tree.Unary(UnaryOp.Neg, p[2])\n\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\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.visitorXXX的调用,前者是在遍历AST时调用的,后者是在 FuncVisitor 类中调用的。并且希望大家一定要对着代码看。\n Program\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(2022)\n 继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序, TACGen.transform 会先visit main函数,代码贴了一些在这里:\n def transform(self, program: Program) -> TACProg:\n mainFunc = program.mainFunc()\n pw = ProgramWriter([\"main\"])\n # The function visitor of 'main' is special.\n mv = pw.visitMainFunc()\n\n mainFunc.body.accept(self, mv)\n # Remember to call mv.visitEnd after the translation a function.\n mv.visitEnd()\n\n # Remember to call pw.visitEnd before finishing the translation phase.\n return pw.visitEnd()\n\n 你可以不用关注pw是什么,假装它是一个容器,我们 visit 函数时带上这个容器,将翻译好的函数放进去。visitMainFunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵AST树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainFunc.body.accept(self, mv) 而函数体首先在一个block中(花括号括起来的部分),因此会先进入 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) 这里进入了FuncVisitor.visitLoad:\n def visitLoad(self, value: Union[int, str]) -> Temp:\n temp = self.freshTemp()\n if isinstance(value, int):\n self.func.add(LoadImm4(temp, value))\n else:\n self.func.add(LoadStrConst(temp, value))\n return temp\n\n self.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022 load到一个虚拟寄存器 temp 中。剩下的部分,对着代码和上面的AST看一下相信大家也知道发生了什么了。\n 到此为止我们得到的TAC代码如下:\n FUNCTION:\n _T0 = 2022\n _T1 = - _T0\n return _T1\n\n 现在尝试运行 python main.py --input example.c --tac 看看效果吧。\n\n怎么从TAC到汇编代码\n 这一步是 Asm.transform 函数(backend/asm.py)处理的,Asm.transform 接受一个 TAC 输入,输出汇编代码。\n def transform(self, prog: TACProg):\n analyzer = LivenessAnalyzer()\n\n for func in prog.funcs:\n pair = self.emitter.selectInstr(func)\n builder = CFGBuilder()\n cfg: CFG = builder.buildFrom(pair[0])\n analyzer.accept(cfg)\n self.regAlloc.accept(cfg, pair[1])\n\n return self.emitter.emitEnd()\n\n 我们先忽略LivenessAnalyzer和CFG以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectInstr,selectInstr函数中,我们也采用了visitor模式遍历指令序列,对于_T0 = 2022和_T1 = - _T0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return _T1翻译过程发生了什么。\n 直接看visitReturn函数,我们这里的return是一个带返回值函数的return\n def 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通过汇编指令先转换为True或False,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。\n 物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。\n 现在尝试运行 python main.py --input example.c --riscv 看看效果吧。\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你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\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 中,我们引入了一元运算,因此需要引入新的抽象语法树节点:\nPython 框架\n\n\n\n节点\n成员\n含义\n\n\n\n\nUnary\n操作数 operand,运算类型 op\n一元运算\n\n\n\n注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。\nC++ 框架\n\n\n\n节点\n成员\n含义\n\n\n\n\nNegExpr\n操作数 e\n一元负号\n\n\nNotExpr\n操作数 e\n逻辑取反\n\n\nBitNotExpr\n操作数 e\n按位取反\n\n\n\n这些语法树节点,在 C++ 的 parser 写语法规则时,可以都用 Expr 符号来表示,正如 NegExpr 和 AddExpr 语法树节点对应的语法规则里都是 Expr 符号。\n语义分析\n由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。\nC++ 框架\n由于 C++ 框架中不同运算对应着不同的 AST 节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。\nPython 框架\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关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考 gcc 的输出结果。例如,你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 选项):\nint foo(int x) {\n return !x;\n}\n\n不出意外你会获得如下结果:\nfoo:\n seqz a0,a0\n ret\n\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你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导\n本实验指导使用的例子为:\n1+3\n\n词法语法分析\n在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点:\nPython 框架\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\nC++ 框架\n类似step2,对每种二元运算实现了不同的语法树节点\n\n\n\n节点\n成员\n含义\n\n\n\n\nAddExpr\n左操作数 e1,右操作数 e2\n加法运算\n\n\nSubExpr\n左操作数 e1,右操作数 e2\n减法运算\n\n\nMulExpr\n左操作数 e1,右操作数 e2\n乘法运算\n\n\nDivExpr\n左操作数 e1,右操作数 e2\n除法运算\n\n\nModExpr\n左操作数 e1,右操作数 e2\n取模运算\n\n\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你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导\n本实验指导使用的例子为:\n1\n词法语法分析\nPython 框架\n本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。\nC++ 框架\n新引入的每个运算都有一个对应的语法树节点.\n\n\n\n节点\n成员\n含义\n\n\n\n\nLesExpr\n左操作数 e1,右操作数 e2\n小于\n\n\nGrtExpr\n左操作数 e1,右操作数 e2\n大于\n\n\nLeqExpr\n左操作数 e1,右操作数 e2\n小于等于\n\n\nGeqExpr\n左操作数 e1,右操作数 e2\n大于等于\n\n\nEquExpr\n左操作数 e1,右操作数 e2\n等于\n\n\nNeqExpr\n左操作数 e1,右操作数 e2\n不等于\n\n\nAndExpr\n左操作数 e1,右操作数 e2\n逻辑与\n\n\nOrExpr\n左操作数 e1,右操作数 e2\n逻辑或\n\n\n\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你需要:\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 = 2023;\n return x;\n}\n\n词法语法分析\n针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供):\n\n\n\n节点\n成员\n含义\n\n\n\n\nIdentifier\n名称 val\n标识符(用于表示变量名)\n\n\nTInt\n无\n整型\n\n\nAssignment\n同 Binary\n赋值运算\n\n\n\n请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。\n语义分析\n从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。\n在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。\n类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:\nint main() {\n int x = 2023;\n return x + y;\n}\n\n那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2023; 这条语句后已经为其定义),而 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 = 2023\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 = 2023; 这条语句时,中间代码先把立即数 2023 加载到临时变量 _T0 中,然后再把 _T0 的值赋给临时变量 _T1,此时 _T1 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T1。例如,测例中直接用返回 _T1 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T1 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。\n请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。\n目标代码生成\n本节指导用例对应如下 RISC-V 汇编代码:\n .text\n .global main\nmain:\n li t1, 2023\n mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令\n mv a0, t0\n ret\n\n简单的启发式寄存器分配算法\n在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。\n实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 step7 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。\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\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你需要:\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对于Python:\n\n\n\n节点\n成员\n含义\n\n\n\n\nBlock\n子语句列表 children\n语句块\n\n\n\n对于C++:\n\n\n\n节点\n成员\n含义\n\n\n\n\nCompStmt\n子语句列表 stmts\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不需要新增新的中间代码指令。\nPython 框架\nPython 框架比较特殊,需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。\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你需要:\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 提供了与中间代码中 BEQ 和 JMP 类似的指令:\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 | 'do' statement 'while' '(' expression ')' ';'\n | 'break' ';'\n | 'continue' ';'\n\n\n\n循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。\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针对 for 和 break 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nFor\n初始语句 init,循环条件 cond,更新语句 update,循环体 body\nfor 循环语句\n\n\nBreak\n无\nbreak 语句\n\n\n\n语义分析\n本步骤语义分析阶段的处理方式和 Step6 中的 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 循环、do-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 标签,这样才能确定每一条 continue 和 break 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。\nutils/tac/funcvisitor.py 里的 FuncVisitor 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 continue/break 标签的维护。\n目标代码生成\n由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。\n思考题\n\n将循环语句翻译成 IR 有许多可行的翻译方法,例如 while 循环可以有以下两种翻译方式:\n\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第二种:\n\ncond 的 IR\nbeqz BREAK_LABEL:条件不满足就终止循环\nlabel BEGINLOOP_LABEL:开始下一轮迭代\nbody 的 IR\nlabel CONTINUE_LABEL:continue 跳到这\ncond 的 IR\nbnez BEGINLOOP_LABEL:本轮迭代完成,条件满足时进行下一次迭代\nlabel BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿\n\n从执行的指令的条数这个角度(label 指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?\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 | 'do' statement 'while' '(' expression ')' ';'\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 循环和 do 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。\n8.2 while 循环的控制表达式的求值在循环体的每次执行之前。\n8.3 do 循环的控制表达式的求值在循环体的每次执行之后。\n8.4 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。\n8.5 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。\n8.6 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 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注意:从 step 9 开始,MiniDecaf 会引入 runtime,部分函数在源代码中只有声明,其定义在 runtime 编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。\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);\nint main() { return func(1, 2); }\nint func(int x, int y) { return x + y; }\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那么语义检查时应当报错。\nPython 框架\nfrontend/symbol/funcsymbol.py 里实现了函数符号。\nC++ 框架\nsymb/symbol.hpp 中 Function 类表示函数符号。scope/scope.hpp 中,FuncScope 表示函数作用域。\n中间代码生成\n为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nPARAM\nT0\n将 T0 设置为下一个参数\n\n\nCALL\nLABEL\n调用函数 LABEL\n\n\n\n假设我们有若干个参数,可以依次使用 PARAM 命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量 _T0, _T1 ... 中。比如我们有这样一段 TAC 程序:\nPARAM A\nPARAM B\nPARAM C\nXX = CALL XXX\n\n那么,在进入 XXX 函数时,相当于执行了:\n_T0 = A\n_T1 = B\n_T2 = C\n\n因此,示例可以对应如下的 TAC 程序:\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在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。\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 sw a0, 0(sp)\n sw a1, 4(sp)\n lw t0, 0(sp)\n lw t1, 4(sp)\n add t2, t0, t1\n mv t0, t2\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接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。\n函数调用\n程序代码里的一个函数调用,包含了下面一系列的操作:\n\n准备参数,完成传参。\n(汇编)保存 caller-saved 寄存器。\n执行汇编中的函数调用指令,开始执行子函数直至其返回。\n(汇编)恢复 caller-saved 寄存器。\n拿到函数调用的返回值,作为函数调用表达式的值。\n\n上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。\n调用约定\n实验测例中有与 gcc 编译的文件相互调用的要求,因此,大家需要实现标准调用约定。\nRISC-V 的标准调用约定(gcc 使用的、和 MiniDecaf 相关的)\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关于测试样例:\n我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过 gcc 链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的 runtime.c,runtime.h,runtime.s 来查看我们预定义的函数。\nC++框架中:\n\n框架中会在生成的汇编中在函数名前面加上下划线 _,如果链接时出现问题请检查是不是下划线导致的。\n\n由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理Liveout集合,以下面三地址码为例:\n func:\n _T2 = ADD _T0, _T1\n return _T2 # 参数 x 和 y 分别对应 _T0, _T1\n main:\n _T0 = 1\n PARAM _T0 # 将 _T0 的值作为参数 x 放入a0寄存器\n _T1 = 2\n PARAM _T1 # 将 _T1 的值作为参数 y 放入a1寄存器\n _T3 = CALL func # 调用函数\n return _T3\n\n 在PARAM _T0这一行,我们要将虚拟寄存器T0作为参数x放入物理寄存器a0,假设此时T0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器T2,那么要先将T2 spill到栈中。\n 即此时需要:\n\n将T2放入栈中(即:spill T2)\n从栈中将T0取出放入a0寄存器中\n但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设T0在此后不再被用到,那么T0就不在当前位置的liveout集合中,也就是说在spill寄存器时T0可以被覆盖掉,这可能导致T2被spill到了T0所在的位置,覆盖了T0。\nvoid RiscvDesc::spillReg(int i, LiveSet *live) {\n std::ostringstream oss;\n Temp v = _reg[i]->var;\n if ((NULL != v) && _reg[i]->dirty && live->contains(v)) {\n RiscvReg *base = _reg[RiscvReg::FP];\n if (!v->is_offset_fixed) {\n _frame->getSlotToWrite(v, live); // 此处选择了一个栈上的位置用于保存寄存器\n }\n ... ...\n }\n ... ...\n}\n\n因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做:\nvoid RiscvDesc::setRegParam(Tac *t, int cnt) {\n // 此处助教使用Tac的op0来存放需要当作参数的虚拟寄存器\n // 先将op0加入当前的LiveOut集合,这可以保证spillReg时候不会将op0覆盖\n t->LiveOut->add(t->op0.var);\n spillReg(RiscvReg::A0 + cnt, t->LiveOut);\n int i = lookupReg(t->op0.var);\n if(i \n\n\n\n\n思考题\n\nMiniDecaf 的函数调用时参数求值的顺序是未定义行为。试写出一段 MiniDecaf 代码,使得不同的参数求值顺序会导致不同的返回结果。\n为何 RISC-V 标准调用约定中要引入 callee-saved 和 caller-saved 两类寄存器,而不是要求所有寄存器完全由 caller/callee 中的一方保存?为何保存返回地址的 ra 寄存器是 caller-saved 寄存器?\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 | 'do' statement 'while' '(' expression ')' ';'\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你需要:\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 = 2022;\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 代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。\n\n在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。\n\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 2022\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 | 'do' statement 'while' '(' expression ')' ';'\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你需要:\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] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。\nPython 框架\nfrontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。\n有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。\nC++ 框架\ntype/type.hpp 中的 ArrayType 表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。\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在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。\n\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 | 'do' statement 'while' '(' expression ')' ';'\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\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 这样的函数来实现数组数组的清零,我们的运行时库中也提供了 fill_n 函数用来给数组批量赋值,你可以按照 RISC-V 标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看 runtime.h 和 runtime.c 来了解 fill_n 函数的实现,其使用方式和功能同 C++ 标准库中的 std::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需要注意的是:在C++框架中,在生成函数时,编译器会自动给函数名前面加上下划线,来防止名字冲突,所以如果出现链接错误时,请先检查生成的汇编代码的函数名称和所要调用的函数名称是否一致。\n思考题\n\n作为函数参数的数组类型第一维可以为空。事实上,在 C/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?\n\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 | 'do' statement 'while' '(' expression ')' ';'\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"},"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","(k","+","./reports/.pdf,比如","./reports/stag",".gitlab","/","0;","0。","1","1.","1.pdf。","10%","10%。","10%)。","10%,对思考题的回答占","11","12","1;","20%","2022","2023","22/minidecaf","24:00","2;","4","80%","9","=",">","a[(l+r)/2];","a[],","a[i]","a[i];","a[j]","a[j];","bison)掩盖了很多语法分析的实现细节。","branch","branch,当切换到一个新的","break;","c","c++","ci","ci.yml","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","ci,这不会对你的提交/补交产生影响。","commit","compiler:","decaf","decaf,我们在新的且更简单的语言规范下复用了","generator(如","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github),托管至私有仓库的请不要给其他同学任何访问权限。","http://scheme2006.cs.uchicago.edu/11","https://git.tsinghua.edu.cn/compil","int","j","j)","j);","k","l)","l,","l;","merg","minidecaf","nora","nqcc","p","p)","parser。","pdf","pipelin","prepare.sh","push","python","qemu/spik","qsort(a,","qsort(int","r)","r;","retri","return","risc","sandler","stage","stage1","stage3","stage4","stage5","stage,每个","step","step0","step1","step10)。在这个","step12)。在这个","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step4)。在这个","step6","step6)。在这个","step8)。在这个","step。每个","step,共包含","u","u;","v","write","{","}","↩","上实现时,你可以用","下的","个","个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡","个步骤(其中","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你将实现常量操作(加减乘除模等)。","中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。","中你将支持声明全局变量,并且支持函数的声明和调用。","中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。","中你的代码会得到不一致的结果,请联系助教。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中描述了如何运行","中,你将支持数组,包括全局数组和局部数组。","为","为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评","为环境配置和框架学习,无需进行编程,不计入成绩。","为环境配置,主要是","了。","代码编译到","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","会对应于一个","你做了哪些工作(即你的实验内容)","你的学号","你的学号姓名","修改了实验指导的排版、内容,删除了c++框架部分内容,增加了更多的指导内容。","修改了部分实验顺序,期望降低同学们实验的难度。","假设","全局变量和函数(step9","关于名字由来,由于往年的实验叫","其中,stage0","具有代表性的例子介绍它的整个编译流程。在之前","删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。","到远端仓库的时间。并且,你也可以随意地","前每个","前补交,此","前这个","助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了","包含多个","参考资料","及之后不接受补交,此","及之后,至","及触发此次","反复运行","变量和语句(step5","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持","和手工语法分析器为","在","块语句和循环(step7","备注","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你认为成绩有问题,请及时与助教联系。","如果在多次","学术规范","实现","实验思路指导与问答墙","实验报告中需要包括:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验框架介绍视频","实验框架相对于2022年的实验框架进行了以下修改:","实验概述","实验环境虚拟机下载链接(使用方法参见网络学堂公告)","实验简介","实验起点和基本要求","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于每个阶段(stage):","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的","常量表达式(step2","年","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。","得分乘以","我们以","我们只接受","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将由易到难完成","所作的修改。","指导书上的思考题","提交/补交时间是","数组(step11","日","日(第十六周周日)24:00","是一个","是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。","是某个","更具体来讲是创建","更新的时间,这几乎等于你","最后一次触发","最后一次触发的","月","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本次实验一共设置","来合并前一个","格式的实验报告,其提交方式是放在仓库的","框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","每个","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","测试中看到。","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","的","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的实验报告需要放在","的帐号名后,助教会给每个人建立一个私有的仓库,url","的得分为","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的截止时间;","的文档都将以如下形式组织:首先我们会介绍当前","的时间,而不是","的时间;","的期末考试成绩)。","的编译器框架,所以今年的实验就叫","相关资源","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","程序代码编译成","第一个编译器(step0","简要叙述,为了完成这个","组织如下:","组织实验,各个","组织文档,每个","编译实验","编译实验分为多个","补交政策","设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser","评分会以","评分标准","语法规范的手工","语言实现","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的完整编译器,能够把","语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。","语言相同。","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。","课程问答墙","这个","里的实验报告为准,详见补交政策。","重新设计”的过程,一步步实现从简单到复杂的","需要用到的知识点,其次我们会以一个当前",",将作业提交到那个仓库即可。"],"docs/step0/errate.html":["./requirements.txt","1","1)","1.pdf。","119","1,避免溢出。感谢孟本源同学!","2021.10.5","3.9","=","]","_t1","a:","allocregfor","a:","a:python","a:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!","a:在","a:如果你安装了多版本的","a:请修改","a:非常抱歉,框架中输出时有一个小错误。在","basic","block","branch","bruteregalloc","bruteregalloc.pi","cfg,可以参见","ci","encount","error:","git.tsinghua","instal","len(...)","len(self.emitter.allocatableregs)","m","main.pi","multi_nesting.c","non","parser","pass。","pdf","pip","print","printer","printer.work(prog)","prog.printto()","python3.9","python框架","python,使用","q:","q:","q:python","q:使用","q:如何提交课程报告?","q:实验指导书中step4的目标代码生成部分,给出的ir对应汇编指令不正确,修改了原有寄存器的值?","q:我怎样才能知道我的提交通过了所有测试用例?","r","random.randint(0,","reg","reports/.pdf,比如","reports/stag","return","self.emitter.allocatableregs[","stage","stage.sh无法正常使用?","stage1","stage中的test","stage的前端接入到原先的中后端来进行测试。","step7","submodul","tests中的check.sh测试脚本,将pars","treeprinter(indentlen=)","utils.error.illegalargumentexception:","上,如","下的","不是必须的。","中第","中,由","中,输出三地址码时,请使用","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","函数实现有错误?","分支)。本地测试不受此次更新影响,因此更新本地的测试仓库","前就被释放了,后端会尝试到栈中寻找","勘误表","发布作业时打包有失误,请使用原有的minidecaf","命令无法正确安装依赖?","命令未必会对应","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","如果关于报告提交有任何问题,请及时联系助教。","安装依赖。","对应","并且不会找到,出现报错:","所对应的寄存器在","更新评测脚本之后,现在通过","最新的","格式提交到","框架寄存器分配中","框架无法正确输出三地址码?","框架的后端除了要修改指令选择部分之外,还需要修改基本块","法调试,发现是","版本的包管理器。请尝试使用","生成的以下中间代码无法成功生成目标代码。","的实验报告需要放在","的注释里给出的提示。","经过使用","结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","自己的仓库中,放在仓库根目录下的","行处随机数生成的范围,将上界改为","语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句:","请将实验报告以","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","这个"],"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.9",">","add","altern","apt","argpars","argparse:","c++","hints,如果你习惯在","instal","linux","m","miniconda","os)中进行开发。助教不推荐直接在","pip","pli","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了","ppa:deadsnakes/ppa","pylanc","python","python3.9","python,可以通过","r","repositori","requirements.txt,你可以通过","sudo","type","ubuntu,debain","unix","updat","vscode","window","wsl","下的","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","中搭建开发环境。对于","中进行开发的话同时推荐使用","以处理命令行参数。官方文档中提供了它的教程。","依赖包","关于操作系统,助教推荐使用","助教推荐使用类似","包列表文件","可以尝试如下命令:","命令修改","命令安装下文提到的","和","实验框架环境配置","实验框架,你需要安装或保证如下软件满足我们的要求:","或","框架使用了","框架本身在","框架里已经提供了需要的","此外,如果安装了多个版本的","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。","版本高于此版本。","环境下安装","环境(如","由于","的文档。","的新特性并仅在这一版本下经过测试。请保证你所使用的","的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用","的跨平台性,理论上也可以在","等),当然你也可以在类","系统环境(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/asmemitter.pi","backend/dataflow/","backend/reg/","backend/riscv/","backend/subroutineemitter.pi","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位整数存储,故","是一个与","是否正确就可以知道:是ast","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","此部分对应框架源码位置:","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编指令来翻译","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","生成中间代码","生成器和","生成汇编的话,为了支持","由于源语言(minidecaf)和目标语言(risc","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的形式表示(k表示变量的编号)。","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","目标平台汇编代码生成","目标平台汇编代码生成在","示例程序。请注意","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序由标签和指令构成:","程序编译到","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","类似的","类型和","类型检查","类型检查:各语句和表达式是否类型正确。","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器结构","缩小调试范围,通过把","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析程序位于","详细讨论。","语义分析","语法分析树的建立可以说明所输入的","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","课程实验的目标平台为","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输出成","还是","进行两遍扫描,分别完成以下的检查:","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","针对"],"docs/step1/provided.html":["6","break","step1","step2","step3","step5","step6","step7","step8","下面我们列出了所有框架中已经完成的特性:","中我们提供了","中我们提供了加法运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——作用域栈的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","和","已提供的语法特性","已经提供的语法特性","循环以及","循环实现,同学们可以参考着完成","循环的实现。","此外,我们提供了","语句的实现。","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。"],"docs/step1/example.html":["!,","\"","\"\"\"","#","&","&&","'main'","(body)","(children[0])","(expr)","(ident)","(op)","(ret_t)",",","...",".global",".text","0))","10;","10,我们将这类一元运算操作都称为","1;这样的语句,但是不会见到return","2022","2022;","2022和_t1","2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","2022,就是将立即数","32","8",":","=",">","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","__init__(self,","_t0","_t0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return","_t1","_t1翻译过程发生了什么。","`p_`","a0","a0,","a1","accept","analyz","analyzer.accept(cfg)","asm.transform","ast","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","backend","backend/asm.pi","backend/riscv","befor","block","builder","builder.buildfrom(pair[0])","call","cfg","cfg:","cfgbuilder()","class","comma","def","docstr","ebnf","else:","emitend","example.c","expr","express","expression):","finish","frontend.parser.parser(位于","frontend/ast/tree.pi","frontend/ast/visitor.pi","frontend/lex/lex.pi","frontend/lexer/lex.py。ast","frontend/lexer/ply_lexer.pi","frontend/parser/ply_parser.pi","frontend/parser/ply_parser.py)来完成语法分析的工作,而这一语法分析器会自动调用位于","frontend/parser/ply_parser.py,而词法的定义位于","frontend/tacgen/tacgen.pi","frontend/typecheck/namer.pi","frontend/utils/tac","func","function","function.","function:","funcvisitor","funcvisitor.pi","gcc","grammar","identifier(\"main\")","if;这样的语句,因为","input","instr.valu","instr.value))","instr:","int","int):","integer(2022)","intliteral(2022)","isinstance(value,","lalr","lalr(1)","lbrace","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","li","livenessanalyzer()","load到一个虚拟寄存器","lparen","main","main()","main(){","main.pi","main.py,它通过调用","main:","mainfunc","mainfunc.body.accept(self,","main函数,代码贴了一些在这里:","minidecaf","minu","mv","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitend","mv.visitend()","mv.visitload(expr.value)","namer.transform","namer.transform,","nativeinstr","node","none:","op:","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])","pars","parser","parser.pars","parser.parse(...)","pass","pass。下面,我们将指出,step1","phase.","pli","ply),其使用方法与","primari","prog.funcs:","prog:","program","program)","program.mainfunc()","program:","programwriter([\"main\"])","pw","pw.visitend","pw.visitend()","pw.visitmainfunc()","python","rbrace","readcod","rememb","ret","return","return)","risc","riscv","riscvasmemitter.pi","riscvsubroutineemitt","rparen","rule:","selectinstr","self.emitter.emitend()","self.emitter.selectinstr(func)","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.func.add(loadstrconst(temp,","self.regalloc.accept(cfg,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","special.","step1","step_pars","stmt.expr.accept(self,","str])","t0","t0,","t0,这里的逻辑与需要将t1、t0通过汇编指令先转换为true或false,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生","t1","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","tac","tacgen.transform","tacinstr.pi","tacprog):","tacprog:","temp","temp:","tint","token","transform(self,","translat","tree.unary(unaryop.neg,","typer","typer.pi","typer.transform","typer.transform如果没有这两个步骤,以下代码能正常编译吗,为什么?","unari","unary(expression):","unary,其中p[0]代表的就是第一个unary,","unary,那么","union[int,","utils/riscv.pi","v","value))","value:","visit","visitblock","visitload(self,","visitor","visitreturn(self,","x","x同样也是表达式,其会生成一个值。而带返回值的","y","yacc","yacc(简称","{","|","}","~","~a,","。","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","下实现了各种","下面我们将通过一个简单的","下面的描述中一定要记得区分accept和直接对于mv.visitorxxx的调用,前者是在遍历ast时调用的,后者是在","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中。剩下的部分,对着代码和上面的ast看一下相信大家也知道发生了什么了。","中会先调用","中你只需要关注","中加入相应的分派函数。","中只有","中我们是如何实现符号表构建","中的","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中通过一遍","中间代码生成","中,a0","中,定义的新","中,若你增加了","为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从","为立即数2022分配一个临时变量","主函数入口符号","也就是","什么是","代码段","以","以及","会先visit","位","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位立即数到指定寄存器中,其中","你可以不用关注pw是什么,假装它是一个容器,我们","你可能会觉得,这一步不就是将","你应该就能看到类似的输出。(记得自己写一个example.c)","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数会对不同类型的","函数入口标签","函数时带上这个容器,将翻译好的函数放进去。visitmainfunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵ast树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainfunc.body.accept(self,","函数是否存在。(frontend/typecheck/namer.py:35)","函数的","函数)分别使用一个","函数,这个函数对于在block中的所有子节点调用了child.accept(self,","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到此为止我们得到的tac代码如下:","加载到寄存器","加载立即数2022到t0寄存器中","即可。具体来说","又对于","变为","变成","向","和","和类型检查","因此我们希望生成的","在","在实际操作中,我们遍历","在实验框架中,我们使用的是","在我们的实验要求中,返回值均是单个","在我们的框架中,从","在词法分析","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","声明全局符号","处理,并被转化为如下形式的一个","如何将一个立即数装载到指定寄存器中?","如何设置返回值?","字节流","它将在后续的","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义,以便lexer可以解析","实现,称为","实验框架中关于目标代码生成的文件主要集中","寄存器中,然后在后面加上一条","将返回值放到a0寄存器中","尝试运行","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","并不是一个会产生值的表达式)。","并在","并被","库来实现这一点。yacc","应当变为如下形式:","底层类,同学们可以不作修改,也可以按照自己的想法进行修改。","开头以被","当中,我们只需要提取","当程序读入程序的字符流之后,它首先会被","形式的语法规范生成相应","得到的这个","快速入门","怎么从","怎么从tac到汇编代码","思考题","我们先忽略livenessanalyzer和cfg以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectinstr,selectinstr函数中,我们也采用了visitor模式遍历指令序列,对于_t0","我们的框架现在对于main函数没有返回值的情况是在哪一步处理的?报的是什么错?","我们能发现","所用的方法就是的","所需的底层类。其中","扫描完成","指令。提供给生成","指令即可完成函数返回的工作。","指令来支持加载一个","指令选择相应的","指令(即所有操作数都已经分配好寄存器的指令),最后通过","指令,则需要在","指令,同学们可以在必要时修改或增加","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","提供了","文件夹下,step1","文件夹中的","方法对每个函数内的","方法生成每个函数的","时","时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。","时,遇到的子节点是","是","是一个根据","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","有一些差异。","本步骤主要涉及的语法为主函数和","来生成对应的","根据优化等级不同会有数百个不等的","模式。","模式有所了解,或者假设你已经知道在遍历","模式遍历","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","汇编。","汇编代码,并通过","汇编代码:","流:","测试用例,一起走过它的编译全流程:","源文件","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","现在尝试运行","生成。和语义分析一样,这部分也使用了","生成的","的","的一个纯","的主函数编译为","的主函数编译全流程:","的使用,结合我们的文档,来快速上手","的入门,但这不是必须的。","的处理。","的实现,大家可以直接运行通过","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的形式提供。","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的转换经过了","的输出。","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","的?","目录下实现了生成","目标代码生成","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","直接看visitreturn函数,我们这里的return是一个带返回值函数的return","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","程序。除此之外的","程序流程的主要接口在","程序的入口点在","程序的生成是以函数为单位,对每个函数(step1","程序,","等符号都可以作为一元运算符出现,比如!x,","类中增加生成该指令的接口。在本框架中,tac","类中调用的。并且希望大家一定要对着代码看。","类来通过","细节呢?","继续看上述例子,我们先关注只有","综上所述,我们上述中间代码翻译成如下","编译实验框架,我们给大家的代码框架中已经包含所有","而函数体首先在一个block中(花括号括起来的部分),因此会先进入","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","节点的定义位于","表示寄存器名,","表示立即数值,如:li","识别。","词法分析","语义分析","语义分析步骤中,我们要遍历","语义计算中被用到。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句返回的常量,为之分配一个临时变量,再生成相应的","语句需要一个值,我们可以理解为带返回值的","语句,完成本步骤之后,你的编译器将支持将一个仅有","语法分析","语法分析器直接产生的实际上是一棵语法分析树,而构建","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","读内容","调用不同的visit","调用了","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","转化为如下形式的","输入,输出汇编代码。","返回","返回指令即可。不难看出,本例对应的三地址码为:","这一函数里","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步是","这个数字是一个表达式,","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样的奇怪的","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这部分的工作流程如下:","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里进入了funcvisitor.visitload:","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","通过例子学习,一个仅有","都是继承","里加入新的","需要以","首先,我们应该把",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022",":"],"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":["!。","'|'!'|'~')","('","0","1。","1,!!2",":","==","c","express","int","integ","int;关于逻辑非,只有","stage","step2","step2:一元运算符","unari","|","~","~0","、按位取反","三个操作的语义和","中,我们要给整数常量增加一元运算:取负","以及常识相同,例如","以及逻辑非","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","变成:","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","的定义,从","稍微一提,关于按位取反,我们使用补码存储","简要叙述,为了完成这个","表示逻辑假,其他的","语法上,我们需要修改","都是逻辑真。"],"docs/step2/example.html":["!x;","0","1","1。在生成过程中,首先使用","2147483647","=","_t0","_t1","a0,a0","addexpr","ast","bitnotexpr","c++","e","elf","expr","foo(int","foo.c","foo.s(记得加","foo:","gcc","int","li","mabi=ilp32","march=rv32im","minidecaf","neg","negexpr","notexpr","o","o3","op","operand,运算类型","parser","python","ret","return","risc","riscv64","s","seqz","step1","step2","t0","t0,","t1,","tac","unari","unknown","v","visitor","x)","{","}","~!这三个单目运算符和从","。","一元负号","一元运算","不出意外你会获得如下结果:","与","中实现的整型常量越界检查。","中间代码生成","中间表达指令为例,risc","中,我们只需为","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考","写语法规则时,可以都用","到","参数","含义","和","因此,测例可以翻译成如下的中间代码:","在","在语法树上对应父","子两个结点,父结点为取负操作,子结点为常量","实验指导","实验指导。本实验指导使用的例子为:","对参数取负","开始,语法树上出现了各种运算操作结点。在生成","思考题","总结","成员","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们按照上一节划分的编译器阶段,分阶段给出","指令","指令。","指令与其对应,因此上述中间代码可以翻译为如下的","指令来完成翻译工作。以","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","按位取反","按照上文说的,","提示:发生越界的一步计算是","操作数","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","框架","框架中不同运算对应着不同的","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","汇编","汇编中有","汇编:","没有特别需要修改的地方。","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","由于","由于现在","的","的输出结果。例如,你可以通过","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","目标代码生成","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","程序。","符号。","符号来表示,正如","编译如下程序来了解如何翻译逻辑非运算符到","节点","节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。","范围内的非负整数,使得运算过程中发生越界。","表达式,只使用","词法语法分析","语义分析","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语法树节点对应的语法规则里都是","请注意,tac","这些语法树节点,在","选项):","通过例子学习","逻辑取反","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的"],"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":["%","'('","')","')'","'|'~'|'!')","(","('","('*'|'/'|'%')","('+'|'",")。","*、整除","+、减","/、模","1+2*(4/2+1)","7。",":","==","addit","c","c17","express","expression,变成","integ","multipl","primari","stage","step3","step3:加减乘除模","unari","|","、乘","以及常识相同,例如","以及括号","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","我们要增加的是:加","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","标准草案保持一致","简要叙述,为了完成这个","语法上我们继续修改"],"docs/step3/example.html":["#includ","/","0;","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","1","1+3","2","3","32","64","=","_t0","_t0,","_t1","_t2","add","addexpr","arm)中和","b","b);","binari","c++","divexpr","e1,右操作数","e2","identifi","int","kind","lexer","lexer(或","lhs,右操作数","li","main()","modexpr","mulexpr","name","op","parser)一些信息,最经典的例子是","printf(\"%d\\n\",","problem”。","python","qemu","return","rhs,运算类型","risc","riscv","step2","step2。","step3","subexpr","t0,","t0,t1","t1","t1,","t2,","token","v","x86","{","}","“typedef","不知道这点(parser","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","中间代码生成","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","乘法运算","二元运算","但有时,可能需要后续阶段告诉","作用","减法运算","加法运算","参数","取模运算","右操作数;","同","含义","和","因此,测例可以翻译成如下的中间代码:","在","实验指导","对有兴趣的同学:虽然","将两个参数相加","左操作数","左操作数;","思考题","总结","意义不同,但","成员","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","或","才知道),所以它们都会用同样的","指令","指令来完成翻译工作。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","本实验指导使用的例子为:","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","框架","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","的","目标代码生成","目标代码生成步骤的关键点与","相同,针对中间代码指令,选择合适的","类似step2,对每种二元运算实现了不同的语法树节点","节点","表示。","词法语法分析","语义分析","请注意,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":["!=","&&","&&、逻辑或","'&&'","'||'","('=='|'!=')","('|'>'|'|'>=')","1=2","1)。",":","==,",">,","addit","c","equal","express","logical_and","logical_or","relat","stage","step4","step4:比较和逻辑表达式","|","||","中逻辑运算符","为","以及常识相同,例如","任务概述","但特别注意,c","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","我们要增加的是:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","新特性的语义、优先级、结合性和","是逻辑真(int","有短路现象,我们不要求。","比较大小和相等的二元操作:、、>=,","简要叙述,为了完成这个","逻辑与"],"docs/step4/example.html":["&&","1","2",";","=","_t0","_t0,","_t1","_t2","andexpr","c","c++","d,","d;","e1,右操作数","e2","equexpr","gcc","geqexpr","grtexpr","ir","land","leqexpr","lesexpr","li","lor","lt","minidecaf","neqexpr","orexpr","python","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'","'{'","'}'","('='",":","assign","declar","express","expression)?","expression?","function","identifi","integ","logical_or","main","primari","stage","statement","statement*","step5:局部变量和赋值","type","|","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","函数内部可以包含多条语句和声明了。","变量的使用(读取/赋值)","变量的声明","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","栈帧","此外,我们的","的改动如下:","的概念,并介绍它的布局。","简要叙述,为了完成这个","语法上,step5","这一步我们终于要增加变量了,包括:"],"docs/step5/example.html":["\"a\"","#","#includ","+",".global",".text","0;","0;定义的,g(a)中的a是上一行的let","16","1;","2023","2023;","2;","3","32","3;","4","4;","4,即可得到","5","5;","=","_t0","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t1","_t1,","_t1。例如,测例中直接用返回","_t1,此时","_t2","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","a0,","accept:根据每个函数的","add","addi","allocforloc:每一条指令进行寄存器分配。","allocregfor:根据活跃变量信息决定为当前","assign","ast","b","backend/reg/bruteregalloc.pi","basicblock(基本块)内的指令进行寄存器分配。","binari","bind:将一个","c","calcul","calculate()","calculate();","d","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","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,并恢复","step11","step5","step6","step7","step9","symbol.pi","t0","t0,","t0,t1","t1","t1,","tac","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","tint","unbind:将一个","v","val","x","x;","y","y;","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","{","}","一个例子","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个通用寄存器,在这种情况下,我们无法将","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中间代码生成","中,主要有以下几个函数:","中,变量符号的定义里有该变量对应的","中,我们会将左值的范围进一步包括数组元素。","中,然后再把","临时变量对应起来。","临时变量成员。","临时变量的赋值","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为符号类的基类,varsymbol.pi","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","介绍,在当前的步骤不需要考虑)。","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","代替了返回变量","代码(你不需要精确了解它的含义,大致理解即可):","位整数,因此,我们可以把","保存在寄存器中,e","保存在栈帧中,因此需要分配","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","其中f(a)中的a是上一行的let","函数中定义名为","函数中所有出现过的变量符号即可。","函数作用域对应的单张符号表即可。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数执行","函数的栈帧,并且集中于临时变量的存储和加载。","函数调用","函数,将返回地址压入栈中。","函数,直到","到","加载到临时变量","参数","可以在符号表中找到(我们在扫描","同","名称","含义","和","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在实验框架中已经给出寄存器分配算法的代码,集中在","在扫描到","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在这个示例中,我们在","型,而","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","如果","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节的栈帧空间。sp","完备问题(可以从","实验指导","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","寄存器中,请写出一段","对应到框架代码上:","对应的临时变量。每当在","对应的符号。符号","对应的结点时报错。","对象,用以维护","局部变量和","已经成为了变量","思考题","总结","成员","我们使用","我们假定当前栈帧的栈顶地址存储在","我们首先来看本节指导用例所对应的中间代码:","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","指令","指令来翻译中间表示里的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令(例如","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","整型","无","无法找到,因此编译器需要在扫描到","时能快速找到","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","本实验指导使用的例子为:","本节指导用例对应如下","标识符(用于表示变量名)","栈帧","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","汇编中","汇编代码,将栈帧空间扩大","汇编代码:","的“替身”。每次需要用到变量","的值。因此,为了在后续使用变量","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,然后将返回地址弹出栈中,跳转到返回地址。","的全局变量,同时在","的地址。","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","目录下为符号的实现。其中","目录下为符号表的实现。其中","目标代码生成","符号表总是和作用域相关的。例如,在","简单的启发式寄存器分配算法","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类来处理它。","结点时,会依次检查该操作的两个操作数","节点","节点来表示它,给出的参考定义如下(框架中已经提供):","节点里,也可以单独设置一类节点继承","表示将","计算完成后,calcul","词法语法分析","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","语义分析","语言中的基本类型只有","语言中,我们可以在全局作用域中定义名为","请注意","请注意,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'","'{'","'}'",":","ast","block_item","block_item*","compound_stat","declar","express","function","identifi","stage","statement","step6","step6:作用域和块语句","type","|","中出现的每个变量名分别对应那个变量。","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","出现在代码不同地方可能标识完全不同的变量。","因此,变量名不能唯一标识变量了,同一个变量名","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","当然,如果变量在使用前还是必须先被声明。","我们要增加块语句的支持。","我们需要在符号表构建的过程中,确定","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","简要叙述,为了完成这个","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语法上改动不大","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","随之而来一个问题是:不同变量可以重名了。"],"docs/step6/example.html":["#","(a","1","1;","2","2;","3","3;","4","4;","=","_t0","_t1","_t2","_t3","_t4","_t5","ast","backend/dataflow/cfg.pi","backend/reg/bruteregalloc.pi","block","cfg","children","compstmt","int","main","main()","main(){","main:","main(可忽略)","minidecaf","python","return","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","step5","step6","stmt","tac","x","x;","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","{","}","不需要新增新的中间代码指令。","中添加基本块是否可达的判断。在寄存器分配算法","中的","中间代码生成","中,我们只维护了","为","为止。由于在栈顶作用域对应的符号表中不存在变量符号","从","代码的控制流图。int","代码:","作用域中定义的","作用域定义的","作用域栈","作用域里的","全局作用域(栈底)","函数","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数作用域里定义的变量","函数对应的作用域中,可以找到变量符号","函数时,开启一个局部作用域,在扫描","函数里定义了变量","则对应着内层代码块定义的变量","变量","变量。","只在内部大括号括起的作用域内生效。","含义","在","子语句列表","实验指导","对于c++:","对于python:","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应着","就是指","局部作用域","局部作用域(栈顶)","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","思考题","成员","我们定义了另一个变量","指令。","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","时定义变量符号","时,从栈顶作用域符号表查找","时,定义了另一个变量","时,我们需要分析","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_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'",":","assign","c","condit","express","expression?","expression)。","identifi","logical_or","stage","statement","statement)?","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'","'do'","'for'","'if'","'return'","'while'","('else'",":","break/continu","c","compound_stat","declar","express","expression?","stage","statement","statement)?","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_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","cond","cond,更新语句","continu","continue/break","continue_label:continu","funcvisitor","init,循环条件","int","ir","label","loop","lt","minidecaf","step6","step8","tac","update,循环体","utils/tac/funcvisitor.pi","中的","中间代码生成","为了实现所有可能的跳转,对每个","从执行的指令的条数这个角度(label","代码:","初始语句","含义","和","实验指导","将循环语句翻译成","循环、do","循环作为示例。","循环可以有以下两种翻译方式:","循环我们都需要定义三个跳转标签:begin,","循环的特例,我们选择了","循环要自带一个作用域。在示例里,for","循环语句","循环语句翻译成","循环都可以看作","思考题","成员","指令。不过为了实现循环语句,需要仔细地考虑如何将","指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","无","有许多可行的翻译方法,例如","本实验指导使用的例子为:","本步骤中没有需要新增的","本步骤语义分析阶段的处理方式和","标签。","标签和","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签的维护。","标签(示例中的","标签,这样才能确定每一条","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于循环语句可以嵌套,所以","的","的分支跳转指令。由于","目标代码生成","程序。因此,在符号表构建阶段,扫描到","第一种(即实验指导中的翻译方式):","第二种:","类里实现了维护","结点时,不要忘记开启一个局部作用域。","结点时,若当前不处于任何循环内,则报错。","节点","节点来表示它,给出的参考定义如下:","让我们先来看看示例对应的","词法语法分析","语义分析","语句","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句时应当跳转到的位置。","语句生成过程中需要动态维护","语句相类似,但是请额外注意以下两点:","语句跳转到何处。因此,在","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句,我们需要设计","语句,那么应当跳转到此处,执行循环之后的指令。","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","跳到这","这也是合法的","通过例子学习","里的","针对"],"docs/step8/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'do'","'for'","'if'","'int'","'return'","'while'","'{'","'|'~'|'!')","'||'","'}'","('","('*'|'/'|'%')","('+'|'","('='","('=='|'!=')","('else'","('|'>'|'|'>=')","(i=0;","(int","0。","1。","8.1","8.2","8.3","8.4","8.5","8.6","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","9",":","expression)*)?","expression_list","function","function*","identifi","identifier)*)?","int","parameter_list","postfix","primari","program","runtim","runtime,部分函数在源代码中只有声明,其定义在","stage","step","step9","step9:函数","type","unari","void","|","任务概述","会引入","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","开始,minidecaf","开始,我们要支持多函数了。","我们还需要支持函数调用:","我们需要支持函数的声明和定义:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","注意:从","简要叙述,为了完成这个","编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","返回值实现。","返回类型,这可以通过忽略函数的"],"docs/step9/example.html":["!=","#","&&","(!v","((null","*base","*live)","*t,","+","...",".global",".text","//","0(sp)","1","1;","2","2);","32","4(sp)","5","52(sp)","56","9","=",">add(t",">contains(v))",">dirti",">getslottowrite(v,",">is_offset_fixed)",">liveout",">liveout);",">op0.var);",">var;","_frame","_reg[i]","_reg[riscvreg::fp];","_t0","_t0,","_t0这一行,我们要将虚拟寄存器t0作为参数x放入物理寄存器a0,假设此时t0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器t2,那么要先将t2","_t1","_t2","_t3","_,如果链接时出现问题请检查是不是下划线导致的。","a0","a0,","a1,","a7","add","addi","argument_list","ast","b","bodi","c","c++","c++框架中:","call","calle","caller","caller/calle","cnt)","cnt,","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。","end","epilogu","frontend/symbol/funcsymbol.pi","func","func(1,","func(int","func:","func_exit","func_exit:","function","gcc","i,","ident","ident,参数列表","if(i","int","int)从左到右存放在","int)放在","j","label","li","live","live);","liveset","lookupreg(t","lw","main","main()","main:","main_exit","main_exit:","minidecaf","mv","oss;","param","paramet","params,函数体","prologu","python","ra","ra,","ret","return","return_type,函数名","risc","riscvdesc::setregparam(tac","riscvdesc::spillreg(int","riscvreg","runtime.c,runtime.h,runtime.","save","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","sp,","spillreg(riscvreg::a0","spill到栈中。","start","std::ostringstream","step9","sw","symb/symbol.hpp","t","t0","t0,","t1","t1,","t2","t2,","t2)","tac","tac/dataflow.cpp","temp","v","v)","var_type,变量名","void","x","x,","xx","xxx","y","y)","y);","y;","{","}","上表给出","上述步骤","两类寄存器,而不是要求所有寄存器完全由","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个整数寄存器的分类。所谓","中","中。比如我们有这样一段","中的一方保存?为何保存返回地址的","中间代码生成","中,funcscop","为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下:","为何","之后,c++","从栈中将t0取出放入a0寄存器中","代码,使得不同的参数求值顺序会导致不同的返回结果。","但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设t0在此后不再被用到,那么t0就不在当前位置的liveout集合中,也就是说在spill寄存器时t0可以被覆盖掉,这可能导致t2被spill到了t0所在的位置,覆盖了t0。","位","使用的、和","假设我们有若干个参数,可以依次使用","先将op0加入当前的liveout集合,这可以保证spillreg时候不会将op0覆盖","关于测试样例:","具体的保存方法并不限制,但一般都使用栈来保存。","准备参数,完成传参。","函数","函数参数","函数参数以及返回值的传递","函数参数(32","函数时,相当于执行了:","函数调用","分别对应","即此时需要:","参数","参数类型","同学们可以使用这种参考的实现形式,也可以自行思考传参的处理方法。","含义","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","和","因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做:","因此,示例可以对应如下的","在","在param","实验指导","实验测例中有与","寄存器","寄存器。","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器?","将","将t2放入栈中(即:spill","思考题","成员","我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过","执行汇编中的函数调用指令,开始执行子函数直至其返回。","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。","提示","放入a0寄存器","放入a1寄存器","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","本实验指导使用的例子为:","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","来查看我们预定义的函数。","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","标准调用约定中要引入","框架","框架中会在生成的汇编中在函数名前面加上下划线","框架中出现了新的三地址码指令(param、call等),因此你需要参考","此处助教使用tac的op0来存放需要当作参数的虚拟寄存器","此处选择了一个栈上的位置用于保存寄存器","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理liveout集合,以下面三地址码为例:","的值作为参数","的函数调用时参数求值的顺序是未定义行为。试写出一段","的标准调用约定(gcc","目标代码生成","相关的)","称为调用序列(call","程序代码里的一个函数调用,包含了下面一系列的操作:","程序:","类表示函数符号。scope/scope.hpp","编译的文件相互调用的要求,因此,大家需要实现标准调用约定。","编译程序进行验证。","节点","节点来表示它,给出的参考定义如下:","表示函数作用域。","设置为下一个参数","词法语法分析","语义分析","请注意,tac","调用函数","调用函数名","调用约定","返回值(32","返回类型","通过例子学习","那么语义检查时应当报错。","那么,在进入","里实现了函数符号。","针对函数特性,我们需要设计","链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","(汇编)保存","(汇编)恢复"],"docs/step9/spec.html":["'&&'","'('","')","')'","':'","';'","';')","'='","'?'","'break'","'continue'","'do'","'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",".bss",".data",".text",":","declaration)*","elf(execut","format)。","fp","gcc","link","program","qemu)使用的可执行文件的格式是","stage","step10","step10:全局变量","|","任务概述","你做了哪些工作(即你的实验内容)","你的学号姓名","你需要:","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","和","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","实验指导","对有兴趣的同学:","当然,广义上的编译器就囊括了这所有阶段。","我们要支持的是全局变量,语法改动非常简单:","指导书上的思考题","改进你的编译器,支持本节引入的新特性,通过相关测试。","是其中存放代码的段(section),.bss","段或","段里。","汇编课上应该讲过,实际中(包括","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","访问它也不能通过","都是其中存放数据的段,前者零初始化后者须指定初始值。"],"docs/step10/example.html":["#",".bss",".data",".globl",".space",".word","0","0(t0)","2022","2022;","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","step9","symbol","t0,","t1","t1,","tac","tac/dataflow.cpp","v","v0,","x","x:","x;","{","}","上例中,.data","下面给出","个偏移的内存地址中的数据","中存储地址,加载与该地址相差","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中间代码生成","临时变量","为全局符号;.word","为字符串,加载","之后,c++","代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码,这样可以使中端与后端完全解耦。","伪指令可能会被转换成哪些","写出","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","参数","参考的","变量符号究竟存在哪里,如果所生成的汇编程序不给出","后是一个","含义","和","在","声明","字节。","字节整数,是","存放到","实际上,我们提供的中间代码设计和","实验指导","将全局变量放到特定的数据段中","思考题","所对应的数据段。","指令","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令链接:https://github.com/thethirdone/rars/wiki/support","按照汇编约定,data","提供了一系列的汇编指令,用以声明全局变量","数据段;.globl","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","有了上述两条指令,可以将测试用例翻译如下:","本实验指导使用的例子为:","本步骤引入全局变量,在引入全局变量之后,ast","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","框架中出现了新的三地址码指令(param、call等),因此你需要参考","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","汇编中有对应","汇编的思想是一致的,risc","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的定义,程序是有bug的。实际上,risc","的指令,我们直接给出翻译结果:","目标代码生成","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","符号对应的初始值。","符号所代表的地址","经过","翻译中间代码","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","表示存储空间大小为","表示输出到","表示预留一块连续的内存,4","词法语法分析","语义分析","请注意,tac","请注意,翻译所得的","这一","通过例子学习","针对全局变量,我们需要新设计","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。"],"docs/step10/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'break'","'continue'","'do'","'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":["'('","')'","';'","'['","']'","']')*","('='","('['",":","declar","express","expression)?","expression_list","identifi","integ","minidecaf","postfix","primari","stage","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","arraytyp","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","ast","base,索引下标","bss","c","c++","frontend/type/array.pi","i2d3...*dn","identifi","in]。在将数组索引翻译成","index","indexexpr","int","length","load","m","main()","main:","n","namer","python","return","size","sp","stage","step","step10","step11","step9","store","t0","t1","tac","tac/dataflow.cpp","type/type.hpp","typer","x[10];","y[10];","{","}","一个","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","中引入的","中的","中类型检查的部分,以及","中间代码生成","中,使实现更加模块化。","之后,c++","了,还有可能是如","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","分配","参数","可以等价于访问","同中间代码生成,全局数组自行思考实现。","含义","在","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","字节的内存,并返回内存首地址","实验指导","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","思考题","成员","指令","指令将值写入数组元素。","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令来实现,我们还需要引入一条类似的","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","数组和普通变量类似,可以分为局部数组和全局数组。","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","有能力的同学可以考虑将原先","本实验指导使用的例子为:","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","框架","框架中出现了新的三地址码指令(param、call等),因此你需要参考","段内存)。","注意:引入数组后,左值不再一定是","用于分配内存空间:","由于","目标代码生成","类型为","索引基底","索引运算","节点","节点来表示它,给出的参考定义如下:","表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","词法语法分析","语义分析","语言规范规定,允许局部变量是可变长度的数组(variabl","请注意,tac","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种,但仍然不允许类似","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","通过例子学习","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","采用","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对数组,我们需要设计","除了分配数组,我们还需要考虑如何访问数组元素。通过","需要增加的类型检查重构进","需要申请更大的"],"docs/step11/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')*","'break'","'continue'","'do'","'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",":","declar","function","identifi","integ","integer)*)?","parameter_list","stage","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/c++","cnt);","fill_n","fill_n(arr,","fill_n(int","fun(int","func(arr);","func(int","int","main()","memset","param[0]","param[]){","res,","return","risc","runtime.c","runtime.h","std::fill_n","step","step12","v","{","{1,2};","}","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中间代码生成","作为函数参数的数组类型第一维可以为空。事实上,在","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数用来给数组批量赋值,你可以按照","函数的参数列表需要加上数组类型。","函数的实现,其使用方式和功能同","和","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","实际上上述初始化可以等价地转化为:","实验指导","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","思考题","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","本实验指导使用的例子为:","来了解","标准库中的","标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看","由于","目标代码生成","相似。","等价于","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","词法语法分析","语义分析","这样的函数来实现数组数组的清零,我们的运行时库中也提供了","通过例子学习","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。","需要注意的是:在c++框架中,在生成函数时,编译器会自动给函数名前面加上下划线,来防止名字冲突,所以如果出现链接错误时,请先检查生成的汇编代码的函数名称和所要调用的函数名称是否一致。"],"docs/step12/spec.html":["'&&'","'('","')","')'","':'","';'","'='","'?'","'['","']'","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'do'","'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,","|","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","会将数组变为","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","数组传参是支持不定长度的","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","每个步骤结尾的","灰色部分表示相对上一节的修改。","规范","语义规范","语法规范"],"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":47},"tokenStore":{"root":{"0":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"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.005263157894736842},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.021052631578947368},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.019801980198019802}},"定":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.0038910505836575876},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"但":{"docs":{},"判":{"docs":{},"等":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"更":{"docs":{},"低":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"任":{"docs":{},"意":{"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.009900990099009901}}}}}},")":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},")":{"docs":{},"。":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}},";":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"则":{"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":{},"们":{"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.003745318352059925}}}}}}}},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}},"t":{"0":{"docs":{},")":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"docs":{}}},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"1":{"0":{"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},",":{"docs":{},"对":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{},"的":{"docs":{},"回":{"docs":{},"答":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},".":{"1":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},".":{"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.0037313432835820895}}},"3":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}},"docs":{}},";":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},",":{"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.0012642225031605564}}}}}}}}}}}}}}}}}},"1":{"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"1":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"2":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"3":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"4":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"docs":{}}},"2":{"docs":{"./":{"ref":"./","tf":0.005405405405405406},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},".":{"1":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"2":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"docs":{}}},"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.0024630541871921183}}},"docs":{"./":{"ref":"./","tf":0.032432432432432434},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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.007677543186180422}},".":{"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}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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}},"p":{"docs":{},"d":{"docs":{},"f":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.008108108108108109},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.011904761904761904},"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.0019193857965451055},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"这":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}},",":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}},"!":{"docs":{},"!":{"2":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"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/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"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.0038910505836575876}},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"]":{"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":{},"我":{"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.014925373134328358}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"3":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},"=":{"docs":{},"=":{"4":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}},"docs":{}}}},"docs":{}},"=":{"2":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}},"docs":{}},")":{"docs":{},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}},";":{"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":{}}},"1":{"docs":{},".":{"1":{"0":{"docs":{},".":{"5":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010113780025284451},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},";":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}},"和":{"docs":{},"_":{"docs":{},"t":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"docs":{}}}},",":{"docs":{},"则":{"docs":{},"在":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},"你":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"3":{"docs":{"./":{"ref":"./","tf":0.008108108108108109},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473}}}},"docs":{}},"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},".":{"0":{"4":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}},"docs":{}},"docs":{}}},"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"4":{"7":{"4":{"8":{"3":{"6":{"4":{"7":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"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":{}},"2":{"docs":{},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}},"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":{}},"4":{"docs":{},":":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.013513513513513514}}},"docs":{}},"docs":{}}},"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.03773584905660377},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.005758157389635317}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},".":{"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":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01984126984126984},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},",":{"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.0019193857965451055}}}},"”":{"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":{},"要":{"docs":{},"求":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"不":{"docs":{},"短":{"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"+":{"3":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}},"docs":{}},",":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"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.012345679012345678},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006321112515802781},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},".":{"1":{"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.0078125},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.041237113402061855}}},"docs":{}},")":{"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.009900990099009901}}}},"应":{"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.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"。":{"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.00398406374501992}}}},"4":{"0":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}},".":{"1":{"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":{}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.011904761904761904},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}},"}":{"docs":{},";":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"5":{"2":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}}},"6":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}}},"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}},".":{"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.003745318352059925}}}}}}}},"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":{}}},"6":{"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.006944444444444444}}},"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}},".":{"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":{}}},"7":{"docs":{},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}},".":{"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":{}}},"8":{"0":{"docs":{},"%":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},".":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"2":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"3":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},".":{"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.0038910505836575876}}},"5":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"6":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"7":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"8":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"9":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"docs":{}}},"9":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},".":{"1":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"2":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"3":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"4":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"5":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"6":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"docs":{}}},"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.014925373134328358},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"i":{"docs":{"./":{"ref":"./","tf":0.008108108108108109}},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}}}}}}},"n":{"docs":{},"t":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},"e":{"docs":{},"g":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"=":{"0":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"docs":{}}},"k":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}}}}}}},"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.0028011204481792717}}}}}}}}}},"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.014492753623188406},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}},"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.008849557522123894}}}}},"docs":{}}}}}}}}}},"l":{"docs":{},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"r":{"docs":{},"h":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.008849557522123894}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}},"o":{"docs":{},"p":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}}}},"'":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"*":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"/":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"%":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}},"+":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"=":{"docs":{},"=":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},">":{"docs":{},"=":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}},",":{"docs":{},"'":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.038461538461538464},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.057692307692307696},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}}},"a":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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":{}}},"x":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"!":{"docs":{},"v":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"(":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"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.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}},"+":{"docs":{"./":{"ref":"./","tf":0.008108108108108109},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.008403361344537815},"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.012315270935960592},"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.005758157389635317},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.0189873417721519},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.019801980198019802}},"、":{"docs":{},"减":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},".":{"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":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},"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.015625},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}},"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}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"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.011627906976744186}}},"a":{"docs":{},"l":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"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.005813953488372093}}}}}}},"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.0012642225031605564},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},".":{"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.0025284450063211127},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.049019607843137254},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"docs":{},".":{"docs":{},".":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}}}}},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.046511627906976744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}},"/":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}},"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.014925373134328358}}}},"/":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.019801980198019802}}}},"=":{"docs":{"./":{"ref":"./","tf":0.024324324324324326},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.025210084033613446},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.021491782553729456},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.034722222222222224},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.046798029556650245},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.03048780487804878},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.09523809523809523},"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.042105263157894736},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.030710172744721688},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.029069767441860465},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.03164556962025317},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.04950495049504951},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0199203187250996}},"=":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.04081632653061224},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}},"(":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"和":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}}},">":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.030927835051546393},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.007585335018963337},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549}},",":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"v":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"l":{"docs":{},"o":{"docs":{},"t":{"docs":{},"t":{"docs":{},"o":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},")":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}},"o":{"docs":{},"p":{"0":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}}}}},"docs":{}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},",":{"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.0012642225031605564},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"a":{"0":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"docs":{}}}},"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},"7":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"1":{"docs":{},"]":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"docs":{}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"7":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}},"docs":{}}}},"2":{"docs":{},"]":{"docs":{},"[":{"2":{"docs":{},"]":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"docs":{}}}},"4":{"docs":{},"]":{"docs":{},"[":{"5":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}},"docs":{}}}},"docs":{},"(":{"docs":{},"l":{"docs":{},"+":{"docs":{},"r":{"docs":{},")":{"docs":{},"/":{"2":{"docs":{},"]":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"docs":{}}}}}}},"]":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},";":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}},"[":{"1":{"2":{"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}},"docs":{}},"docs":{}},")":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"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.006329113924050633}}}}}}}}}}},"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.006329113924050633}}}}}}}},"docs":{}}},"docs":{}}},"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"j":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"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.006329113924050633}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"[":{"docs":{},"m":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}},"b":{"docs":{},"]":{"docs":{},",":{"docs":{},"要":{"docs":{},"求":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.03164556962025317}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},":":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"原":{"docs":{},"先":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"确":{"docs":{},"实":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"安":{"docs":{},"装":{"docs":{},"了":{"docs":{},"多":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}},"非":{"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.0078125}}}}}}}}}}}}}}}}}}}}}},".":{"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.030927835051546393}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"g":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.020618556701030927}},"e":{"docs":{},":":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}},"m":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},"中":{"docs":{},"和":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},",":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"1":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"2":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"3":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}},"=":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},",":{"0":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"docs":{}},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"docs":{}}},"docs":{}}}}},"4":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"docs":{}}}},"d":{"docs":{},"d":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.008403361344537815},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"t":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.04477611940298507},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.030927835051546393},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.03076923076923077},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.028985507246376812},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.010416666666666666},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}}}}}}},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.028011204481792718},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.018963337547408345},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},")":{"docs":{},",":{"docs":{},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"省":{"docs":{},"略":{"docs":{},"掉":{"docs":{},"了":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"树":{"docs":{},"中":{"docs":{},"不":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},"(":{"docs":{},"例":{"docs":{},"如":{"docs":{},"条":{"docs":{},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"旁":{"docs":{},"边":{"docs":{},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"检":{"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.0012642225031605564}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"m":{"docs":{},".":{"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.0012642225031605564}}}}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"(":{"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.0024630541871921183}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}},"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}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"%":{"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.0037313432835820895}}}},"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.0037313432835820895}}}}}}}}}}}}},"docs":{}}},"2":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179}}}},"4":{"docs":{},";":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}},"docs":{},"f":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}},",":{"docs":{},"其":{"docs":{},"大":{"docs":{},"致":{"docs":{},"实":{"docs":{},"现":{"docs":{},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}}}}}}},"。":{"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.018656716417910446}},"}":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}},"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":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"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.003838771593090211},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}},"i":{"docs":{},"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":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"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.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354}}}}},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}},"r":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.013513513513513514},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306}},",":{"docs":{},"当":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}},"、":{"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/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.06842105263157895},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.02564102564102564}}}}}}}}}},"_":{"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.010526315789473684}}}}}}},",":{"docs":{},"或":{"docs":{},"者":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}}}}}}}}}}}}}}}},"。":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"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.0078125}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}},"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.006329113924050633}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"m":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}},"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.0028011204481792717}},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"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.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"/":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"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":{},"p":{"docs":{},"i":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0078125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},",":{"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.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"*":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},")":{"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}}}}}}}}}}}}}}}}}}}},"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}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"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.010169491525423728}},"z":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}},"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.010526315789473684}}}}}}}}},"本":{"docs":{},"轮":{"docs":{},"迭":{"docs":{},"代":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},",":{"docs":{},"条":{"docs":{},"件":{"docs":{},"满":{"docs":{},"足":{"docs":{},"时":{"docs":{},"进":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"次":{"docs":{},"迭":{"docs":{},"代":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}},",":{"docs":{},"则":{"docs":{},"图":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"从":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527}}}},"o":{"docs":{},"k":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"s":{"docs":{},"s":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"c":{"1":{"7":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.1111111111111111}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.008108108108108109},"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.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"+":{"docs":{},"+":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.013513513513513514},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625}},".":{"docs":{},"y":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"(":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"你":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"修":{"docs":{},"改":{"docs":{},"此":{"docs":{},"文":{"docs":{},"件":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},"这":{"docs":{},"不":{"docs":{},"会":{"docs":{},"对":{"docs":{},"你":{"docs":{},"的":{"docs":{},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"产":{"docs":{},"生":{"docs":{},"影":{"docs":{},"响":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"a":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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}}}}}}}}}}},"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.061224489795918366},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"d":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"n":{"docs":{},"d":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527}},"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.05555555555555555},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}},",":{"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.005263157894736842}}}}}}}},"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.021052631578947368},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},"e":{"docs":{},"/":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}},"_":{"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.010526315789473684}}}}}}}}}}}}}}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}},"f":{"docs":{},"g":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"见":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"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}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0392156862745098}}}}}},"p":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}},"a":{"docs":{},"t":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.012345679012345678}}},"l":{"docs":{},"l":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634}},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985}},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},",":{"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.003745318352059925}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"h":{"docs":{},"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.003968253968253968}}}}}}}}},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0196078431372549}}},":":{"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.0038910505836575876}},",":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"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.009900990099009901}}}}}},"=":{"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":{}},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"d":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354}},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"新":{"docs":{},"的":{"docs":{},"且":{"docs":{},"更":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"下":{"docs":{},"复":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"*":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}},"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.008849557522123894},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.029411764705882353},"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.025510204081632654}}}},"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.005813953488372093}}}}},"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}}}}}},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},",":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.03225806451612903}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}}},"=":{"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":{}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}},"q":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"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.002702702702702703}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"u":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}},".":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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":{},",":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"c":{"docs":{},"c":{"docs":{"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.0025284450063211127},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},",":{"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}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"p":{"docs":{},"h":{"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}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"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.002702702702702703}}},"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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":{}}}}}}}}}}}}}}}}}}}}}}},"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}}}},"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.010309278350515464}}}}}}}}}}}}}},"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.006329113924050633}}}}}}}}},"docs":{}}},"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01891891891891892},"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.011204481792717087},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"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.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.03940886699507389},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.03571428571428571},"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.005263157894736842},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.019193857965451054},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.048507462686567165},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.06962025316455696},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.09900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}},"2":{"docs":{},")":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"docs":{}},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"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.04081632653061224},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.014492753623188406},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},"e":{"docs":{},"r":{"docs":{},"(":{"2":{"0":{"2":{"2":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"2":{"0":{"2":{"2":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},";":{"docs":{},"关":{"docs":{},"于":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}}}}},")":{"docs":{},"从":{"docs":{},"左":{"docs":{},"到":{"docs":{},"右":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"放":{"docs":{},"在":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"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.020618556701030927}}}},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255}},".":{"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}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763}},",":{"docs":{},"循":{"docs":{},"环":{"docs":{},"条":{"docs":{},"件":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"、":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}},"、":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}}}},"]":{"docs":{},"。":{"docs":{},"在":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"索":{"docs":{},"引":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}}},"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":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"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}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"i":{"docs":{},"f":{"docs":{},"i":{"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/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"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.057971014492753624},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.02702702702702703},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.01556420233463035},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.043478260869565216},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02247191011235955},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.022388059701492536},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.02109704641350211},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.07692307692307693},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.027888446215139442}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011204481792717087}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255}}}}}}}}},"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.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}},",":{"docs":{},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}}}}}}},"f":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}}},";":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.01694915254237288}}}},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728}}}},"i":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"。":{"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}}}},"r":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014005602240896359},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.031578947368421054}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"=":{"0":{"docs":{},";":{"docs":{},";":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"+":{"1":{"docs":{},")":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"docs":{}}}}}},"i":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}},"1":{"docs":{},";":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"docs":{}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"j":{"docs":{"./":{"ref":"./","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.003838771593090211}},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"a":{"docs":{},"v":{"docs":{},"a":{"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.0028011204481792717}}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}}},"e":{"docs":{},"n":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"k":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},",":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}},"/":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006321112515802781}},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"作":{"docs":{},"业":{"docs":{},";":{"docs":{},"也":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},"(":{"docs":{},"或":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"q":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}},"s":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"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.0025284450063211127},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"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.020618556701030927}},"/":{"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.023255813953488372}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}}},"s":{"docs":{},"t":{"docs":{},"=":{"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":{}}}}}}}}},"v":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}},"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}}}},")":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.023255813953488372},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"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":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.023255813953488372}}}}}}}}}}},"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.06153846153846154},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}},"o":{"docs":{},"r":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.046153846153846156},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.037037037037037035},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}}}}}}},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.021052631578947368}}},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"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}}}},"t":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"s":{"docs":{},";":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}},"l":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"(":{"1":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"docs":{}}}},"n":{"docs":{},"d":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}}},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"b":{"docs":{},"e":{"docs":{},"l":{"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.03684210526315789},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"m":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011204481792717087},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"m":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.021621621621621623},"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.033613445378151},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"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.011363636363636364},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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.010526315789473684},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255}}}},"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.0028011204481792717}},"s":{"docs":{},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"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.0056022408963585435},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.007585335018963337},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.017241379310344827},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.03571428571428571},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006321112515802781}}},"y":{"docs":{},",":{"docs":{},"它":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"(":{"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.0012642225031605564},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"{":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"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.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.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"贴":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}},"。":{"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.015873015873015872}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"b":{"docs":{},"i":{"docs":{},"=":{"docs":{},"i":{"docs":{},"l":{"docs":{},"p":{"3":{"2":{"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.012345679012345678},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"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}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0048543689320388345}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"=":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},"i":{"docs":{},"m":{"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.012345679012345678},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}},"docs":{}},"docs":{}}}}}}}},"u":{"docs":{},"l":{"docs":{"docs/step3/precedence.html":{"ref":"docs/step3/precedence.html","tf":0.018867924528301886}},"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.0078125}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.05970149253731343},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"v":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}},"会":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"则":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}}},"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.011204481792717087},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"e":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}},"]":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}},"d":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},")":{"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}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}},"q":{"docs":{},"c":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"e":{"docs":{},"g":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.028409090909090908}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364}}}}}}},"q":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},"r":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"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.0012642225031605564}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"(":{"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}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}},"p":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}},"e":{"docs":{},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"些":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"最":{"docs":{},"经":{"docs":{},"典":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"是":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}}}}}}}}}}},"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.01727447216890595}},"_":{"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.038461538461538464},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"docs":{},"]":{"docs":{},")":{"docs":{},"{":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"下":{"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.0012642225031605564}}},"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}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"[":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"docs":{}}}}},"d":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"i":{"docs":{},"p":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.020618556701030927}},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"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.0078125}},"e":{"docs":{},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},".":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}},"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.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.029850746268656716},"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.014492753623188406},"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.007782101167315175},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}},"o":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"o":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"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/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.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}},"(":{"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/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/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"”":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"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.0024630541871921183}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"3":{"docs":{},".":{"9":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.020618556701030927}}},"docs":{}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.10309278350515463},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.008849557522123894},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"框":{"docs":{},"架":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},"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.030927835051546393},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}},"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":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},"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.010309278350515464}}}}}}}}}}}}}}}}}}},"[":{"0":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}}},"1":{"docs":{},"]":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"则":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"2":{"docs":{},"]":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"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":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"w":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.012658227848101266},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01195219123505976}}}}}}}}},"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.006944444444444444}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.023255813953488372}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625}}}}}}}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"如":{"docs":{},"何":{"docs":{},"提":{"docs":{},"交":{"docs":{},"课":{"docs":{},"程":{"docs":{},"报":{"docs":{},"告":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"中":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"4":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"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.010309278350515464}},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"e":{"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.0025284450063211127},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.015625},"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02402022756005057},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.026143790849673203},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.0038910505836575876},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.018726591760299626},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297}},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"(":{"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/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.0019193857965451055}}}}}}}}}}}}}}},"g":{"0":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"1":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"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.0078125}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}},"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.0012642225031605564}}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.06153846153846154},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}},"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.008108108108108109},"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.0196078431372549},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010113780025284451},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"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/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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},",":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628}},"/":{"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.0025284450063211127}}}}}}}}}}}}}}},"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.0012642225031605564}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},":":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"a":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},".":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"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":{},"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}},"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.003838771593090211}}}},"v":{"3":{"2":{"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":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"s":{"docs":{},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}},"e":{"docs":{},",":{"docs":{},"部":{"docs":{},"分":{"docs":{},"函":{"docs":{},"数":{"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.014492753623188406}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"c":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},",":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"h":{"docs":{},",":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"h":{"docs":{},"s":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}}},"s":{"1":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"2":{"docs":{},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}},"v":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.019193857965451054}},"d":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"t":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"3":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"4":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"5":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{"./":{"ref":"./","tf":0.04594594594594595},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"一":{"docs":{},"起":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"变":{"docs":{},"量":{"docs":{},"以":{"docs":{},"及":{"docs":{},"分":{"docs":{},"支":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{},"无":{"docs":{},"论":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"h":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"使":{"docs":{},"用":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}},"中":{"docs":{},"的":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"的":{"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.0078125}}}}}}}}}}}}}}}}}}}}}},"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04081632653061224},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.037037037037037035},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.07692307692307693},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.027237354085603113},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.026217228464419477},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.026119402985074626},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.029535864978902954},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.027888446215139442}},"(":{"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},")":{"docs":{},"?":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"r":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634}}}}},"e":{"docs":{},"p":{"0":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"1":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}},"1":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843}},":":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}},"2":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"为":{"docs":{},"数":{"docs":{},"组":{"docs":{},"添":{"docs":{},"加":{"docs":{},"更":{"docs":{},"多":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.005405405405405406},"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.07142857142857142},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006321112515802781},"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.011363636363636364},"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.002702702702702703}}},"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}}}}}}}}}}}}}}}}}}},"2":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.028409090909090908},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},":":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"3":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.020833333333333332},"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.020618556701030927},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613}},":":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}}}}}},"4":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"比":{"docs":{},"较":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}}}}}},"5":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},":":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}},"6":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}}}}}}},"7":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"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":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}},":":{"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.03571428571428571},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}},")":{"docs":{},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},":":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282}}}}}}}},"9":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},":":{"docs":{},"函":{"docs":{},"数":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}},"docs":{"./":{"ref":"./","tf":0.021621621621621623},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},",":{"docs":{},"共":{"docs":{},"包":{"docs":{},"含":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"_":{"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.0012642225031605564}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},",":{"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":{}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"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.0012642225031605564}}}}},"m":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},":":{"docs":{},":":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"分":{"docs":{},"配":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"docs":{}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"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}}}}}}}}}}}}}}}}}}}},"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.0012642225031605564}}}}}}}}}}},"q":{"docs":{},"z":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"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.0064516129032258064}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"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.0028011204481792717}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"d":{"docs":{},"o":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.030927835051546393}}}}},"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}}},"z":{"docs":{},"e":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}}}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"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}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},":":{"docs":{},":":{"docs":{},"a":{"0":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{}}}}}}}}}}}}}}}},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"e":{"docs":{},"c":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},",":{"docs":{},"并":{"docs":{},"恢":{"docs":{},"复":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.015355086372360844}}}},"s":{"docs":{},"h":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"h":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}},"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.0024630541871921183}},"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.0024630541871921183}}}}}}}}},"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.0064516129032258064}}}},"n":{"docs":{},"e":{"docs":{},"z":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742}}}}},"w":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}}}},"u":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},";":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"/":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}}}}}}}},"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.0012642225031605564}}}}}}}}}}}}}}},"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/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.010309278350515464}}}}}}}}}}}}}},"n":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"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.012345679012345678},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010113780025284451},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.061224489795918366},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0375},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.05970149253731343},"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.01556420233463035},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.02109704641350211},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0199203187250996}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}},",":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}},"docs":{}}}}},"那":{"docs":{},"么":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"i":{"docs":{},"x":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}},"o":{"docs":{},"n":{"docs":{},"[":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},":":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"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}}}}}},"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.020618556701030927},"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.005263157894736842}}}}}}}}}}},"]":{"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.005813953488372093}}}},"docs":{"./":{"ref":"./","tf":0.008108108108108109},"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.0196078431372549},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010113780025284451},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.028409090909090908},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.023255813953488372},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"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}}}}}}}},"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/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.010113780025284451},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":5.0130718954248366},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"(":{"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}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}},"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.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}}}}}}}}},"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.0056022408963585435}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"a":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"r":{"docs":{},"_":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},".":{"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}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"(":{"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.002702702702702703},"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.030927835051546393}}}}}}},"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.010309278350515464}},",":{"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}}}}}}}},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.0012642225031605564},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.0038910505836575876},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"_":{"docs":{},"t":{"0":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.01020408163265306}}}},"1":{"docs":{},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"2":{"docs":{},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"docs":{}}},"i":{"docs":{},"f":{"docs":{},"(":{"docs":{},"b":{"docs":{},")":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152}}}}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005405405405405406},"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.0025284450063211127},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.012315270935960592},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.0038910505836575876},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.011235955056179775},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297}},"”":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},",":{"docs":{},"且":{"docs":{},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"被":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}},"↩":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.002702702702702703}}}}}}}}}},",":{"docs":{},"如":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"进":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"的":{"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"面":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},",":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"将":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"述":{"docs":{},"步":{"docs":{},"骤":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}},"下":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}},"运":{"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/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.03571428571428571}}}}}}}}}}}}}}}}}},"将":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},"的":{"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":{},"o":{"docs":{},"r":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"每":{"docs":{},"行":{"docs":{},"语":{"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.005813953488372093}}}}},"进":{"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"各":{"docs":{},"种":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}}}}}},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"基":{"docs":{},"础":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"它":{"docs":{},"们":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"分":{"docs":{},"数":{"docs":{},"(":{"4":{"0":{"docs":{},"%":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"关":{"docs":{},"卡":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"(":{"docs":{},"其":{"docs":{},"中":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"汇":{"docs":{},"编":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"了":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"分":{"docs":{},"配":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"a":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"通":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"分":{"docs":{},"类":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}},"字":{"docs":{},"节":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},",":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"元":{"docs":{},"素":{"docs":{},"(":{"docs":{},"从":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}},"中":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"调":{"docs":{},"用":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"你":{"docs":{},"将":{"docs":{},"实":{"docs":{},"现":{"docs":{},"常":{"docs":{},"量":{"docs":{},"操":{"docs":{},"作":{"docs":{},"(":{"docs":{},"加":{"docs":{},"减":{"docs":{},"乘":{"docs":{},"除":{"docs":{},"模":{"docs":{},"等":{"docs":{},")":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"多":{"docs":{},"个":{"docs":{},"语":{"docs":{},"句":{"docs":{},"组":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"块":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"支":{"docs":{},"持":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"声":{"docs":{},"明":{"docs":{},"和":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"支":{"docs":{},"持":{"docs":{},"变":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"docs":{},"不":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"请":{"docs":{},"联":{"docs":{},"系":{"docs":{},"助":{"docs":{},"教":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"注":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"已":{"docs":{},"经":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"了":{"docs":{},"如":{"docs":{},"何":{"docs":{},"运":{"docs":{},"行":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},",":{"docs":{},"你":{"docs":{},"将":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"数":{"docs":{},"组":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"输":{"docs":{},"出":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"时":{"docs":{},",":{"docs":{},"请":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}},"a":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"新":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"若":{"docs":{},"你":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"我":{"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.02040816326530612}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"为":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"维":{"docs":{},"护":{"docs":{},"了":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"引":{"docs":{},"入":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}},"算":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"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.0064516129032258064}}}}}}}}}}}}}}}}},"会":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"负":{"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.0024630541871921183}}}}}}}}}}}},"变":{"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.0024630541871921183}}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"把":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"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.0038910505836575876}}},"docs":{}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}},"使":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"加":{"docs":{},"模":{"docs":{},"块":{"docs":{},"化":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"第":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"一":{"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/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"话":{"docs":{},"同":{"docs":{},"时":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"以":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}},"剩":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"比":{"docs":{},"如":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"常":{"docs":{},"量":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}},"有":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"均":{"docs":{},"用":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}},"一":{"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.0019193857965451055}}}}}}}}}}}}}}}},"第":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}},"详":{"docs":{},"细":{"docs":{},"说":{"docs":{},"明":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"基":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"框":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"间":{"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.0028011204481792717}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}},"表":{"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.005681818181818182}}}}}}}}}}}}}},";":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.07142857142857142}},"加":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"运":{"docs":{},"算":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}},"基":{"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.03571428571428571}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"实":{"docs":{},"现":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"分":{"docs":{},"派":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"会":{"docs":{},"全":{"docs":{},"部":{"docs":{},"放":{"docs":{},"入":{"docs":{},"内":{"docs":{},"存":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"如":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"遍":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},"越":{"docs":{},"界":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}},"引":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"二":{"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.0064516129032258064}}}}}}}}}}}}}}}},"运":{"docs":{},"算":{"docs":{},"均":{"docs":{},"为":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{},")":{"docs":{},"、":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"负":{"docs":{},"责":{"docs":{},"保":{"docs":{},"存":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"出":{"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.02040816326530612}}}}}}}}}}}}}}}}}}},"添":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"限":{"docs":{},"制":{"docs":{},"。":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"储":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{},"与":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"相":{"docs":{},"差":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"即":{"docs":{},"使":{"docs":{},"标":{"docs":{},"明":{"docs":{},"了":{"docs":{},"第":{"docs":{},"一":{"docs":{},"维":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"依":{"docs":{},"然":{"docs":{},"会":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"便":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"某":{"docs":{},"些":{"docs":{},"步":{"docs":{},"骤":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"照":{"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.03571428571428571}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"帮":{"docs":{},"大":{"docs":{},"家":{"docs":{},"再":{"docs":{},"快":{"docs":{},"一":{"docs":{},"点":{"docs":{},"了":{"docs":{},"解":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"定":{"docs":{},":":{"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.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"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.005263157894736842}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"两":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"让":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"关":{"docs":{},"卡":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"学":{"docs":{},"有":{"docs":{},"余":{"docs":{},"力":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"它":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"减":{"docs":{},"少":{"docs":{},"期":{"docs":{},"末":{"docs":{},"考":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"2":{"0":{"2":{"2":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"类":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},"由":{"docs":{},"于":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"符":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"止":{"docs":{},"。":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"是":{"docs":{},"必":{"docs":{},"不":{"docs":{},"可":{"docs":{},"少":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"。":{"docs":{},"已":{"docs":{},"知":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"序":{"docs":{},"列":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"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/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.0019193857965451055}}},"全":{"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.005813953488372093}}}}}}}}}}}},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"了":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"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.006329113924050633}}}}}}}}}},"代":{"docs":{},"码":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"编":{"docs":{},"译":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"雷":{"docs":{},"同":{"docs":{},"情":{"docs":{},"节":{"docs":{},"严":{"docs":{},"重":{"docs":{},"的":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"”":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"图":{"docs":{},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}},"段":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"为":{"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":{},",":{"docs":{},"大":{"docs":{},"致":{"docs":{},"理":{"docs":{},"解":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}},"中":{"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":{"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":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}},"这":{"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.005813953488372093}}}}}}}}}}}}}}}}},"不":{"docs":{},"过":{"docs":{},"不":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}},"也":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}},"替":{"docs":{},"了":{"docs":{},"返":{"docs":{},"回":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"docs":{},"所":{"docs":{},"有":{"docs":{},"测":{"docs":{},"例":{"docs":{},"及":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"提":{"docs":{},"交":{"docs":{},"报":{"docs":{},"告":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"引":{"docs":{},"入":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}},"将":{"docs":{},"数":{"docs":{},"组":{"docs":{},"变":{"docs":{},"为":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},"你":{"docs":{},"做":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"工":{"docs":{},"作":{"docs":{},"(":{"docs":{},"即":{"docs":{},"你":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}},"的":{"docs":{},"学":{"docs":{},"号":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"姓":{"docs":{},"名":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}},"编":{"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":{},"p":{"docs":{},"w":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}},"认":{"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.006329113924050633}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"能":{"docs":{},"会":{"docs":{},"觉":{"docs":{},"得":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"不":{"docs":{},"就":{"docs":{},"是":{"docs":{},"将":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}},"应":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}},"使":{"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":{},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{},"框":{"docs":{},"架":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"指":{"docs":{},"导":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"实":{"docs":{},"验":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"期":{"docs":{},"望":{"docs":{},"降":{"docs":{},"低":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"难":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},"设":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"在":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"9":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"不":{"docs":{},"是":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"栈":{"docs":{},"底":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.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":{},":":{"1":{"docs":{},".":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},"于":{"docs":{},"名":{"docs":{},"字":{"docs":{},"由":{"docs":{},"来":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"往":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"助":{"docs":{},"教":{"docs":{},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"细":{"docs":{},"节":{"docs":{},",":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},"在":{"docs":{},"下":{"docs":{},"面":{"docs":{},"给":{"docs":{},"出":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"提":{"docs":{},"供":{"docs":{},"注":{"docs":{},"释":{"docs":{},"供":{"docs":{},"大":{"docs":{},"家":{"docs":{},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"小":{"docs":{},"技":{"docs":{},"巧":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"实":{"docs":{},"在":{"docs":{},"不":{"docs":{},"知":{"docs":{},"道":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"系":{"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.002702702702702703}}},"docs":{}}}}}}},"双":{"docs":{},"引":{"docs":{},"号":{"docs":{},"下":{"docs":{},"的":{"docs":{},"和":{"docs":{},"大":{"docs":{},"写":{"docs":{},"字":{"docs":{},"母":{"docs":{},"开":{"docs":{},"头":{"docs":{},"的":{"docs":{},"都":{"docs":{},"为":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0024630541871921183}}}}}}}}}}}}}}}}}},"他":{"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":{},",":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}},"具":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}},"体":{"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.0028011204481792717}}}}}}}}}}}}}}}}},"的":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"删":{"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":{},";":{"docs":{},";":{"docs":{},")":{"docs":{},"这":{"docs":{},"种":{"docs":{},"语":{"docs":{},"法":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"其":{"docs":{},"本":{"docs":{},"质":{"docs":{},"与":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"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":{},"增":{"docs":{},"加":{"docs":{},"了":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"量":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"远":{"docs":{},"端":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"你":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"随":{"docs":{},"意":{"docs":{},"地":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"可":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"有":{"docs":{},"误":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"了":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"为":{"docs":{},"止":{"docs":{},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"的":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}},"栈":{"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/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"补":{"docs":{},"交":{"docs":{},",":{"docs":{},"此":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"就":{"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.0078125}}}}}}}}}}}}}}}}}}},"助":{"docs":{},"教":{"docs":{},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"想":{"docs":{},"说":{"docs":{},"的":{"docs":{},":":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"docs":{},"看":{"docs":{},"起":{"docs":{},"来":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"长":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"庞":{"docs":{},"大":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"希":{"docs":{},"望":{"docs":{},"提":{"docs":{},"供":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"全":{"docs":{},"面":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"来":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"理":{"docs":{},"解":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"构":{"docs":{},"成":{"docs":{},",":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"编":{"docs":{},"译":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"关":{"docs":{},"系":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"推":{"docs":{},"荐":{"docs":{},"使":{"docs":{},"用":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"每":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"在":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"列":{"docs":{},"表":{"docs":{},"文":{"docs":{},"件":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}},"参":{"docs":{},"考":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"资":{"docs":{},"料":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"REFERENCE.html":{"ref":"REFERENCE.html","tf":10.027777777777779}}}},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"数":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"及":{"docs":{},"之":{"docs":{},"后":{"docs":{},"不":{"docs":{},"接":{"docs":{},"受":{"docs":{},"补":{"docs":{},"交":{"docs":{},",":{"docs":{},"此":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},",":{"docs":{},"至":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"触":{"docs":{},"发":{"docs":{},"此":{"docs":{},"次":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"更":{"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.01984126984126984}},"和":{"docs":{},"语":{"docs":{},"句":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"(":{"docs":{},"读":{"docs":{},"取":{"docs":{},"/":{"docs":{},"赋":{"docs":{},"值":{"docs":{},")":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}},"初":{"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/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}},"符":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},":":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}},"同":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"学":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"面":{"docs":{},"对":{"docs":{},"一":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"种":{"docs":{},"参":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"大":{"docs":{},"家":{"docs":{},"通":{"docs":{},"过":{"docs":{},"实":{"docs":{},"验":{"docs":{},"学":{"docs":{},"习":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"单":{"docs":{},"独":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"手":{"docs":{},"工":{"docs":{},"自":{"docs":{},"顶":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"应":{"docs":{},"只":{"docs":{},"能":{"docs":{},"作":{"docs":{},"为":{"docs":{},"至":{"docs":{},"多":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{"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.010309278350515464},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006321112515802781},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.01935483870967742},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.014778325123152709},"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.02631578947368421},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.046511627906976744},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"手":{"docs":{},"工":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"为":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"常":{"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.0012642225031605564}}}}}},"最":{"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.0038910505836575876}}}}}}}},"在":{"docs":{"./":{"ref":"./","tf":0.005405405405405406},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.007585335018963337},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"这":{"docs":{},"里":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"列":{"docs":{},"出":{"docs":{},"与":{"docs":{},"实":{"docs":{},"验":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},",":{"docs":{},"它":{"docs":{},"会":{"docs":{},"和":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"上":{"docs":{},"的":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"部":{"docs":{},"分":{"docs":{},"保":{"docs":{},"持":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"遇":{"docs":{},"到":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"段":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"第":{"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":{},"析":{"docs":{},"各":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"时":{"docs":{},",":{"docs":{},"若":{"docs":{},"它":{"docs":{},"们":{"docs":{},"引":{"docs":{},"用":{"docs":{},"了":{"docs":{},"某":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"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.0028011204481792717}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"检":{"docs":{},"查":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"即":{"docs":{},"尚":{"docs":{},"未":{"docs":{},"跟":{"docs":{},"任":{"docs":{},"何":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"建":{"docs":{},"立":{"docs":{},"关":{"docs":{},"联":{"docs":{},"关":{"docs":{},"系":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"有":{"docs":{},"则":{"docs":{},"选":{"docs":{},"择":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"作":{"docs":{},"为":{"docs":{},"分":{"docs":{},"配":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},",":{"docs":{},"检":{"docs":{},"查":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"其":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"已":{"docs":{},"经":{"docs":{},"不":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"docs":{},"量":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"说":{"docs":{},"明":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"未":{"docs":{},"来":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"回":{"docs":{},"收":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"而":{"docs":{},"不":{"docs":{},"用":{"docs":{},"担":{"docs":{},"心":{"docs":{},"引":{"docs":{},"起":{"docs":{},"数":{"docs":{},"据":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"一":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"是":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"都":{"docs":{},"是":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"将":{"docs":{},"把":{"docs":{},"某":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"所":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"(":{"docs":{},"内":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"已":{"docs":{},"知":{"docs":{},"定":{"docs":{},"型":{"docs":{},"规":{"docs":{},"则":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"编":{"docs":{},"码":{"docs":{},"实":{"docs":{},"现":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"算":{"docs":{},"法":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"际":{"docs":{},"操":{"docs":{},"作":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"已":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}},"要":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},",":{"docs":{},"从":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"已":{"docs":{},"经":{"docs":{},"掌":{"docs":{},"握":{"docs":{},"了":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"源":{"docs":{},"程":{"docs":{},"序":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"(":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"类":{"docs":{},"型":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"下":{"docs":{},"一":{"docs":{},"步":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"则":{"docs":{},"是":{"docs":{},"将":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"便":{"docs":{},"于":{"docs":{},"移":{"docs":{},"植":{"docs":{},"和":{"docs":{},"优":{"docs":{},"化":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"在":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"就":{"docs":{},"是":{"docs":{},"三":{"docs":{},"地":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"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.005681818181818182}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"来":{"docs":{},"存":{"docs":{},"储":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"个":{"docs":{},"数":{"docs":{},",":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"机":{"docs":{},"器":{"docs":{},"实":{"docs":{},"际":{"docs":{},"拥":{"docs":{},"有":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"数":{"docs":{},"目":{"docs":{},",":{"docs":{},"将":{"docs":{},"无":{"docs":{},"法":{"docs":{},"生":{"docs":{},"成":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"采":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"和":{"docs":{},"分":{"docs":{},"配":{"docs":{},"数":{"docs":{},"目":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"资":{"docs":{},"源":{"docs":{},",":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"伪":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"都":{"docs":{},"有":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"与":{"docs":{},"之":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"时":{"docs":{},"刻":{"docs":{},",":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"现":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"即":{"docs":{},"两":{"docs":{},"个":{"docs":{},"同":{"docs":{},"时":{"docs":{},"有":{"docs":{},"效":{"docs":{},"且":{"docs":{},"将":{"docs":{},"被":{"docs":{},"引":{"docs":{},"用":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"(":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},"被":{"docs":{},"分":{"docs":{},"配":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"将":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"汇":{"docs":{},"编":{"docs":{},"语":{"docs":{},"言":{"docs":{},"课":{"docs":{},"程":{"docs":{},"学":{"docs":{},"习":{"docs":{},"中":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"接":{"docs":{},"触":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"下":{"docs":{},"面":{"docs":{},"简":{"docs":{},"单":{"docs":{},"回":{"docs":{},"顾":{"docs":{},"一":{"docs":{},"下":{"docs":{},"。":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"次":{"docs":{},"调":{"docs":{},"用":{"docs":{},"和":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"开":{"docs":{},"辟":{"docs":{},"一":{"docs":{},"块":{"docs":{},"新":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"块":{"docs":{},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"就":{"docs":{},"叫":{"docs":{},"做":{"docs":{},"“":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"”":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"的":{"docs":{},"各":{"docs":{},"种":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"需":{"docs":{},"要":{"docs":{},"临":{"docs":{},"时":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"局":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"语":{"docs":{},"句":{"docs":{},"顺":{"docs":{},"序":{"docs":{},",":{"docs":{},"逐":{"docs":{},"一":{"docs":{},"访":{"docs":{},"问":{"docs":{},"所":{"docs":{},"有":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"声":{"docs":{},"明":{"docs":{},"。":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"变":{"docs":{},"量":{"docs":{},"声":{"docs":{},"明":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"赋":{"docs":{},"予":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"它":{"docs":{},"存":{"docs":{},"入":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"在":{"docs":{},"定":{"docs":{},"义":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"正":{"docs":{},"在":{"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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"准":{"docs":{},"备":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},",":{"docs":{},"所":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"但":{"docs":{},"即":{"docs":{},"便":{"docs":{},"实":{"docs":{},"参":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"左":{"docs":{},"值":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"参":{"docs":{},"和":{"docs":{},"形":{"docs":{},"参":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"7":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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":{"./":{"ref":"./","tf":0.002702702702702703},"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.002702702702702703}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"把":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}}},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"等":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}},"如":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"交":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"参":{"docs":{},"考":{"docs":{},",":{"docs":{},"也":{"docs":{},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"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.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"须":{"docs":{},"在":{"docs":{},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"告":{"docs":{},"知":{"docs":{},"给":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"同":{"docs":{},"学":{"docs":{},"拷":{"docs":{},"贝":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"果":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"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.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"认":{"docs":{},"为":{"docs":{},"成":{"docs":{},"绩":{"docs":{},"有":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"请":{"docs":{},"及":{"docs":{},"时":{"docs":{},"与":{"docs":{},"助":{"docs":{},"教":{"docs":{},"联":{"docs":{},"系":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"多":{"docs":{},"次":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"机":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"关":{"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.0078125}}}}}}}}}}}}}}}}}}}}}},"使":{"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/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}},"全":{"docs":{},"局":{"docs":{},"变":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"何":{"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.0012642225031605564}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"学":{"docs":{},"术":{"docs":{},"规":{"docs":{},"范":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},",":{"docs":{},"称":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"的":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}},"验":{"docs":{},"思":{"docs":{},"路":{"docs":{},"指":{"docs":{},"导":{"docs":{},"与":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"报":{"docs":{},"告":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"指":{"docs":{},"导":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"书":{"docs":{},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"(":{"docs":{},"首":{"docs":{},"页":{"docs":{},"有":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"提":{"docs":{},"交":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"框":{"docs":{},"架":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"视":{"docs":{},"频":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"相":{"docs":{},"对":{"docs":{},"于":{"2":{"0":{"2":{"2":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"进":{"docs":{},"行":{"docs":{},"了":{"docs":{},"以":{"docs":{},"下":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":10.02061855670103}}}}}},",":{"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}}},"中":{"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.0012642225031605564}}}}}}}}}}}}}}}}},"所":{"docs":{},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"概":{"docs":{},"述":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"环":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"介":{"docs":{"./":{"ref":"./","tf":10}}}},"起":{"docs":{},"点":{"docs":{},"和":{"docs":{},"基":{"docs":{},"本":{"docs":{},"要":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"中":{"docs":{},"有":{"docs":{},"与":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"际":{"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.005813953488372093}}}}}}}}}}}}}}},"上":{"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.009900990099009901}}}}}}}}}}}}}}}}}}},"对":{"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.0038910505836575876}},"其":{"docs":{},"他":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}},"含":{"docs":{},"有":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{},"c":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"仅":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"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.006329113924050633}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"标":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125},"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.003968253968253968}},"的":{"docs":{},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"。":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"每":{"docs":{},"当":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"为":{"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.0024630541871921183}}}}}}},"结":{"docs":{},"点":{"docs":{},"时":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"到":{"docs":{},"框":{"docs":{},"架":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},":":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"着":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}},"结":{"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.005681818181818182}}}}}},"有":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},":":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},"虽":{"docs":{},"然":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}}}}},"象":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"未":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"尤":{"docs":{},"为":{"docs":{},"重":{"docs":{},"要":{"docs":{},",":{"docs":{},"掌":{"docs":{},"握":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"和":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"的":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},"与":{"docs":{},"使":{"docs":{},"用":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"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":{},"达":{"docs":{},"式":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"2":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}}}}}}}}}},"说":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},"年":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"秋":{"docs":{},"季":{"docs":{},"学":{"docs":{},"期":{"docs":{},"《":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"》":{"docs":{},"课":{"docs":{},"程":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"贴":{"docs":{},"合":{"docs":{},"课":{"docs":{},"程":{"docs":{},"教":{"docs":{},"学":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"提":{"docs":{},"升":{"docs":{},"训":{"docs":{},"练":{"docs":{},"效":{"docs":{},"果":{"docs":{},",":{"docs":{},"课":{"docs":{},"程":{"docs":{},"组":{"docs":{},"设":{"docs":{},"计":{"docs":{},"了":{"docs":{},"比":{"docs":{},"较":{"docs":{},"完":{"docs":{},"善":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"沿":{"docs":{},"用":{"docs":{},"了":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"来":{"docs":{},"集":{"docs":{},"中":{"docs":{},"解":{"docs":{},"决":{"docs":{},"大":{"docs":{},"家":{"docs":{},"在":{"docs":{},"环":{"docs":{},"境":{"docs":{},"配":{"docs":{},"置":{"docs":{},"及":{"docs":{},"完":{"docs":{},"成":{"docs":{},"实":{"docs":{},"验":{"docs":{},"中":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"了":{"docs":{},"任":{"docs":{},"何":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{},"中":{"docs":{},"检":{"docs":{},"索":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"尚":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"得":{"docs":{},"分":{"docs":{},"乘":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"到":{"docs":{},"的":{"docs":{},"这":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.005405405405405406}}},"只":{"docs":{},"接":{"docs":{},"受":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"将":{"docs":{},"会":{"docs":{},"对":{"docs":{},"所":{"docs":{},"有":{"docs":{},"同":{"docs":{},"学":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"作":{"docs":{},"相":{"docs":{},"似":{"docs":{},"度":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"如":{"docs":{},"发":{"docs":{},"现":{"docs":{},"有":{"docs":{},"代":{"docs":{},"码":{"docs":{},"雷":{"docs":{},"同":{"docs":{},"的":{"docs":{},"情":{"docs":{},"形":{"docs":{},",":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"和":{"docs":{},"被":{"docs":{},"拷":{"docs":{},"贝":{"docs":{},"者":{"docs":{},"将":{"docs":{},"会":{"docs":{},"得":{"docs":{},"到":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"易":{"docs":{},"到":{"docs":{},"难":{"docs":{},"完":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"提":{"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":{},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"会":{"docs":{},"将":{"docs":{},"你":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"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.02040816326530612}}}}}}}}}}}}}}},"先":{"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.014492753623188406}}}}}}}}}}}}},"增":{"docs":{},"加":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"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.0024630541871921183}}}}}}}}}}}}}}}},"在":{"docs":{},"这":{"docs":{},"里":{"docs":{},"针":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"只":{"docs":{},"是":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"目":{"docs":{},"的":{"docs":{},"是":{"docs":{},"给":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"致":{"docs":{},"的":{"docs":{},"印":{"docs":{},"象":{"docs":{},":":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"到":{"docs":{},"底":{"docs":{},"是":{"docs":{},"由":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"部":{"docs":{},"分":{"docs":{},"组":{"docs":{},"成":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"部":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"规":{"docs":{},"定":{"docs":{},"整":{"docs":{},"数":{"docs":{},"运":{"docs":{},"算":{"docs":{},"越":{"docs":{},"界":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"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.005681818181818182}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"忽":{"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":{},"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":{},"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":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"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":{},"于":{"docs":{},"_":{"docs":{},"t":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"发":{"docs":{},"现":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"用":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"采":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}},"加":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}}},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"检":{"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.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}}}}},"对":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"条":{"docs":{},"件":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}}}}}}},"的":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"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.014925373134328358}}}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"已":{"docs":{},"经":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"额":{"docs":{},"外":{"docs":{},"定":{"docs":{},"义":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"了":{"docs":{},"。":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"己":{"docs":{},"试":{"docs":{},"试":{"docs":{},",":{"docs":{},"按":{"docs":{},"照":{"docs":{},"本":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"上":{"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"首":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}},"人":{"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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}},"暂":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}},"对":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},"不":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"要":{"docs":{},"求":{"docs":{},"或":{"docs":{},"限":{"docs":{},"定":{"docs":{},";":{"docs":{},"但":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"要":{"docs":{},"求":{"docs":{},"支":{"docs":{},"持":{"docs":{},"固":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"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.004219409282700422}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00823045267489712}},"作":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"数":{"docs":{},"据":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"谓":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"假":{"docs":{},"设":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"数":{"docs":{},"量":{"docs":{},"是":{"docs":{},"无":{"docs":{},"限":{"docs":{},"的":{"docs":{},",":{"docs":{},"这":{"docs":{},"导":{"docs":{},"致":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},"无":{"docs":{},"法":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"对":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"做":{"docs":{},"一":{"docs":{},"一":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"调":{"docs":{},"度":{"docs":{},"与":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{},"来":{"docs":{},"合":{"docs":{},"理":{"docs":{},"使":{"docs":{},"用":{"docs":{},"有":{"docs":{},"限":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"本":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"分":{"docs":{},"析":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{},"满":{"docs":{},"足":{"docs":{},"什":{"docs":{},"么":{"docs":{},"性":{"docs":{},"质":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"基":{"docs":{},"本":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"需":{"docs":{},"的":{"docs":{},"底":{"docs":{},"层":{"docs":{},"类":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"有":{"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/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.004219409282700422}}}}}}}}}}}}}}},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{},"分":{"docs":{},"配":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"和":{"docs":{},"保":{"docs":{},"存":{"docs":{},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"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.003745318352059925}}}}}}}}}}}}}}}}},"指":{"docs":{},"导":{"docs":{},"书":{"docs":{},"上":{"docs":{},"的":{"docs":{},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}},"令":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"集":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"思":{"docs":{},"路":{"docs":{},"是":{"docs":{},"尽":{"docs":{},"可":{"docs":{},"能":{"docs":{},"简":{"docs":{},"洁":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"多":{"docs":{},"条":{"docs":{},"简":{"docs":{},"单":{"docs":{},"指":{"docs":{},"令":{"docs":{},"代":{"docs":{},"替":{"docs":{},"。":{"docs":{},"如":{"docs":{},"相":{"docs":{},"等":{"docs":{},"、":{"docs":{},"大":{"docs":{},"于":{"docs":{},"等":{"docs":{},"于":{"docs":{},"、":{"docs":{},"逻":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"计":{"docs":{},"算":{"docs":{},"在":{"docs":{},"内":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"至":{"docs":{},"少":{"docs":{},"执":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"每":{"docs":{},"条":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"其":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}},"由":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"不":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}},"来":{"docs":{},"支":{"docs":{},"持":{"docs":{},"加":{"docs":{},"载":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"完":{"docs":{},"成":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"以":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"执":{"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.006329113924050633}}}}}}}}}}}}}}}}}},"选":{"docs":{},"择":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"(":{"docs":{},"即":{"docs":{},"所":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"如":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"同":{"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.0012642225031605564}}}}}}}}}}}}}}}},"然":{"docs":{},"后":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"、":{"docs":{},"寄":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"样":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"部":{"docs":{},"分":{"docs":{},"代":{"docs":{},"码":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"只":{"docs":{},"要":{"docs":{},"在":{"docs":{},"你":{"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.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"合":{"docs":{},"(":{"docs":{},"说":{"docs":{},"出":{"docs":{},"两":{"docs":{},"种":{"docs":{},"可":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}}}},"都":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}},"为":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"得":{"docs":{},"到":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"的":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"组":{"docs":{},"元":{"docs":{},"素":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"在":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"每":{"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.0024630541871921183}}}}}},"顶":{"docs":{},",":{"docs":{},"f":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"栈":{"docs":{},"顶":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"/":{"docs":{},"补":{"docs":{},"交":{"docs":{},"时":{"docs":{},"间":{"docs":{},"是":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"供":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"环":{"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.0012642225031605564}},"与":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{},"发":{"docs":{},"生":{"docs":{},"越":{"docs":{},"界":{"docs":{},"的":{"docs":{},"一":{"docs":{},"步":{"docs":{},"计":{"docs":{},"算":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"再":{"docs":{},"像":{"docs":{},"现":{"docs":{},"在":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"时":{"docs":{},"统":{"docs":{},"一":{"docs":{},"给":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"1":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}},"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.0028011204481792717}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"无":{"docs":{},"法":{"docs":{},"用":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"直":{"docs":{},"接":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"的":{"docs":{},"下":{"docs":{},"标":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}},"和":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"参":{"docs":{},"相":{"docs":{},"对":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"度":{"docs":{},"的":{"docs":{"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}},"据":{"docs":{},"流":{"docs":{},"图":{"docs":{},"定":{"docs":{},"义":{"docs":{},"及":{"docs":{},"优":{"docs":{},"化":{"docs":{},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"分":{"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.005813953488372093}}}}}}}}}}}},"日":{"docs":{"./":{"ref":"./","tf":0.013513513513513514}},"(":{"docs":{},"第":{"docs":{},"十":{"docs":{},"六":{"docs":{},"周":{"docs":{},"周":{"docs":{},"日":{"docs":{},")":{"2":{"4":{"docs":{},":":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}},"是":{"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.0012642225031605564},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.011673151750972763},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},"一":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"很":{"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.0028011204481792717}}},"根":{"docs":{},"据":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"声":{"docs":{},"明":{"docs":{},",":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"b":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},"整":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"a":{"docs":{},"[":{"docs":{},"b":{"docs":{},"]":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}}},"条":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}},"在":{"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":{},"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"某":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"否":{"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":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}},"未":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"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.015384615384615385}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}},",":{"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.003968253968253968}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"本":{"docs":{},"身":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"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.0037313432835820895}},"代":{"docs":{},"码":{"docs":{},"片":{"docs":{},"段":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}},"其":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"传":{"docs":{},"参":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"申":{"docs":{},"请":{"docs":{},"完":{"docs":{},"整":{"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.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"讲":{"docs":{},"是":{"docs":{},"创":{"docs":{},"建":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"这":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"等":{"docs":{},"于":{"docs":{},"你":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}},"评":{"docs":{},"测":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"现":{"docs":{},"在":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"次":{"docs":{},"触":{"docs":{},"发":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},",":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"新":{"docs":{},"的":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}},"终":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"月":{"docs":{"./":{"ref":"./","tf":0.010810810810810811}}},"本":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"学":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"实":{"docs":{},"验":{"docs":{},"要":{"docs":{},"求":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"通":{"docs":{},"过":{"docs":{},"多":{"docs":{},"次":{"docs":{},"“":{"docs":{},"思":{"docs":{},"考":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"实":{"docs":{},"验":{"docs":{},"一":{"docs":{},"共":{"docs":{},"设":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"步":{"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.0012642225031605564}}}}}}}}}}}}}},"中":{"docs":{},"其":{"docs":{},"他":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"和":{"docs":{},"方":{"docs":{},"法":{"docs":{},"与":{"docs":{},"取":{"docs":{},"负":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"借":{"docs":{},"鉴":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"实":{"docs":{},"现":{"docs":{},"剩":{"docs":{},"下":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{},"和":{"docs":{},"按":{"docs":{},"位":{"docs":{},"非":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"实":{"docs":{},"验":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"取":{"docs":{},"负":{"docs":{},"的":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"加":{"docs":{},"法":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"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.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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"无":{"docs":{},"须":{"docs":{},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"语":{"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.005263157894736842}}}}}}}}},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"和":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"调":{"docs":{},"用":{"docs":{},"未":{"docs":{},"声":{"docs":{},"明":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"定":{"docs":{},"义":{"docs":{},"同":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"(":{"docs":{},"允":{"docs":{},"许":{"docs":{},"重":{"docs":{},"复":{"docs":{},"声":{"docs":{},"明":{"docs":{},",":{"docs":{},"但":{"docs":{},"要":{"docs":{},"求":{"docs":{},"声":{"docs":{},"明":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},")":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"全":{"docs":{},"局":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"里":{"docs":{},"维":{"docs":{},"护":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"方":{"docs":{},"式":{"docs":{},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}},"引":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"为":{"docs":{},":":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}}},"节":{"docs":{},"指":{"docs":{},"导":{"docs":{},"用":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"主":{"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"安":{"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.0012642225031605564}}}}}}},"判":{"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":{},"们":{"docs":{},"预":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},"了":{"docs":{},"解":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"其":{"docs":{},"提":{"docs":{},"交":{"docs":{},"方":{"docs":{},"式":{"docs":{},"是":{"docs":{},"放":{"docs":{},"在":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},"框":{"docs":{},"架":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step11/example.html":{"ref":"docs/step11/example.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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"中":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"确":{"docs":{},"输":{"docs":{},"出":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}},"的":{"docs":{},"后":{"docs":{},"端":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}},"本":{"docs":{},"身":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}},"里":{"docs":{},"已":{"docs":{},"经":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}},"中":{"docs":{},"不":{"docs":{},"同":{"docs":{},"运":{"docs":{},"算":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"会":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"新":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"、":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"等":{"docs":{},")":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"参":{"docs":{},"考":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"比":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"步":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}},"节":{"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/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{},"进":{"docs":{},"而":{"docs":{},"深":{"docs":{},"入":{"docs":{},"理":{"docs":{},"解":{"docs":{},"编":{"docs":{},"译":{"docs":{},"原":{"docs":{},"理":{"docs":{},"和":{"docs":{},"相":{"docs":{},"关":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"具":{"docs":{},"备":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"面":{"docs":{},"依":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"将":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"扩":{"docs":{},"大":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"变":{"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.0012642225031605564}}},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"里":{"docs":{},"面":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"(":{"docs":{},"如":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}},")":{"docs":{},"一":{"docs":{},"般":{"docs":{},"存":{"docs":{},"在":{"docs":{},"较":{"docs":{},"大":{"docs":{},"的":{"docs":{},"差":{"docs":{},"别":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"直":{"docs":{},"接":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"为":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"困":{"docs":{},"难":{"docs":{},"的":{"docs":{},"。":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"中":{"docs":{},"所":{"docs":{},"采":{"docs":{},"取":{"docs":{},"的":{"docs":{},"做":{"docs":{},"法":{"docs":{},",":{"docs":{},"是":{"docs":{},"首":{"docs":{},"先":{"docs":{},"把":{"docs":{},"源":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"一":{"docs":{},"种":{"docs":{},"相":{"docs":{},"对":{"docs":{},"接":{"docs":{},"近":{"docs":{},"目":{"docs":{},"标":{"docs":{},"语":{"docs":{},"言":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"表":{"docs":{},"示":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"有":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"对":{"docs":{},"应":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"的":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"标":{"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.023255813953488372}}}}}}}}}}}}}}},"的":{"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.005813953488372093}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"中":{"docs":{},"看":{"docs":{},"到":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"你":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},"知":{"docs":{},"识":{"docs":{},"都":{"docs":{},"比":{"docs":{},"较":{"docs":{},"初":{"docs":{},"级":{"docs":{},",":{"docs":{},"随":{"docs":{},"着":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"深":{"docs":{},"入":{"docs":{},",":{"docs":{},"将":{"docs":{},"会":{"docs":{},"循":{"docs":{},"序":{"docs":{},"渐":{"docs":{},"进":{"docs":{},"地":{"docs":{},"引":{"docs":{},"入":{"docs":{},"各":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{},"文":{"docs":{},"档":{"docs":{},"对":{"docs":{},"相":{"docs":{},"关":{"docs":{},"技":{"docs":{},"术":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"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.010309278350515464},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"实":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"例":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"会":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"在":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},"时":{"docs":{},"刻":{"docs":{},"只":{"docs":{},"能":{"docs":{},"容":{"docs":{},"纳":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"为":{"docs":{},"了":{"docs":{},"把":{"docs":{},"若":{"docs":{},"干":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"塞":{"docs":{},"到":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"各":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"分":{"docs":{},"别":{"docs":{},"在":{"docs":{},"哪":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"以":{"docs":{},"后":{"docs":{},"不":{"docs":{},"会":{"docs":{},"再":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"(":{"docs":{},"以":{"docs":{},"便":{"docs":{},"腾":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"占":{"docs":{},"用":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"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":{},"要":{"docs":{},"增":{"docs":{},"加":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"模":{"docs":{},"块":{"docs":{},"没":{"docs":{},"有":{"docs":{},"新":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{},"除":{"docs":{},"非":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"可":{"docs":{},"以":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"已":{"docs":{},"经":{"docs":{},"分":{"docs":{},"配":{"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":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.010810810810810811},"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/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"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.02631578947368421}},"子":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}},"现":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}},"帐":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}},"得":{"docs":{},"分":{"docs":{},"为":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"成":{"docs":{},"绩":{"docs":{},"是":{"docs":{},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"对":{"docs":{},"实":{"docs":{},"验":{"docs":{},"内":{"docs":{},"容":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"占":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}},"自":{"docs":{},"动":{"docs":{},"化":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"结":{"docs":{},"果":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"止":{"docs":{},"时":{"docs":{},"间":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"文":{"docs":{},"档":{"docs":{},"都":{"docs":{},"将":{"docs":{},"以":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"组":{"docs":{},"织":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}},"法":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"候":{"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":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"今":{"docs":{},"年":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"就":{"docs":{},"叫":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}},"结":{"docs":{},"果":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}}}},"注":{"docs":{},"释":{"docs":{},"里":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"提":{"docs":{},"示":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"提":{"docs":{},"示":{"docs":{},",":{"docs":{},"如":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"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.0012642225031605564}}}}},"同":{"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":3.333333333333333}},"。":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"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.0028011204481792717}}}},"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.003968253968253968}}}}}}}}}}}}}}}}}}},"返":{"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":{},"测":{"docs":{},"试":{"docs":{},"。":{"docs":{},"请":{"docs":{},"保":{"docs":{},"证":{"docs":{},"你":{"docs":{},"所":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.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/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"性":{"docs":{},",":{"docs":{},"理":{"docs":{},"论":{"docs":{},"上":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.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/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":{},"来":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"形":{"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.0028011204481792717}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"调":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"将":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"编":{"docs":{},"译":{"docs":{},"为":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"全":{"docs":{},"流":{"docs":{},"程":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"使":{"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.0012642225031605564}}}}}}}}}}}}}}}}}},"入":{"docs":{},"门":{"docs":{},",":{"docs":{},"但":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"方":{"docs":{},"式":{"docs":{},"更":{"docs":{},"符":{"docs":{},"合":{"docs":{},"你":{"docs":{},"的":{"docs":{},"直":{"docs":{},"觉":{"docs":{},"。":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}}}}}}},"对":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"进":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"经":{"docs":{},"过":{"docs":{},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"输":{"docs":{},"出":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}},",":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}},"大":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"方":{"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/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/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"程":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"运":{"docs":{},"算":{"docs":{},"结":{"docs":{},"点":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"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.0024630541871921183}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"栈":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"减":{"docs":{},"去":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"加":{"docs":{},"上":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"存":{"docs":{},"储":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"都":{"docs":{},"会":{"docs":{},"去":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"都":{"docs":{},"指":{"docs":{},"向":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},"赋":{"docs":{},"给":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},",":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}},"为":{"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.007677543186180422}}}}}}},"含":{"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.014492753623188406}}}}}}},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"并":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"它":{"docs":{},"的":{"docs":{},"布":{"docs":{},"局":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}}}},"“":{"docs":{},"替":{"docs":{},"身":{"docs":{},"”":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"同":{"docs":{},"时":{"docs":{},"在":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"这":{"docs":{},"并":{"docs":{},"不":{"docs":{},"产":{"docs":{},"生":{"docs":{},"冲":{"docs":{},"突":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"由":{"docs":{},"于":{"docs":{},"本":{"docs":{},"节":{"docs":{},"还":{"docs":{},"无":{"docs":{},"需":{"docs":{},"支":{"docs":{},"持":{"docs":{},"全":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"左":{"docs":{},"操":{"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":{},"有":{"docs":{},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"声":{"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.01282051282051282}}}}},"分":{"docs":{},"支":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}},"求":{"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.0038910505836575876}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"了":{"docs":{},"它":{"docs":{},"的":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}},"标":{"docs":{},"准":{"docs":{},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"(":{"docs":{},"g":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"学":{"docs":{},"习":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"知":{"docs":{},"道":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"存":{"docs":{},"储":{"docs":{},"在":{"docs":{},"特":{"docs":{},"别":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"段":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{},"课":{"docs":{},"程":{"docs":{},"实":{"docs":{},"验":{"docs":{},"建":{"docs":{},"议":{"docs":{},"的":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"方":{"docs":{},"式":{"docs":{},"为":{"docs":{},":":{"docs":{},"首":{"docs":{},"先":{"docs":{},"加":{"docs":{},"载":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"根":{"docs":{},"据":{"docs":{},"地":{"docs":{},"址":{"docs":{},"来":{"docs":{},"加":{"docs":{},"载":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"指":{"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.005813953488372093}}}}}}}}}}}}}}}},"代":{"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.0037313432835820895}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},":":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"和":{"docs":{},"传":{"docs":{},"参":{"docs":{},":":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}},"博":{"docs":{},"文":{"docs":{},",":{"docs":{},"其":{"docs":{},"与":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}}}}},"相":{"docs":{},"关":{"docs":{},"资":{"docs":{},"源":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"信":{"docs":{},"息":{"docs":{"docs/step0/riscv.html":{"ref":"docs/step0/riscv.html","tf":0.00411522633744856}}}},"的":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"同":{"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.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}},"即":{"docs":{},"“":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}}},"似":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"硬":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"译":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"里":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"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.0028011204481792717}}}}},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},"和":{"docs":{},"变":{"docs":{},"量":{"docs":{},"名":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"统":{"docs":{},"一":{"docs":{},"用":{"docs":{},"一":{"docs":{},"种":{"docs":{},"具":{"docs":{},"有":{"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.0028011204481792717}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"变":{"docs":{},"/":{"docs":{},"常":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}},"是":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"标":{"docs":{},"签":{"docs":{},"和":{"docs":{},"指":{"docs":{},"令":{"docs":{},"构":{"docs":{},"成":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"报":{"docs":{},"错":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"所":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"并":{"docs":{},"非":{"docs":{},"表":{"docs":{},"示":{"docs":{},"了":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"细":{"docs":{},"节":{"docs":{},"的":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333}},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"因":{"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.005263157894736842}}}}}}}}}}}}}}}}}},"流":{"docs":{},"程":{"docs":{},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"接":{"docs":{},"口":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"点":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"生":{"docs":{},"成":{"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.0012642225031605564}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"只":{"docs":{},"能":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"a":{"docs":{},"s":{"docs":{},"t":{"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/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/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"0":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},"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.005263157894736842}}}}}}}}}}}}}}}}}},"二":{"docs":{},"种":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"简":{"docs":{},"要":{"docs":{},"叙":{"docs":{},"述":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}},"单":{"docs":{},"的":{"docs":{},"启":{"docs":{},"发":{"docs":{},"式":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"算":{"docs":{},"法":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"说":{"docs":{},",":{"docs":{},"狭":{"docs":{},"义":{"docs":{},"上":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"把":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"成":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},",":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"器":{"docs":{},"把":{"docs":{},"文":{"docs":{},"本":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"给":{"docs":{},"编":{"docs":{},"码":{"docs":{},"到":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"链":{"docs":{},"接":{"docs":{},"器":{"docs":{},"变":{"docs":{},"成":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"组":{"docs":{},"织":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"实":{"docs":{},"验":{"docs":{},",":{"docs":{},"各":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}},"编":{"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.002702702702702703}},"分":{"docs":{},"为":{"docs":{},"多":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"框":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}},"到":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"致":{"docs":{},"划":{"docs":{},"分":{"docs":{},"为":{"docs":{},"三":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":5.002801120448179}}}},"的":{"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/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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}}}},"优":{"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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{},"相":{"docs":{},"互":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"设":{"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":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}},"评":{"docs":{},"分":{"docs":{},"会":{"docs":{},"以":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}},"标":{"docs":{},"准":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}},"语":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"的":{"docs":{},"手":{"docs":{},"工":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}},"树":{"docs":{},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"可":{"docs":{},"以":{"docs":{},"说":{"docs":{},"明":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}},"器":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"5":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}},"docs":{}}}}}},"我":{"docs":{},"们":{"docs":{},"继":{"docs":{},"续":{"docs":{},"修":{"docs":{},"改":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}}}}},"改":{"docs":{},"动":{"docs":{},"不":{"docs":{},"大":{"docs":{"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}},"的":{"docs":{},"改":{"docs":{},"动":{"docs":{},"是":{"docs":{},":":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"改":{"docs":{},"动":{"docs":{},",":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"里":{"docs":{},"都":{"docs":{},"是":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}},"言":{"docs":{},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}},"的":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"与":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}},"将":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"变":{"docs":{},"得":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"都":{"docs":{},"会":{"docs":{},"增":{"docs":{},"加":{"docs":{},"部":{"docs":{},"分":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"支":{"docs":{},"持":{"docs":{},"相":{"docs":{},"关":{"docs":{},"语":{"docs":{},"言":{"docs":{},"特":{"docs":{},"性":{"docs":{},"的":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"结":{"docs":{},"构":{"docs":{},"或":{"docs":{},"程":{"docs":{},"序":{"docs":{},"(":{"docs":{},"如":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"完":{"docs":{},"整":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},",":{"docs":{},"能":{"docs":{},"够":{"docs":{},"把":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"的":{"docs":{},"边":{"docs":{},"界":{"docs":{},"情":{"docs":{},"况":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"流":{"docs":{},"行":{"docs":{},"的":{"docs":{},"语":{"docs":{},"言":{"docs":{},"中":{"docs":{},",":{"docs":{},"短":{"docs":{},"路":{"docs":{},"求":{"docs":{},"值":{"docs":{},"都":{"docs":{},"是":{"docs":{},"被":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"。":{"docs":{},"为":{"docs":{},"何":{"docs":{},"这":{"docs":{},"一":{"docs":{},"特":{"docs":{},"性":{"docs":{},"广":{"docs":{},"受":{"docs":{},"欢":{"docs":{},"迎":{"docs":{},"?":{"docs":{},"你":{"docs":{},"认":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"数":{"docs":{},"学":{"docs":{},"运":{"docs":{},"算":{"docs":{},"和":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"比":{"docs":{},"较":{"docs":{},"运":{"docs":{},"算":{"docs":{},"了":{"docs":{},",":{"docs":{},"成":{"docs":{},"就":{"docs":{},"感":{"docs":{},"满":{"docs":{},"满":{"docs":{},"!":{"docs":{},"然":{"docs":{},"而":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"你":{"docs":{},"的":{"docs":{},"计":{"docs":{},"算":{"docs":{},"器":{"docs":{},"还":{"docs":{},"只":{"docs":{},"能":{"docs":{},"支":{"docs":{},"持":{"docs":{},"常":{"docs":{},"量":{"docs":{},"计":{"docs":{},"算":{"docs":{},",":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"同":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}},",":{"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.018518518518518517}}}}}}}}}}}}}}}},"检":{"docs":{},"查":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282}}}}}}}}},"中":{"docs":{},"条":{"docs":{},"件":{"docs":{},"和":{"docs":{},"循":{"docs":{},"环":{"docs":{},"控":{"docs":{},"制":{"docs":{},"流":{"docs":{},"语":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}},"我":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"类":{"docs":{},"型":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"规":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}},"规":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"句":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},";":{"docs":{},"此":{"docs":{},"外":{"docs":{},",":{"docs":{},"想":{"docs":{},"要":{"docs":{},"输":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.07142857142857142}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"是":{"docs":{},"整":{"docs":{},"型":{"docs":{},"常":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"递":{"docs":{},"归":{"docs":{},"地":{"docs":{},"访":{"docs":{},"问":{"docs":{},"运":{"docs":{},"算":{"docs":{},"操":{"docs":{},"作":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"子":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}}},"结":{"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":{},"接":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}},",":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}},"我":{"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.005263157894736842}},"两":{"docs":{},"条":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"表":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}},"意":{"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.0038910505836575876}}}}}}}}}}}}},"终":{"docs":{},"止":{"docs":{},"该":{"docs":{},"条":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}},"当":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"类":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"。":{"docs":{"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}},"块":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}},"不":{"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/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"和":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}},"条":{"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.018518518518518517}}}}}}}}}}}}}}}}}}}}},"时":{"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.005263157894736842}}}}}}}}}}}},"没":{"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/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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"动":{"docs":{},"态":{"docs":{},"维":{"docs":{},"护":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"相":{"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.005263157894736842}}}}}}}}}}}}}}}}}},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"何":{"docs":{},"处":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"这":{"docs":{},"儿":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"循":{"docs":{},"环":{"docs":{},"变":{"docs":{},"量":{"docs":{},"处":{"docs":{},"于":{"docs":{},"一":{"docs":{},"个":{"docs":{},"独":{"docs":{},"自":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"里":{"docs":{},"。":{"docs":{},"这":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"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.0038910505836575876}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}},"要":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"要":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"计":{"docs":{},"算":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"规":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"检":{"docs":{},"查":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"了":{"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.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":{},"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.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"所":{"docs":{},"有":{"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.002702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},",":{"docs":{},"实":{"docs":{},"验":{"docs":{},"指":{"docs":{},"导":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"生":{"docs":{},"成":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"、":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"、":{"docs":{},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"按":{"docs":{},"照":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"能":{"docs":{},"够":{"docs":{},"通":{"docs":{},"过":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"严":{"docs":{},"格":{"docs":{},"杜":{"docs":{},"绝":{"docs":{},"抄":{"docs":{},"袭":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"代":{"docs":{},"码":{"docs":{},"查":{"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.002702702702702703}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"赋":{"docs":{},"值":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"只":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"所":{"docs":{},"得":{"docs":{},"的":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"我":{"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.0078125}}}}}}}},"问":{"docs":{},"是":{"docs":{},"后":{"docs":{},"端":{"docs":{},"实":{"docs":{},"现":{"docs":{},"上":{"docs":{},"有":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"务":{"docs":{},"必":{"docs":{},"注":{"docs":{},"意":{"docs":{},"上":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}},"画":{"docs":{},"出":{"docs":{},"下":{"docs":{},"面":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}},"课":{"docs":{},"程":{"docs":{},"问":{"docs":{},"答":{"docs":{},"墙":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}},"实":{"docs":{},"验":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"平":{"docs":{},"台":{"docs":{},"为":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}},"中":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"重":{"docs":{},"提":{"docs":{},"一":{"docs":{},"下":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{"./":{"ref":"./","tf":0.002702702702702703},"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}},"数":{"docs":{},"字":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"存":{"docs":{},"储":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}},"符":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"对":{"docs":{},"应":{"docs":{},"着":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"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":{},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"要":{"docs":{},"求":{"docs":{},"数":{"docs":{},"组":{"docs":{},"仍":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"但":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}},"同":{"docs":{},"样":{"docs":{},"也":{"docs":{},"是":{"docs":{},"未":{"docs":{},"定":{"docs":{},"义":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}}}}}}}},"里":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"无":{"docs":{},"关":{"docs":{},"文":{"docs":{},"法":{"docs":{},",":{"docs":{},"大":{"docs":{},"家":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}},"函":{"docs":{},"数":{"docs":{},"里":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"数":{"docs":{},"据":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"就":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"我":{"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.014492753623188406}}}}}}}}}}}}}}}}},"节":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"句":{"docs":{},"后":{"docs":{},"已":{"docs":{},"经":{"docs":{},"为":{"docs":{},"其":{"docs":{},"定":{"docs":{},"义":{"docs":{},")":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"时":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"先":{"docs":{},"把":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"奇":{"docs":{},"怪":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"索":{"docs":{},"引":{"docs":{},"运":{"docs":{},"算":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"能":{"docs":{},"需":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"来":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},"些":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}},"也":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}},"里":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"为":{"docs":{},"准":{"docs":{},",":{"docs":{},"详":{"docs":{},"见":{"docs":{},"补":{"docs":{},"交":{"docs":{},"政":{"docs":{},"策":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"也":{"docs":{},"是":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"新":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}}}}}},"面":{"docs":{},"的":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}},"额":{"docs":{},"外":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"和":{"docs":{},"数":{"docs":{},"组":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{},"数":{"docs":{},"组":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{},"传":{"docs":{},"参":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"一":{"docs":{},"种":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"重":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{},"”":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"一":{"docs":{},"步":{"docs":{},"步":{"docs":{},"实":{"docs":{},"现":{"docs":{},"从":{"docs":{},"简":{"docs":{},"单":{"docs":{},"到":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}}}}},"名":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"点":{"docs":{},",":{"docs":{},"其":{"docs":{},"次":{"docs":{},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"以":{"docs":{},"一":{"docs":{},"个":{"docs":{},"当":{"docs":{},"前":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}}}}}},"替":{"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.03571428571428571}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"了":{"docs":{},"测":{"docs":{},"试":{"docs":{},"用":{"docs":{},"例":{"docs":{},"中":{"docs":{},"和":{"docs":{},"本":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"最":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"我":{"docs":{},"们":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}},":":{"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":{},"的":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"在":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}},"说":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"检":{"docs":{},"查":{"docs":{},"重":{"docs":{},"构":{"docs":{},"进":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"申":{"docs":{},"请":{"docs":{},"更":{"docs":{},"大":{"docs":{},"的":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}},",":{"docs":{},"将":{"docs":{},"作":{"docs":{},"业":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"那":{"docs":{},"个":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.002702702702702703}}}}}}}}}}}}}}},"设":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"又":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"且":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"一":{"docs":{},"条":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"语":{"docs":{},"句":{"docs":{},"通":{"docs":{},"过":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"了":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"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":{},"将":{"2":{"0":{"2":{"2":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"使":{"docs":{},"得":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}},"]":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"_":{"docs":{},"t":{"0":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01680672268907563},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"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.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}},"两":{"docs":{},"句":{"docs":{},"比":{"docs":{},"较":{"docs":{},"直":{"docs":{},"接":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"也":{"docs":{},"能":{"docs":{},"较":{"docs":{},"为":{"docs":{},"容":{"docs":{},"易":{"docs":{},"的":{"docs":{},"想":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"汇":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"检":{"docs":{},"查":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"已":{"docs":{},"经":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"是":{"docs":{},",":{"docs":{},"则":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},"把":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"寄":{"docs":{},"存":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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":{},"t":{"0":{"docs":{},"作":{"docs":{},"为":{"docs":{},"参":{"docs":{},"数":{"docs":{},"x":{"docs":{},"放":{"docs":{},"入":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"a":{"0":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"此":{"docs":{},"时":{"docs":{},"t":{"0":{"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":{},"t":{"2":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"要":{"docs":{},"先":{"docs":{},"将":{"docs":{},"t":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"1":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0234375},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.011204481792717087},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.014778325123152709},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.010526315789473684},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.023032629558541268},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"测":{"docs":{},"例":{"docs":{},"中":{"docs":{},"直":{"docs":{},"接":{"docs":{},"用":{"docs":{},"返":{"docs":{},"回":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"过":{"docs":{},"程":{"docs":{},"发":{"docs":{},"生":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},",":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},",":{"docs":{},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"2":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.014005602240896359},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.010526315789473684},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527}},")":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"该":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"为":{"docs":{},"其":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"将":{"docs":{},"为":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"为":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}},"3":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"}":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.015306122448979591}}},",":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}},"4":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}},"5":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}},"docs":{}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"_":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}},"l":{"1":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.013559322033898305}},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.006779661016949152},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}},")":{"docs":{},"是":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},"。":{"docs":{},"初":{"docs":{},"次":{"docs":{},"进":{"docs":{},"入":{"docs":{},"循":{"docs":{},"环":{"docs":{},"时":{"docs":{},",":{"docs":{},"从":{"docs":{},"这":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"2":{"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/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.005263157894736842}}}}}}},"3":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},")":{"docs":{},"处":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"docs":{},"k":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"[":{"docs":{},"i":{"docs":{},"]":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},":":{"docs":{},":":{"docs":{},"f":{"docs":{},"p":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}},",":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"1":{"docs":{},",":{"docs":{},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.034722222222222224},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.05161290322580645}}}}}}}},"2":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.034722222222222224},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.05161290322580645}}},"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},"d":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.011516314779270634}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}},"\"":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"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}}}}},"l":{"docs":{},"f":{"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.01646090534979424},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}},"(":{"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}}}}},"i":{"docs":{},"f":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}},"x":{"docs":{},"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":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255}}}}}}}}},"p":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"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.061224489795918366},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.025},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.029850746268656716},"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.015384615384615385},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.057971014492753624},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.024390243902439025},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.033783783783783786},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.07407407407407407},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.03125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.05128205128205128},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0311284046692607},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0299625468164794},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.029850746268656716},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.0379746835443038},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.035856573705179286}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},",":{"docs":{},"变":{"docs":{},"成":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},"?":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.07692307692307693},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.023346303501945526},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.02247191011235955},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.022388059701492536},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.02531645569620253},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.02390438247011952}}},")":{"docs":{},"。":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}}}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}}}}}}}}}}},"b":{"docs":{},"n":{"docs":{},"f":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.06153846153846154},"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.01556420233463035},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.01593625498007968}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"u":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"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.0024630541871921183}}}}}}}}}},",":{"docs":{},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}},")":{"docs":{},"。":{"docs":{},"假":{"docs":{},"设":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"只":{"docs":{},"有":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"t":{"0":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"t":{"1":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"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":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"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":{},"逻":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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.0064516129032258064}}},"docs":{}}}}}},"docs":{}}}}}}}},"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.01744186046511628},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.012658227848101266}},",":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}}},"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},",":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"3":{"docs":{},",":{"docs":{},"t":{"1":{"docs":{},",":{"docs":{},"t":{"2":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"docs":{}}}},"3":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"docs":{}}}},"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"中":{"docs":{},"的":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{},"测":{"docs":{},"试":{"docs":{},"脚":{"docs":{},"本":{"docs":{},",":{"docs":{},"将":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"c":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.007281553398058253}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"(":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},")":{"docs":{},"与":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"相":{"docs":{},"应":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"解":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"=":{"docs":{},")":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}}}}}}}},"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}}}}}},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.028011204481792718},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.021491782553729456},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"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.031578947368421054},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}}}}}}}}}}}}}}},"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.0012642225031605564}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},")":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"/":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},".":{"docs":{},"c":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464},"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.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.011673151750972763},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0149812734082397},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.014925373134328358},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.016877637130801686},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.057692307692307696},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0199203187250996}},"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"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.0012642225031605564}},"如":{"docs":{},"果":{"docs":{},"没":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"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":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},".":{"docs":{},"h":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}},"_":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"开":{"docs":{},"头":{"docs":{},"。":{"docs":{},"更":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"解":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"(":{"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}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"docs/step3/example.html":{"ref":"docs/step3/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/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"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":{},"是":{"docs":{},"必":{"docs":{},"须":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"合":{"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.0037313432835820895}}}}}}}}},"一":{"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.0028011204481792717}}}}}}},"出":{"docs":{},"意":{"docs":{},"外":{"docs":{},"你":{"docs":{},"会":{"docs":{},"获":{"docs":{},"得":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"知":{"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.006944444444444444}}}}}}}}}}}}},"为":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.010309278350515464}}},"等":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"增":{"docs":{},"新":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}}},"论":{"docs":{},"选":{"docs":{},"择":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{},"第":{"docs":{},"三":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"去":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"都":{"docs":{},"必":{"docs":{},"须":{"docs":{},"首":{"docs":{},"先":{"docs":{},"计":{"docs":{},"算":{"docs":{},"完":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},",":{"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.01282051282051282}}}}}}}}}},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}},"允":{"docs":{},"许":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}},"函":{"docs":{},"数":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"实":{"docs":{},"现":{"docs":{},"有":{"docs":{},"错":{"docs":{},"误":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}},"入":{"docs":{},"口":{"docs":{},"标":{"docs":{},"签":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},")":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"一":{"docs":{},"个":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"而":{"docs":{},"现":{"docs":{},"在":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"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.0028011204481792717}}}},"(":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},",":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"由":{"docs":{},"于":{"docs":{},"目":{"docs":{},"前":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"会":{"docs":{},"对":{"docs":{},"不":{"docs":{},"同":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"时":{"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":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"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":{},"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":{},"a":{"docs":{},"s":{"docs":{},"t":{"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":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},".":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.003968253968253968}}}}}}}}}}}}}}},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}},"是":{"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":{"5":{"docs":{},")":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"递":{"docs":{},"归":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}}},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"栈":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"参":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"视":{"docs":{},"为":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},"被":{"docs":{},"定":{"docs":{},"义":{"docs":{},"(":{"docs":{},"被":{"docs":{},"以":{"docs":{},"实":{"docs":{},"参":{"docs":{},"的":{"docs":{},"值":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},")":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"形":{"docs":{},"参":{"docs":{},"均":{"docs":{},"为":{"docs":{},"左":{"docs":{},"值":{"docs":{},",":{"docs":{},"且":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"中":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"列":{"docs":{},"表":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"上":{"docs":{},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"其":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"和":{"docs":{},"功":{"docs":{},"能":{"docs":{},"同":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}}}}}}},")":{"docs":{},"分":{"docs":{},"别":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},",":{"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":{},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"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}}}}}}}}}},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"压":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}},"直":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"抽":{"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":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"和":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}}}}}}}}}}}},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"名":{"docs":{},"为":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"所":{"docs":{},"有":{"docs":{},"出":{"docs":{},"现":{"docs":{},"过":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}},"作":{"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.0024630541871921183}}}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}},"分":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365}},"至":{"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.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},"对":{"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.003968253968253968}}}}}}}}}}}}}}}}}},"里":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"参":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"以":{"docs":{},"及":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"传":{"docs":{},"递":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{}},"docs":{}}}},"原":{"docs":{},"型":{"docs":{},",":{"docs":{},"三":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{},"目":{"docs":{},"标":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"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.009900990099009901}}}}}}}}}}}}}}}}}}},"分":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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/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/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/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.0028011204481792717}}}}}}}}}}}}}}}},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"了":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"勘":{"docs":{},"误":{"docs":{},"表":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":10.0078125}}}}},"发":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"确":{"docs":{},"安":{"docs":{},"装":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"?":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}},"未":{"docs":{},"必":{"docs":{},"会":{"docs":{},"对":{"docs":{},"应":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}},"行":{"docs":{},"基":{"docs":{},"础":{"docs":{},"操":{"docs":{},"作":{"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.010309278350515464}}}},"安":{"docs":{},"装":{"docs":{},"下":{"docs":{},"文":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.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/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"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/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}},"工":{"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.0078125}}}}}}}}}}}}},"非":{"docs":{},"严":{"docs":{},"格":{"docs":{},"按":{"docs":{},"照":{"docs":{},"课":{"docs":{},"本":{"docs":{},"上":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"严":{"docs":{},"格":{"docs":{},"要":{"docs":{},"求":{"docs":{},"只":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"三":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"绝":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"指":{"docs":{},"令":{"docs":{},"均":{"docs":{},"可":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"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.0012642225031605564}}}}}}}}}}}}}}}},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"被":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"法":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"发":{"docs":{},"现":{"docs":{},"是":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"。":{"docs":{},"请":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}}}}}}}}},",":{"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/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"高":{"docs":{},"于":{"docs":{},"此":{"docs":{},"版":{"docs":{},"本":{"docs":{},"。":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"以":{"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.0078125}}}}}}}}}}}}}}}}}}},"可":{"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":{}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"器":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"。":{"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.0012642225031605564}}}}}}}}}}}}}}}}}},"过":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}},"经":{"docs":{},"过":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"使":{"docs":{},"用":{"docs":{"docs/step0/errate.html":{"ref":"docs/step0/errate.html","tf":0.0078125}}}}}},"结":{"docs":{},"果":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"判":{"docs":{},"断":{"docs":{},"是":{"docs":{},"否":{"docs":{},"通":{"docs":{},"过":{"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.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"构":{"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":{},"基":{"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.0024630541871921183}}}}}}}}}}}}}}}},"不":{"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.005263157894736842}}}}}}}}}}}}}}}},"若":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}},"合":{"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.0078125}}}}}}}}}}}}}}}}}},"行":{"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.0078125}}}}}}}}}}}}}}}}}},"#":{"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.04526748971193416},"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.01680672268907563},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.020227560050568902},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0784313725490196},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.010169491525423728},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.03838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"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.006944444444444444},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"$":{"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.010309278350515464},"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":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.006321112515802781}},"&":{"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.0012642225031605564},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.014084507042253521},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"、":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"或":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"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}}}},"l":{"docs":{},"_":{"docs":{},"n":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.0297029702970297}},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"o":{"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.023255813953488372}}}}}},")":{"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}}}}},"o":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}},".":{"docs":{},"c":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"s":{"docs":{},"(":{"docs":{},"记":{"docs":{},"得":{"docs":{},"加":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}},":":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.006535947712418301}}}}}}}}},"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.0025284450063211127},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}},"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"/":{"docs":{},"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.0012642225031605564}}}}}}}}}}}},"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.0012642225031605564}}}}}}}}}}}}}}}}},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},";":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"而":{"docs":{},"词":{"docs":{},"法":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"e":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"/":{"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.0024630541871921183}}}}}}}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}},"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.0028011204481792717}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}},"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.0028011204481792717}}}}}}}}}},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"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.006329113924050633}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},".":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255},"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/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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.007782101167315175},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},".":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"(":{"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/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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}}},"(":{"1":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},"(":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},")":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179}},"{":{"docs":{},"i":{"docs":{},"f":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985}}}}}},"n":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.009852216748768473},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"底":{"docs":{},"地":{"docs":{},"址":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"时":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}}},"o":{"3":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364}}},"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"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.010309278350515464}}}}}}}}}}}}}}}}},"s":{"docs":{},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"k":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571}}},"p":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"类":{"docs":{},"型":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"[":{"docs":{},"u":{"docs":{},"]":{"docs":{},":":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.00980392156862745}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}},"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}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}}}}}}},"x":{"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.006944444444444444}},"_":{"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.0056022408963585435}}}},"docs":{}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.02247191011235955},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.034482758620689655},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.11507936507936507},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.030508474576271188},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.013435700575815739},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.0755813953488372}},"(":{"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.003968253968253968}}}}}}}}}}}},"但":{"docs":{},"随":{"docs":{},"后":{"docs":{},"我":{"docs":{},"们":{"docs":{},"开":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"找":{"docs":{},"到":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"而":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"随":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}},"这":{"docs":{},"个":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}},"同":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}},"+":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}},")":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}},"。":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"只":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{},"正":{"docs":{},"确":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{},"关":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"这":{"docs":{},"一":{"docs":{},"步":{"docs":{},"就":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},"了":{"docs":{},":":{"docs":{},"找":{"docs":{},"到":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"该":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"。":{"docs":{},"若":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"即":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"x":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}}},":":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.011627906976744186}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"docs":{}},"docs":{}}},"z":{"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.0064516129032258064}}}}}}},"~":{"0":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"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}}}}}}}}},"a":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"!":{"docs":{},"这":{"docs":{},"三":{"docs":{},"个":{"docs":{},"单":{"docs":{},"目":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"和":{"docs":{},"从":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}},"一":{"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":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"活":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"求":{"docs":{},"解":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"变":{"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":{},"t":{"2":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"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/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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}},"元":{"docs":{},"负":{"docs":{},"号":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"运":{"docs":{},"算":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}},"个":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"例":{"docs":{},"子":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"函":{"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.004219409282700422}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"之":{"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":{},"们":{"docs":{},"想":{"docs":{},"要":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"种":{"docs":{},"遍":{"docs":{},"历":{"docs":{"docs/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504}}}}}}}}}}}}}},"c":{"docs":{},"+":{"docs":{},"+":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}},"每":{"docs":{},"一":{"docs":{},"步":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"都":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},",":{"docs":{},"本":{"docs":{},"身":{"docs":{},"就":{"docs":{},"能":{"docs":{},"体":{"docs":{},"现":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"确":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"外":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}}}},"甚":{"docs":{},"至":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}},"也":{"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.0012642225031605564}},"说":{"docs":{},",":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"内":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"总":{"docs":{},"是":{"docs":{},"从":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"入":{"docs":{},"口":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"到":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"出":{"docs":{},"口":{"docs":{},"结":{"docs":{},"束":{"docs":{},"的":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"这":{"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":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"出":{"docs":{},",":{"docs":{},"尽":{"docs":{},"管":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},"级":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"上":{"docs":{},",":{"docs":{},"数":{"docs":{},"据":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"节":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"对":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"规":{"docs":{},"范":{"docs":{},"进":{"docs":{},"行":{"docs":{},"检":{"docs":{},"查":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"名":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"已":{"docs":{},"经":{"docs":{},"在":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"给":{"docs":{},"出":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}},"栈":{"docs":{},"中":{"docs":{},"将":{"docs":{},"t":{"0":{"docs":{},"取":{"docs":{},"出":{"docs":{},"放":{"docs":{},"入":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"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.0012642225031605564},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},"的":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"它":{"docs":{},"们":{"docs":{},"分":{"docs":{},"别":{"docs":{},"放":{"docs":{},"在":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}},"汇":{"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.0012642225031605564}}}}}}}}}}}}}}},"有":{"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.0024630541871921183}}}}}}}}}}}}}},"使":{"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/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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"和":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"创":{"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":{},"出":{"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.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":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},"所":{"docs":{},"出":{"docs":{},"现":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"找":{"docs":{},"出":{"docs":{},"该":{"docs":{},"符":{"docs":{},"号":{"docs":{},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"主":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"检":{"docs":{},"索":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"指":{"docs":{},"的":{"docs":{},"是":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"条":{"docs":{},"语":{"docs":{},"句":{"docs":{},"是":{"docs":{},"否":{"docs":{},"合":{"docs":{},"法":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"检":{"docs":{},"查":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"符":{"docs":{},"合":{"docs":{},"要":{"docs":{},"求":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"是":{"docs":{},"否":{"docs":{},"为":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"所":{"docs":{},"规":{"docs":{},"定":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"都":{"docs":{},"经":{"docs":{},"过":{"docs":{},"定":{"docs":{},"义":{"docs":{},"等":{"docs":{},"。":{"docs":{},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"通":{"docs":{},"过":{"docs":{},"了":{"docs":{},"词":{"docs":{},"法":{"docs":{},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"其":{"docs":{},"语":{"docs":{},"义":{"docs":{},"未":{"docs":{},"必":{"docs":{},"正":{"docs":{},"确":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"未":{"docs":{},"必":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"。":{"docs":{},"不":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"语":{"docs":{},"句":{"docs":{},"具":{"docs":{},"体":{"docs":{},"含":{"docs":{},"义":{"docs":{},"在":{"docs":{},"语":{"docs":{},"言":{"docs":{},"规":{"docs":{},"范":{"docs":{},"中":{"docs":{},"没":{"docs":{},"有":{"docs":{},"规":{"docs":{},"定":{"docs":{},",":{"docs":{},"从":{"docs":{},"而":{"docs":{},"使":{"docs":{},"得":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"无":{"docs":{},"法":{"docs":{},"确":{"docs":{},"定":{"docs":{},"这":{"docs":{},"些":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"确":{"docs":{},"切":{"docs":{},"含":{"docs":{},"义":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"检":{"docs":{},"查":{"docs":{},"语":{"docs":{},"义":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"是":{"docs":{},"很":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"一":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"成":{"docs":{},"功":{"docs":{},"通":{"docs":{},"过":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"则":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"含":{"docs":{},"义":{"docs":{},"对":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"适":{"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.0028011204481792717}}}}}}}}}}}}}},"在":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"(":{"docs":{},"我":{"docs":{},"们":{"docs":{},"在":{"docs":{},"扫":{"docs":{},"描":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}},"执":{"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":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"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/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":{},"个":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}},"因":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"需":{"docs":{},"要":{"docs":{},"想":{"docs":{},"办":{"docs":{},"法":{"docs":{},"把":{"docs":{},"这":{"docs":{},"些":{"docs":{},"无":{"docs":{},"限":{"docs":{},"多":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"“":{"docs":{},"塞":{"docs":{},"”":{"docs":{},"到":{"docs":{},"有":{"docs":{},"限":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"里":{"docs":{},"面":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"不":{"docs":{},"会":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"条":{"docs":{},"指":{"docs":{},"令":{"docs":{},"中":{"docs":{},"被":{"docs":{},"用":{"docs":{},"到":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"使":{"docs":{},"用":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"把":{"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.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}},"变":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"应":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"放":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"并":{"docs":{},"且":{"docs":{},"原":{"docs":{},"来":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},"含":{"docs":{},"有":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}},"应":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"建":{"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/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/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.0012642225031605564}}}}},"始":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"。":{"docs":{},"简":{"docs":{},"而":{"docs":{},"言":{"docs":{},"之":{"docs":{},",":{"docs":{},"一":{"docs":{},"份":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"套":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"作":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"函":{"docs":{},"数":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}},"计":{"docs":{},"数":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},"往":{"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":{},"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":{"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.010309278350515464},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.011194029850746268}},"自":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}}}},"者":{"docs":{"docs/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}},"不":{"docs":{},"定":{"docs":{},"长":{"docs":{},"数":{"docs":{},"组":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}}},"打":{"docs":{},"开":{"docs":{},"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.007782101167315175}}}},"汇":{"docs":{},"编":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}},"把":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}},"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.014925373134328358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"转":{"docs":{},"化":{"docs":{},"成":{"docs":{},"类":{"docs":{},"似":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"样":{"docs":{},"“":{"docs":{},"更":{"docs":{},"模":{"docs":{},"糊":{"docs":{},"”":{"docs":{},",":{"docs":{},"有":{"docs":{},"歧":{"docs":{},"义":{"docs":{},"的":{"docs":{},"语":{"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/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.005681818181818182}}}}}}},"这":{"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.005813953488372093}}}}}}}}}}}},"位":{"docs":{},"取":{"docs":{},"反":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}},"文":{"docs":{},"件":{"docs":{},",":{"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":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"1":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"docs":{}}}}}}},"中":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"修":{"docs":{},"改":{"docs":{},"相":{"docs":{},"应":{"docs":{},"指":{"docs":{},"令":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"方":{"docs":{},"式":{"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.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"都":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"的":{"docs":{},"子":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"其":{"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.003968253968253968}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"另":{"docs":{},"一":{"docs":{},"个":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"选":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"快":{"docs":{},"速":{"docs":{},"找":{"docs":{},"到":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"定":{"docs":{},"义":{"docs":{},"变":{"docs":{},"量":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}},"机":{"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":{},"器":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"式":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"有":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"的":{"docs":{},"根":{"docs":{},"结":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"整":{"docs":{},"颗":{"docs":{},"树":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"并":{"docs":{},"针":{"docs":{},"对":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"结":{"docs":{},"点":{"docs":{},"作":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"再":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"一":{"docs":{},"次":{"docs":{},"语":{"docs":{},"法":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"并":{"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/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/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":{},"量":{"docs":{},"加":{"docs":{},"载":{"docs":{},"该":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"。":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"父":{"docs":{},"结":{"docs":{},"点":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"根":{"docs":{},"据":{"docs":{},"子":{"docs":{},"结":{"docs":{},"点":{"docs":{},"的":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"条":{"docs":{},"取":{"docs":{},"负":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"将":{"docs":{},"这":{"docs":{},"条":{"docs":{},"指":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"不":{"docs":{},"安":{"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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{"docs/step0/riscv_env.html":{"ref":"docs/step0/riscv_env.html","tf":0.0024271844660194173}}}}},":":{"docs":{},"安":{"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/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}},"引":{"docs":{},"入":{"docs":{},"数":{"docs":{},"组":{"docs":{},"后":{"docs":{},",":{"docs":{},"左":{"docs":{},"值":{"docs":{},"不":{"docs":{},"再":{"docs":{},"一":{"docs":{},"定":{"docs":{},"是":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}},",":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"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.0012642225031605564}}}},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"上":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"有":{"docs":{},"效":{"docs":{},"的":{"docs":{},"翻":{"docs":{},"译":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"理":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"程":{"docs":{},"序":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{},"词":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"识":{"docs":{},"别":{"docs":{},"出":{"docs":{},"程":{"docs":{},"序":{"docs":{},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},"、":{"docs":{},"保":{"docs":{},"留":{"docs":{},"字":{"docs":{},"、":{"docs":{},"整":{"docs":{},"数":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"算":{"docs":{},"符":{"docs":{},"、":{"docs":{},"分":{"docs":{},"界":{"docs":{},"符":{"docs":{},"等":{"docs":{},"单":{"docs":{},"词":{"docs":{},"符":{"docs":{},"号":{"docs":{},"(":{"docs":{},"即":{"docs":{},"终":{"docs":{},"结":{"docs":{},"符":{"docs":{},")":{"docs":{},",":{"docs":{},"并":{"docs":{},"把":{"docs":{},"识":{"docs":{},"别":{"docs":{},"结":{"docs":{},"果":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},",":{"docs":{},"以":{"docs":{},"供":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"在":{"docs":{},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"针":{"docs":{},"对":{"docs":{},"所":{"docs":{},"输":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"然":{"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.0037313432835820895}}},"让":{"docs":{},"它":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}}},"环":{"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.010309278350515464}}}}},"(":{"docs":{},"如":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}},"用":{"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":{},"局":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},":":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}},"等":{"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.010309278350515464}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"出":{"docs":{},"现":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"!":{"docs":{},"x":{"docs":{},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}},"均":{"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":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"跳":{"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.0038910505836575876},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"将":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}},"而":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}},"是":{"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":{},"首":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"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/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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"虚":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"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.0012642225031605564}}}}}}},"立":{"docs":{},"即":{"docs":{},"数":{"docs":{},"值":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"docs":{},"l":{"docs":{},"i":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"分":{"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.02040816326530612}}}}}}}}},"。":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}},"将":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"函":{"docs":{},"数":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"存":{"docs":{},"储":{"docs":{},"空":{"docs":{},"间":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"预":{"docs":{},"留":{"docs":{},"一":{"docs":{},"块":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"4":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}},"docs":{}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}},",":{"docs":{},"只":{"docs":{},"使":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}},"计":{"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.0024630541871921183}}}}}}}}}}}}}},"跑":{"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.0028011204481792717}}}},"入":{"docs":{},",":{"docs":{},"输":{"docs":{},"出":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}},"运":{"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}}}}}},"测":{"docs":{},"试":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.017857142857142856}}}}},"算":{"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.0028011204481792717}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"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.0012642225031605564}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"把":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"锅":{"docs":{},"甩":{"docs":{},"给":{"docs":{},"了":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"这":{"docs":{},"大":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"我":{"docs":{},"们":{"docs":{},"认":{"docs":{},"为":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"包":{"docs":{},"含":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"、":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"是":{"docs":{},"指":{"docs":{},"为":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"调":{"docs":{},"度":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{},"指":{"docs":{},"令":{"docs":{},"选":{"docs":{},"择":{"docs":{},"是":{"docs":{},"指":{"docs":{},"选":{"docs":{},"用":{"docs":{},"合":{"docs":{},"适":{"docs":{},"的":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"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":{},"烈":{"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":{},"件":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"参":{"docs":{},"考":{"docs":{},"之":{"docs":{},"前":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"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.003745318352059925}}}},"汇":{"docs":{},"编":{"docs":{},")":{"docs":{},"保":{"docs":{},"存":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"恢":{"docs":{},"复":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}},"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.0028011204481792717}}}}},"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.0028011204481792717}}}}}}}}}}}},"(":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},")":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},";":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"=":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"_":{"docs":{},"t":{"docs":{},"k":{"docs":{},"\"":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"\"":{"docs":{},"\"":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255}}}},"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.0049261083743842365}}}}},"@":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"后":{"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.010309278350515464}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"给":{"docs":{},"出":{"docs":{},"了":{"docs":{},"一":{"docs":{},"份":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"及":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"常":{"docs":{},"识":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}}},"逻":{"docs":{},"辑":{"docs":{},"非":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}},"括":{"docs":{},"号":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},"这":{"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/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.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":{},"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":{},"在":{"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":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"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":{},"当":{"docs":{},"前":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},"中":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"在":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"时":{"docs":{},"t":{"0":{"docs":{},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"掉":{"docs":{},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"能":{"docs":{},"导":{"docs":{},"致":{"docs":{},"t":{"2":{"docs":{},"被":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"到":{"docs":{},"了":{"docs":{},"t":{"0":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"t":{"0":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"别":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"c":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385}}}}}}}},"为":{"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.0037313432835820895}}}}}}}}}}}}}}}}}}}}},"另":{"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/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":{},"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"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/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/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.010309278350515464}}}},"然":{"docs":{},"遵":{"docs":{},"循":{"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/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}},"的":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406}}}}},"在":{"docs":{},"本":{"docs":{},"节":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"引":{"docs":{},"入":{"docs":{},"了":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"作":{"docs":{},"一":{"docs":{},"种":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{},",":{"docs":{},"但":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"赋":{"docs":{},"值":{"docs":{},"号":{"docs":{},"左":{"docs":{},"侧":{"docs":{},"必":{"docs":{},"须":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"左":{"docs":{},"值":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"同":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"对":{"docs":{},"应":{"docs":{},"框":{"docs":{},"架":{"docs":{},"源":{"docs":{},"码":{"docs":{},"位":{"docs":{},"置":{"docs":{},":":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}}}}}}}}}}}}},"处":{"docs":{},"助":{"docs":{},"教":{"docs":{},"使":{"docs":{},"用":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"的":{"docs":{},"o":{"docs":{},"p":{"0":{"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.0019193857965451055}}}}}}}}}}}}}}}}}},"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{"docs/step0/env.html":{"ref":"docs/step0/env.html","tf":0.010309278350515464}}}}}}}}}},"。":{"docs":{"docs/step0/testing.html":{"ref":"docs/step0/testing.html","tf":0.03571428571428571},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"公":{"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.0028011204481792717}}}}}}}}}}}}}},"当":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"语":{"docs":{},"句":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}},"扫":{"docs":{},"描":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"局":{"docs":{},"部":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},",":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"上":{"docs":{},"述":{"docs":{},"代":{"docs":{},"码":{"docs":{},"示":{"docs":{},"例":{"docs":{},",":{"docs":{},"讲":{"docs":{},"述":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"方":{"docs":{},"式":{"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.003968253968253968}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"函":{"docs":{},"数":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"步":{"docs":{},"骤":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"受":{"docs":{},"一":{"docs":{},"个":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"推":{"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/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":{},"可":{"docs":{},"执":{"docs":{},"行":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"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":{},"整":{"docs":{},"除":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"t":{"docs":{},",":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}},"y":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.007389162561576354},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.007677543186180422}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}},"(":{"docs":{},"简":{"docs":{},"称":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"。":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},";":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}},")":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}},";":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"[":{"1":{"0":{"docs":{},"]":{"docs":{},";":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}},"docs":{}},"docs":{}}},"|":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.04481792717086835},"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.02781289506953224},"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.05970149253731343},"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.06153846153846154},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.056338028169014086},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.07246376811594203},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.07317073170731707},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.04081632653061224},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.08783783783783784},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.07407407407407407},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.078125},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.11538461538461539},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.08171206225680934},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.043478260869565216},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.08614232209737828},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.08955223880597014},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.10548523206751055},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.10358565737051793}},"|":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.03076923076923077},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"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.008403361344537815}}}},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0056022408963585435}},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},";":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"语":{"docs":{},"义":{"docs":{},"和":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}},"对":{"docs":{},"应":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"成":{"docs":{},"员":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"的":{"docs":{},"赋":{"docs":{},"值":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"由":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"作":{"docs":{},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"用":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}},"域":{"docs":{},"中":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}},"栈":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872}}},"里":{"docs":{},"的":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}},"为":{"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.003745318352059925}}}}}}}}}}}}}}}}}}}}}},"参":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"简":{"docs":{},"要":{"docs":{},"介":{"docs":{},"绍":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"实":{"docs":{},"验":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"添":{"docs":{},"加":{"docs":{},"恰":{"docs":{},"当":{"docs":{},"的":{"docs":{},"三":{"docs":{},"地":{"docs":{},"址":{"docs":{},"码":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"降":{"docs":{},"低":{"docs":{},"实":{"docs":{},"验":{"docs":{},"难":{"docs":{},"度":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"部":{"docs":{},"分":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"各":{"docs":{},"位":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"依":{"docs":{},"据":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},"完":{"docs":{},"成":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"加":{"docs":{},"法":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}},"载":{"docs":{},"立":{"docs":{},"即":{"docs":{},"数":{"2":{"0":{"2":{"2":{"docs":{},"到":{"docs":{},"t":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"到":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"偏":{"docs":{},"移":{"docs":{},"量":{"docs":{},",":{"docs":{},"而":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"模":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"只":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"在":{"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.003968253968253968}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"不":{"docs":{},"像":{"docs":{},"语":{"docs":{},"法":{"docs":{},"树":{"docs":{},"一":{"docs":{},"样":{"docs":{},"保":{"docs":{},"留":{"docs":{},"了":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"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.0028011204481792717}}}}}}}}}}}}}}}}}},"将":{"docs":{},"在":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"会":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"验":{"docs":{},"报":{"docs":{},"告":{"docs":{},"(":{"docs":{},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"求":{"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.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"备":{"docs":{},"问":{"docs":{},"题":{"docs":{},"(":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"分":{"docs":{},"配":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"加":{"docs":{},"上":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}},"请":{"docs":{},"写":{"docs":{},"出":{"docs":{},"一":{"docs":{},"段":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"如":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211}}},"是":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"(":{"docs":{},"又":{"docs":{},"名":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"是":{"docs":{},"指":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"认":{"docs":{},"为":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"需":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"非":{"docs":{},"易":{"docs":{},"失":{"docs":{},"性":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},")":{"docs":{},",":{"docs":{},"指":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"各":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{},"之":{"docs":{},"间":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"可":{"docs":{},"以":{"docs":{},"期":{"docs":{},"望":{"docs":{},"在":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"仍":{"docs":{},"保":{"docs":{},"持":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"这":{"docs":{},"要":{"docs":{},"求":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"寄":{"docs":{},"存":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"将":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.009596928982725527}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"放":{"docs":{},"到":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"docs":{}}}}}}},"两":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"相":{"docs":{},"加":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}}},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}},"t":{"2":{"docs":{},"放":{"docs":{},"入":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"(":{"docs":{},"即":{"docs":{},":":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}},"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.005813953488372093}}}}}}}}}}}}}}}},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"构":{"docs":{},"建":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}},"知":{"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.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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}},"控":{"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.0028011204481792717}}}}}}}}}}}}}},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"图":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.022727272727272728}},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"、":{"docs":{},"常":{"docs":{},"量":{"docs":{},"、":{"docs":{},"标":{"docs":{},"签":{"docs":{},"(":{"docs":{},"可":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"常":{"docs":{},"量":{"docs":{},"地":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"结":{"docs":{},"合":{"docs":{},"性":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"在":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"经":{"docs":{},"历":{"docs":{},"中":{"docs":{},"大":{"docs":{},"家":{"docs":{},"应":{"docs":{},"该":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},"已":{"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/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"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.005263157894736842}}},"和":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}},"是":{"docs":{},"整":{"docs":{},"个":{"docs":{},"循":{"docs":{},"环":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}},"(":{"docs":{},"示":{"docs":{},"例":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.015789473684210527}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"一":{"docs":{},"条":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}},"准":{"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.014925373134328358}}}}}}}},"调":{"docs":{},"用":{"docs":{},"约":{"docs":{},"定":{"docs":{},"中":{"docs":{},"要":{"docs":{},"引":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"来":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"库":{"docs":{},"中":{"docs":{},"的":{"docs":{"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"正":{"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.0024630541871921183}}}}}}}}}}}}},"记":{"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.0028011204481792717}},"在":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}},"步":{"docs":{},"骤":{"docs":{},"是":{"docs":{},"对":{"docs":{},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"再":{"docs":{},"一":{"docs":{},"次":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"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.005681818181818182}}}}}}}}}}}}}}}}}}},"与":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}},"录":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"生":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"表":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"请":{"docs":{},"注":{"docs":{},"意":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872}},"构":{"docs":{},"建":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}},":":{"docs":{},"声":{"docs":{},"明":{"docs":{},"了":{"docs":{},"哪":{"docs":{},"些":{"docs":{},"标":{"docs":{},"识":{"docs":{},"符":{"docs":{},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"结":{"docs":{},"构":{"docs":{},"与":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"是":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},",":{"docs":{},"便":{"docs":{},"于":{"docs":{},"检":{"docs":{},"查":{"docs":{},"出":{"docs":{},"符":{"docs":{},"号":{"docs":{},"定":{"docs":{},"义":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"总":{"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.0024630541871921183}}}}}}}}}}}}}}}}},"。":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},",":{"docs":{},"正":{"docs":{},"如":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"值":{"docs":{},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}},"所":{"docs":{},"代":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"指":{"docs":{},"令":{"docs":{},":":{"docs":{"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"2":{"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.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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"型":{"docs":{},"和":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}},"检":{"docs":{},"查":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},":":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}},"基":{"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.003745318352059925}}}}}}}}}}}}}}}}}}},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"中":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}},"调":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"处":{"docs":{},"理":{"docs":{},"它":{"docs":{},"。":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},",":{"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.005263157894736842}}}}}}}},"表":{"docs":{},"示":{"docs":{},"函":{"docs":{},"数":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},".":{"docs":{},"h":{"docs":{},"p":{"docs":{},"p":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"缩":{"docs":{},"小":{"docs":{},"调":{"docs":{},"试":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"把":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{},"适":{"docs":{},"合":{"docs":{},"后":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"误":{"docs":{},",":{"docs":{},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}},"中":{"docs":{},"间":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"词":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}},"和":{"docs":{},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}},"的":{"docs":{},"最":{"docs":{},"终":{"docs":{},"结":{"docs":{},"果":{"docs":{},"是":{"docs":{},"一":{"docs":{},"棵":{"docs":{},"跟":{"docs":{},"所":{"docs":{},"输":{"docs":{},"入":{"docs":{},"的":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}}}}}}}}}}}}}},"程":{"docs":{},"序":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}}}}},"语":{"docs":{},"法":{"docs":{},"分":{"docs":{},"析":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}}}}},"详":{"docs":{},"细":{"docs":{},"讨":{"docs":{},"论":{"docs":{},"。":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717}}}}},"介":{"docs":{},"绍":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"理":{"docs":{},"论":{"docs":{},"。":{"docs":{},"大":{"docs":{},"家":{"docs":{},"目":{"docs":{},"前":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"活":{"docs":{},"跃":{"docs":{},"性":{"docs":{},"分":{"docs":{},"析":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"求":{"docs":{},"解":{"docs":{},"每":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"变":{"docs":{},"量":{"docs":{},"是":{"docs":{},"否":{"docs":{},"会":{"docs":{},"在":{"docs":{},"程":{"docs":{},"序":{"docs":{},"某":{"docs":{},"点":{"docs":{},"之":{"docs":{},"后":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"分":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"化":{"docs":{},"为":{"docs":{},"如":{"docs":{},"下":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"还":{"docs":{},"是":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"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.0028011204481792717}}}}}}}}}}}}}}}}},"语":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}},",":{"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.0028011204481792717}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扫":{"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/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{"docs/step1/arch.html":{"ref":"docs/step1/arch.html","tf":0.0028011204481792717},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"取":{"docs":{},"负":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"于":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"局":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"给":{"docs":{},"出":{"docs":{},"一":{"docs":{},"种":{"docs":{},"参":{"docs":{},"考":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"不":{"docs":{},"只":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"种":{"docs":{},"实":{"docs":{},"现":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"实":{"docs":{},"验":{"docs":{},"文":{"docs":{},"档":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"显":{"docs":{},"然":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"块":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"特":{"docs":{},"性":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"新":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}},"已":{"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.03571428571428571}}}}}}}}},"成":{"docs":{},"为":{"docs":{},"了":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"循":{"docs":{},"环":{"docs":{},"以":{"docs":{},"及":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"docs":{},"可":{"docs":{},"以":{"docs":{},"参":{"docs":{},"考":{"docs":{},"着":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}}}}}}}}}}}},"的":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step1/provided.html":{"ref":"docs/step1/provided.html","tf":0.03571428571428571}}}}},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"选":{"docs":{},"择":{"docs":{},"了":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}},"控":{"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.0038910505836575876}}}},"后":{"docs":{},"。":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"还":{"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.01282051282051282}}}}},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"(":{"docs":{},"包":{"docs":{},"含":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"成":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}},"有":{"docs":{},"其":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},",":{"docs":{},"且":{"docs":{},"是":{"docs":{},"它":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{},"作":{"docs":{},"用":{"docs":{},"域":{"docs":{},"的":{"docs":{},"子":{"docs":{},"集":{"docs":{},"。":{"docs":{},"循":{"docs":{},"环":{"docs":{},"体":{"docs":{},"也":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"、":{"docs":{},"d":{"docs":{},"o":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}},"作":{"docs":{},"为":{"docs":{},"示":{"docs":{},"例":{"docs":{},"。":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"以":{"docs":{},"下":{"docs":{},"两":{"docs":{},"种":{"docs":{},"翻":{"docs":{},"译":{"docs":{},"方":{"docs":{},"式":{"docs":{},":":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}},"我":{"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.005263157894736842}}}}}}}}}}}}}}}}}}}}}},"要":{"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.005263157894736842}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"作":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"条":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},",":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"反":{"docs":{},"复":{"docs":{},"执":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}},"括":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}},"而":{"docs":{},"言":{"docs":{},":":{"docs":{},"如":{"docs":{},"果":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}},"!":{"docs":{"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.0125}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}},"x":{"docs":{},";":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"=":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"(":{"docs":{},"不":{"docs":{},"等":{"docs":{},"于":{"docs":{},")":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"关":{"docs":{},"系":{"docs":{},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{},",":{"docs":{},"结":{"docs":{},"果":{"docs":{},"取":{"docs":{},"决":{"docs":{},"于":{"docs":{},"两":{"docs":{},"个":{"docs":{},"操":{"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":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"'":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"'":{"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.014925373134328358},"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.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.0641025641025641},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.027237354085603113},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0299625468164794},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.029850746268656716},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03375527426160337},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.03187250996015936}}}},")":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"'":{"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.014925373134328358},"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.028985507246376812},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.012195121951219513},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.0641025641025641},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.027237354085603113},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.028985507246376812},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.0299625468164794},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.029850746268656716},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.03375527426160337},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.03187250996015936}}}},";":{"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.043478260869565216},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.018292682926829267},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.013513513513513514},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.037037037037037035},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.015625},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.10256410256410256},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.03501945525291829},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.033707865168539325},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.033582089552238806},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.0379746835443038},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.0398406374501992}},")":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.006756756756756757},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}},"{":{"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}},"}":{"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.014492753623188406},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.006097560975609756},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}},"|":{"docs":{},"'":{"docs":{},"!":{"docs":{},"'":{"docs":{},"|":{"docs":{},"'":{"docs":{},"~":{"docs":{},"'":{"docs":{},")":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612},"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.014925373134328358},"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.0038910505836575876},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}},"|":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"&":{"docs":{},"&":{"docs":{},"'":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"=":{"docs":{},"'":{"docs":{"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},":":{"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"?":{"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.018518518518518517},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.005208333333333333},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}},"d":{"docs":{},"o":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.02564102564102564},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.02564102564102564},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.00749063670411985},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.007462686567164179},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.008438818565400843},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00796812749003984}}}}}}}},"[":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}},"]":{"docs":{},"'":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"docs":{},"*":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}},"+":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}},"?":{"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.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},")":{"docs":{},"*":{"docs":{},")":{"docs":{},"?":{"docs":{"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0050568900126422255},"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.061224489795918366},"docs/step2/spec.html":{"ref":"docs/step2/spec.html","tf":0.075},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.07462686567164178},"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.07692307692307693},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.09154929577464789},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.08695652173913043},"docs/step5/spec.html":{"ref":"docs/step5/spec.html","tf":0.09146341463414634},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.08163265306122448},"docs/step6/spec.html":{"ref":"docs/step6/spec.html","tf":0.12162162162162163},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.05555555555555555},"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.01282051282051282},"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.07003891050583658},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.08695652173913043},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.07865168539325842},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.07835820895522388},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.044444444444444446},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.08860759493670886},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.057692307692307696},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.08366533864541832},"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}},":":{"docs":{},"=":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}}},"[":{"0":{"docs":{},",":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}}}},"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775}},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"`":{"docs":{},"p":{"docs":{},"_":{"docs":{},"`":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"要":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"知":{"docs":{},"识":{"docs":{},"为":{"docs":{},"符":{"docs":{},"号":{"docs":{},"表":{"docs":{},"、":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"大":{"docs":{},"家":{"docs":{},"来":{"docs":{},"说":{"docs":{},"有":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"什":{"docs":{},"么":{"docs":{},"是":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"即":{"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.0012642225031605564}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"会":{"docs":{},"被":{"docs":{},"指":{"docs":{},"派":{"docs":{},"为":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"。":{"docs":{},"左":{"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.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}},"此":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},":":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"便":{"docs":{},"是":{"docs":{},"类":{"docs":{},"似":{"docs":{"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422}}}}}}},"又":{"docs":{},"对":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"向":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"声":{"docs":{},"明":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"全":{"docs":{},"局":{"docs":{},"符":{"docs":{},"号":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}},"处":{"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.0012642225031605564}}}}}}}}}}}}}}}},",":{"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.0012642225031605564}}},"。":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}},"(":{"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.0024630541871921183}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"内":{"docs":{},"存":{"docs":{},"首":{"docs":{},"地":{"docs":{},"址":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}},"整":{"docs":{},"数":{"docs":{},",":{"docs":{},"是":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}},"定":{"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.0012642225031605564}}}}}}}}}}}}}},",":{"docs":{},"以":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"r":{"docs":{},"可":{"docs":{},"以":{"docs":{},"解":{"docs":{},"析":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"库":{"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.0012642225031605564}}}}}}}}}}}}}},"底":{"docs":{},"层":{"docs":{},"类":{"docs":{},",":{"docs":{},"同":{"docs":{},"学":{"docs":{},"们":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"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.0012642225031605564}}}}}}}}}}},"程":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}},"且":{"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.02040816326530612}}}}}}}}}}}}}}}}},"一":{"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.023255813953488372}}}}}}}}}}}}}}}}}}}},"也":{"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.003745318352059925}}}}}}}}}}}}}}}}},"遇":{"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.009900990099009901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"范":{"docs":{},"生":{"docs":{},"成":{"docs":{},"相":{"docs":{},"应":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"入":{"docs":{},"门":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"怎":{"docs":{},"么":{"docs":{},"从":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"到":{"docs":{},"汇":{"docs":{},"编":{"docs":{},"代":{"docs":{},"码":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"思":{"docs":{},"考":{"docs":{},"题":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564},"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633},"docs/step12/example.html":{"ref":"docs/step12/example.html","tf":0.009900990099009901}}}}},"扫":{"docs":{},"描":{"docs":{},"完":{"docs":{},"成":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"方":{"docs":{},"法":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"内":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"便":{"docs":{},"起":{"docs":{},"见":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"称":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"差":{"docs":{},"异":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},"短":{"docs":{},"路":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"要":{"docs":{},"求":{"docs":{},"。":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}}}}}},"些":{"docs":{},"语":{"docs":{},"言":{"docs":{},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"作":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"基":{"docs":{},"本":{"docs":{},"块":{"docs":{},"的":{"docs":{},"这":{"docs":{},"四":{"docs":{},"个":{"docs":{},"集":{"docs":{},"合":{"docs":{},"的":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"以":{"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.005263157894736842}}}}}}}}}}}}}},"三":{"docs":{},"种":{"docs":{},"循":{"docs":{},"环":{"docs":{},"语":{"docs":{},"句":{"docs":{},":":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}}},"能":{"docs":{},"力":{"docs":{},"的":{"docs":{},"同":{"docs":{},"学":{"docs":{},"可":{"docs":{},"以":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"将":{"docs":{},"原":{"docs":{},"先":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}}}}},"根":{"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.0012642225031605564}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"程":{"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":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"docs":{},"量":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{},"全":{"docs":{},"局":{"docs":{},"变":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"流":{"docs":{},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"物":{"docs":{},"理":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"我":{"docs":{},"们":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"跳":{"docs":{},"过":{"docs":{},"。":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"在":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"运":{"docs":{},"行":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0037926675094816687}}}}}},"让":{"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":{},"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"看":{"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.0012642225031605564}}}}}}}}}}}}}},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"将":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}},"到":{"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/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}}}}}}}}}}}}},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"吧":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}},"(":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}},"细":{"docs":{},"节":{"docs":{},"呢":{"docs":{},"?":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}},"继":{"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.0012642225031605564}}}}}}}}}}}}}}}}},"综":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"。":{"docs":{},"在":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"定":{"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.0012642225031605564}}}}}}}}}}}}}}}},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"位":{"docs":{},"于":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"需":{"docs":{},"要":{"docs":{},"为":{"docs":{},"新":{"docs":{},"增":{"docs":{},"加":{"docs":{},"的":{"docs":{},"运":{"docs":{},"算":{"docs":{},"添":{"docs":{},"加":{"docs":{},"语":{"docs":{},"义":{"docs":{},"分":{"docs":{},"析":{"docs":{},"的":{"docs":{},"部":{"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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"还":{"docs":{},"需":{"docs":{},"要":{"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/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}}}}}}}}}},":":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}}}}}}},"只":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"读":{"docs":{},"内":{"docs":{},"容":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}},"调":{"docs":{},"用":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}}}}}}}},"了":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"约":{"docs":{},"定":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},"上":{"docs":{},"的":{"docs":{},"存":{"docs":{},"储":{"docs":{},"返":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.005758157389635317}},"名":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}},"返":{"docs":{},"回":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0025284450063211127}},"指":{"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.0012642225031605564}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}},"(":{"3":{"2":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}},"docs":{}},"docs":{}}},"类":{"docs":{},"型":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406}}}}}}}}}}}}}}},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}},"都":{"docs":{},"是":{"docs":{},"继":{"docs":{},"承":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}}},"逻":{"docs":{},"辑":{"docs":{},"真":{"docs":{},"。":{"docs":{"docs/step2/intro.html":{"ref":"docs/step2/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/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"被":{"docs":{},"省":{"docs":{},"略":{"docs":{},"。":{"docs":{},"省":{"docs":{},"略":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.0038910505836575876}}}}}}}}}}},":":{"docs":{"docs/step1/example.html":{"ref":"docs/step1/example.html","tf":0.0012642225031605564}}},"成":{"docs":{},"员":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.011363636363636364},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055},"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}},"方":{"docs":{},"法":{"docs":{},"下":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"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/step1/visitor.html":{"ref":"docs/step1/visitor.html","tf":0.0032679738562091504},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"数":{"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":{},"列":{"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/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.003968253968253968}}}}}}}}}}},"先":{"docs":{},"来":{"docs":{},"看":{"docs":{},"看":{"docs":{},"示":{"docs":{},"例":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}}}}}}}}}}}}}},"遍":{"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":{},"封":{"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.0024630541871921183}}}}}}}}}}},"语":{"docs":{},"义":{"docs":{},"检":{"docs":{},"查":{"docs":{},"时":{"docs":{},"应":{"docs":{},"当":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"数":{"docs":{},"组":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"docs/step1/spec.html":{"ref":"docs/step1/spec.html","tf":0.011235955056179775},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"。":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}},"小":{"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/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.02112676056338028}},"等":{"docs":{},"于":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}},"就":{"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.003968253968253968}}}}},"很":{"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/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.005681818181818182}}}}}}}}}}}}}}}}}}}}}}},"规":{"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.007782101167315},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":10.00749063670412},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":10.007462686567164},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":10.0084388185654},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":10.00796812749004}}}},"记":{"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/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/step2/intro.html":{"ref":"docs/step2/intro.html","tf":0.02040816326530612}}}}}},"乘":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358}}}},"任":{"docs":{},"务":{"docs":{},"概":{"docs":{},"述":{"docs":{"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":{},"进":{"docs":{},"你":{"docs":{},"的":{"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.02040816326530612},"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step5/intro.html":{"ref":"docs/step5/intro.html","tf":0.014492753623188406},"docs/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612},"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517},"docs/step8/intro.html":{"ref":"docs/step8/intro.html","tf":0.01282051282051282},"docs/step9/intro.html":{"ref":"docs/step9/intro.html","tf":0.014492753623188406},"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372},"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223},"docs/step12/intro.html":{"ref":"docs/step12/intro.html","tf":0.019230769230769232}}}}}}}}}}}}}}}}}}}}}}}}}}}},"稍":{"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.02040816326530612}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}},"一":{"docs":{},"元":{"docs":{},"操":{"docs":{},"作":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"针":{"docs":{},"对":{"docs":{},"加":{"docs":{},"法":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"计":{"docs":{},"一":{"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.006944444444444444}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"写":{"docs":{},"语":{"docs":{},"法":{"docs":{},"规":{"docs":{},"则":{"docs":{},"时":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"都":{"docs":{},"用":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"出":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}},"含":{"docs":{},"义":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.017045454545454544},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.013888888888888888},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.012903225806451613},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0049261083743842365},"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936},"docs/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842},"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.003838771593090211},"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093},"docs/step11/example.html":{"ref":"docs/step11/example.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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}}}}}},"语":{"docs":{},"句":{"docs":{},"列":{"docs":{},"表":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.007936507936507936}}}}}},"句":{"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182},"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"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/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}}}}}}}},"被":{"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/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}}}},"逻":{"docs":{},"辑":{"docs":{},"取":{"docs":{},"反":{"docs":{"docs/step2/example.html":{"ref":"docs/step2/example.html","tf":0.005681818181818182}}}},"与":{"docs":{"docs/step4/intro.html":{"ref":"docs/step4/intro.html","tf":0.015384615384615385},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"或":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"会":{"docs":{},"麻":{"docs":{},"烦":{"docs":{},"一":{"docs":{},"点":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step4/spec.html":{"ref":"docs/step4/spec.html","tf":0.007042253521126761}}}}}}},"例":{"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.0038910505836575876}},":":{"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.003745318352059925}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"docs/step8/spec.html":{"ref":"docs/step8/spec.html","tf":0.007782101167315175}}}}}}}},"引":{"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.0038910505836575876},"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}}}}}}}}}}}}}}}}},"%":{"docs":{"docs/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"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/step3/intro.html":{"ref":"docs/step3/intro.html","tf":0.014925373134328358},"docs/step4/intro.html":{"ref":"docs/step4/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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}},"“":{"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.006944444444444444}}}}}}}}},"控":{"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.003745318352059925}}}}}}},"乘":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"二":{"docs":{},"元":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}},"操":{"docs":{},"作":{"docs":{},"符":{"docs":{"docs/step3/spec.html":{"ref":"docs/step3/spec.html","tf":0.041237113402061855}}}}}}},"减":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}},"右":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"左":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.041666666666666664},"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.05161290322580645}},";":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"意":{"docs":{},"义":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"但":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/example.html","tf":0.006944444444444444}}}}}}},"味":{"docs":{},"着":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"没":{"docs":{},"有":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}}}}}}}}},"除":{"docs":{},"法":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step3/example.html":{"ref":"docs/step3/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":{},"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"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":{},"小":{"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.015384615384615385}}}}}}}}}}}}}}}}}}}},";":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064},"docs/step7/spec.html":{"ref":"docs/step7/spec.html","tf":0.020833333333333332},"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895},"docs/step11/spec.html":{"ref":"docs/step11/spec.html","tf":0.004219409282700422},"docs/step12/spec.html":{"ref":"docs/step12/spec.html","tf":0.00398406374501992}},"。":{"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/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}}}}}}}}}}}}}}}}}}}}}},"给":{"docs":{},"出":{"docs":{"docs/step4/example.html":{"ref":"docs/step4/example.html","tf":0.0064516129032258064}}}},"判":{"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.014492753623188406},"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"运":{"docs":{},"行":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"建":{"docs":{},"立":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},",":{"docs":{},"在":{"docs":{},"退":{"docs":{},"出":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"。":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"对":{"docs":{},"于":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"非":{"docs":{},"常":{"docs":{},"重":{"docs":{},"要":{"docs":{},"。":{"docs":{},"那":{"docs":{},"么":{"docs":{},"程":{"docs":{},"序":{"docs":{},"在":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"如":{"docs":{},"何":{"docs":{},"建":{"docs":{},"立":{"docs":{},"和":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"呢":{"docs":{},"?":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},",":{"docs":{},"建":{"docs":{},"立":{"docs":{},"栈":{"docs":{},"帧":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"生":{"docs":{},"成":{"docs":{},"代":{"docs":{},"码":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{},"每":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"起":{"docs":{},"始":{"docs":{},"位":{"docs":{},"置":{"docs":{},",":{"docs":{},"由":{"docs":{},"编":{"docs":{},"译":{"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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"建":{"docs":{},"立":{"docs":{},"与":{"docs":{},"销":{"docs":{},"毁":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}},"概":{"docs":{},"念":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}},"中":{"docs":{},"的":{"docs":{},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"区":{"docs":{},"域":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"于":{"docs":{},"存":{"docs":{},"储":{"docs":{},"局":{"docs":{},"部":{"docs":{},"数":{"docs":{},"组":{"docs":{},"。":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"介":{"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.0024630541871921183}}}}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"e":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}},"栈":{"docs":{},"帧":{"docs":{},"中":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"分":{"docs":{},"配":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}},"了":{"docs":{},",":{"docs":{},"还":{"docs":{},"包":{"docs":{},"括":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}},"数":{"docs":{},"组":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"保":{"docs":{},"证":{"docs":{},"所":{"docs":{},"有":{"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.006329113924050633}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"为":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}},"局":{"docs":{},"部":{"docs":{},"变":{"docs":{},"量":{"docs":{},"和":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}},"的":{"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.007936507936507936}},"(":{"docs":{},"栈":{"docs":{},"顶":{"docs":{},")":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.015873015873015872}}}}}}}}}}},"无":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.005263157894736842}},"法":{"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.0024630541871921183}}}}}}}}}}}}}}}}},"条":{"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":{},"s":{"docs":{},"p":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"赋":{"docs":{},"值":{"docs":{},"运":{"docs":{},"算":{"docs":{"docs/step5/example.html":{"ref":"docs/step5/example.html","tf":0.0024630541871921183},"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/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.0024630541871921183}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"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/step6/intro.html":{"ref":"docs/step6/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/step6/intro.html":{"ref":"docs/step6/intro.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}}}},"则":{"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.003968253968253968}}}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"代":{"docs":{},"码":{"docs":{},"块":{"docs":{},"里":{"docs":{},"的":{"docs":{},"变":{"docs":{},"量":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}}}}}}}}}}}}}},"空":{"docs":{"docs/step6/example.html":{"ref":"docs/step6/example.html","tf":0.003968253968253968}},"集":{"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/step6/dataflow.html":{"ref":"docs/step6/dataflow.html","tf":0.00510204081632653}}}}},"件":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{"docs/step7/intro.html":{"ref":"docs/step7/intro.html","tf":0.018518518518518517}},"会":{"docs":{},"先":{"docs":{},"对":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"操":{"docs":{},"作":{"docs":{},"数":{"docs":{},"求":{"docs":{},"值":{"docs":{},",":{"docs":{},"再":{"docs":{},"根":{"docs":{},"据":{"docs":{},"其":{"docs":{},"值":{"docs":{},"选":{"docs":{},"择":{"docs":{},"计":{"docs":{},"算":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"或":{"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/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/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/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/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/step7/example.html":{"ref":"docs/step7/example.html","tf":0.003389830508474576}}}},"到":{"docs":{},"这":{"docs":{"docs/step8/example.html":{"ref":"docs/step8/example.html","tf":0.010526315789473684}}}}},"默":{"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.005263157894736842}}}}}},"两":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"将":{"docs":{},"o":{"docs":{},"p":{"0":{"docs":{},"加":{"docs":{},"入":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"以":{"docs":{},"保":{"docs":{},"证":{"docs":{},"s":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"时":{"docs":{},"候":{"docs":{},"不":{"docs":{},"会":{"docs":{},"将":{"docs":{},"o":{"docs":{},"p":{"0":{"docs":{},"覆":{"docs":{},"盖":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"准":{"docs":{},"备":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"传":{"docs":{},"参":{"docs":{},"。":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}}}}}}}},"拿":{"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.0019193857965451055}}}}}}}}}}}}}}}}}}}}}}}}},"放":{"docs":{},"入":{"docs":{},"a":{"0":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"1":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"docs/step9/example.html":{"ref":"docs/step9/example.html","tf":0.0019193857965451055}}}}}},"docs":{}}}},"构":{"docs":{},"建":{"docs":{},"符":{"docs":{},"号":{"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.0019193857965451055}}}}}}}}}}}}}}}},"的":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"称":{"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.0019193857965451055}}}}}}}}}}}}},"合":{"docs":{},"法":{"docs":{},"。":{"docs":{"docs/step9/spec.html":{"ref":"docs/step9/spec.html","tf":0.003745318352059925}}}}},"段":{"docs":{},"或":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}},"里":{"docs":{},"。":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}},"中":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"其":{"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.005813953488372093}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"已":{"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.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},")":{"docs":{},"。":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}}},"访":{"docs":{},"问":{"docs":{},"它":{"docs":{},"也":{"docs":{},"不":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"docs/step10/intro.html":{"ref":"docs/step10/intro.html","tf":0.023255813953488372}}}}}}}}}},"伪":{"docs":{},"指":{"docs":{},"令":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"被":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"哪":{"docs":{},"些":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"到":{"docs":{"docs/step10/example.html":{"ref":"docs/step10/example.html","tf":0.005813953488372093}}}}},"甚":{"docs":{},"至":{"docs":{},"可":{"docs":{},"以":{"docs":{},"支":{"docs":{},"持":{"docs":{"docs/step10/spec.html":{"ref":"docs/step10/spec.html","tf":0.0037313432835820895}}}}}}}},"连":{"docs":{},"快":{"docs":{},"速":{"docs":{},"排":{"docs":{},"序":{"docs":{},"都":{"docs":{},"写":{"docs":{},"不":{"docs":{},"了":{"docs":{},"。":{"docs":{"docs/step11/intro.html":{"ref":"docs/step11/intro.html","tf":0.022222222222222223}}}}}}}}}}}},"难":{"docs":{},"度":{"docs":{},"不":{"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.022222222222222223}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"索":{"docs":{},"引":{"docs":{},"基":{"docs":{},"底":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"运":{"docs":{},"算":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}}}},"采":{"docs":{},"用":{"docs":{"docs/step11/example.html":{"ref":"docs/step11/example.html","tf":0.006329113924050633}}}},"多":{"docs":{},"维":{"docs":{},"数":{"docs":{},"组":{"docs":{},"按":{"docs":{},"照":{"docs":{},"类":{"docs":{},"似":{"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.00398406374501992}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"手":{"docs":{},"册":{"docs":{"REFERENCE.html":{"ref":"REFERENCE.html","tf":0.027777777777777776}}}}},"length":5265},"corpusTokens":["!","!,","!=","!=(不等于)类似于关系操作符,结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","!x;","!。","\"","\"\"\"","\"(\"","\")\"","\";\"","\"=\"","\"_tk\"","\"a\"","\"declaration\"]]):","\"gcc:","\"if\"","\"input.c\"","\"rv32i2p0_m2p0\"","\"unprivileg","#","#includ","$","$?","$。例如,让你运行","$,那么这一行是上一条命令的输出(除非我们特别说明,这一行是你要输入的内容)。","%","&","&&","&&、逻辑或","'&&'","'''","'('","')","')'","':'","';'","';')","'='","'?'","'['","']'","']')*","']')+","']')?(('['integer']')*)?","']')?(('['integer']')*)?)*)?","'break'","'continue'","'do'","'for'","'if'","'int'","'int')","'main'","'return'","'while'","'{'","'|'!'|'~')","'|'~'|'!')","'||'","'}'","'}')?","(","(!v","('","('*'|'/'|'%')","('+'|'","(','","('='","('=='|'!=')","('['","('else'","('|'>'|'|'>=')","((null","(0","(0)","(1","(1)","(2","(a","(a/b)*b","(a=1)+(a=a+1);","(add","(body)","(children[0])","(compound_stat","(condition)","(expr)","(express","(extend","(function","(i","(i)","(i=0;","(ident)","(int","(integ","(k","(lh)","(op)","(ret_t)","(rh)","(sifiv","(sub","(sysv),","(tac)","(type","(x)",")",")。","*","*base","*dst,","*live)","*t,","*、整除","+","+、减",",",".","...","......","...;","./a.out","./a.out:","./check.sh","./configur","./reports/.pdf,比如","./reports/stag","./requirements.txt",".align",".attribut",".bss",".data",".file",".gitlab",".global",".globl",".ident",".option",".section",".size",".space",".text",".text.startup,\"ax\",@progbit",".type",".word","/","//","/usr/","/usr/local/bin/pk","/usr/local/bin/pk,要么每次都用完整路径。","/、模","0","0(sp)","0(t0)","0))","0,","0;","0;}。","0;定义的,g(a)中的a是上一行的let","0。","0。但判等操作符的优先级比关系操作符更低。对于任意一对操作数,这两个操作符中有且仅有一个结果为","0。例如:","0)。","0,仍然可能存在未定义行为。请问这时除法的左操作数和右操作数分别是什么?请将这时除法的左操作数和右操作数填入下面的代码中,分别在你的电脑(请标明你的电脑的架构,比如","0,则其行为都是未定义的。当","0,我们会对第三个操作数求值。当第一个操作数的值为","0,我们会对第二个操作数求值。当且仅当第一个操作数的值等于","0,语义规范说","0,跳转到","0;当操作数等于","1","1)","1+2*(4/2+1)","1+3","1+3==4","1.","1.1","1.2","1.3","1.pdf。","10%","10%。","10%)。","10%,对思考题的回答占","10.1","10.1.0","10.2","10.3","10;","10,我们将这类一元运算操作都称为","11","11.1","11.2","11.3","11.4","119","12","12.1","12.2","16","1;","1;这样的语句,但是不会见到return","1;,这样一条声明在语义上等价于","1=2","1]","1],补码表示。","1。","1。在生成过程中,首先使用","1(待我们加上四则运算后)。","1)。","1,!!2","1,也就是说","1,当不满足时结果为","1,避免溢出。感谢孟本源同学!","1,那么判断是否有","1;否则其结果为","2","2)","2);","2+3)。","2,","2.","2.1","2.2","2.3","2.4","2.5","20%","20.04","2020.04.0)","2020.08.2","2021.10.5","2022","2022;","2022和_t1","2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):","2022,就是将立即数","2023","2023;","2123),对初始化表达式是非字面量的情况不做任何要求(例如","2147483647","2147483648,但可以写成","22/minidecaf","233","233;}","24:00","2;","2;,则对应的","2;,否则执行","2^31","2^31,","2”。","2。如果要求条件表达式不短路,在你的实现中该做何种修改?简述你的思路。","2,否则判断是否有","2;","3","3)","3))","3))(前序表示),不能解析成mul","3);","3),不能解析成sub","3,","3.1","3.2","3.3","3.4","3.5","3.5,即其操作数的求值顺序是未指定行为。","3.9","32","3;","3;。因此,我们设置了两个跳转标签","3应该解析成sub","3应该解析成语法树add","4","4(sp)","4.1","4.2","4.3","4.4","4.5","40","4;","4};","4,即可得到","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","52(sp)","56","5;","6","6.1","6.2","6.3","6.4","64","7.1","7.2","7.3","7。","8","8.1","8.2","8.3","8.3.0","8.3.0\"","8.4","8.5","8.6","8.7","8.8","8.9","80%","9","9.1","9.2","9.3","9.4","9.5","9.6",":","::=",";",";。","=","==","==,","==(等于)和",">",">,",">add(t",">contains(v))",">dirti",">getslottowrite(v,",">is_offset_fixed)",">liveout",">liveout);",">op0.var);",">var;","?","@function","[","[0,","[bnf](https://en.wikipedia.org/wiki/backus%e2%80%93naur_form)","]","__init__(self,","_frame","_l1","_l1:","_l1)是循环体的开始位置。初次进入循环时,从这个标签的位置开始执行,并判断循环条件是否满足,若不满足,则跳转到","_l2","_l2:","_l2)是执行","_l2,分别表示","_l3","_l3)处。","_lk","_reg[i]","_reg[riscvreg::fp];","_t0","_t0,","_t0。如果","_t0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return","_t0这一行,我们要将虚拟寄存器t0作为参数x放入物理寄存器a0,假设此时t0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器t2,那么要先将t2","_t0),对于每个源操作数对应的临时变量(本例中","_t0),我们检查该临时变量是否已经存放在物理寄存器中,如果不是,则分配一个物理寄存器,并从栈帧中把该临时变量加载到寄存器中;对于目标操作数对应的临时变量(本例中的","_t1","_t1,","_t1}","_t1。","_t1。例如,测例中直接用返回","_t1翻译过程发生了什么。","_t1,此时","_t2","_t2,","_t2),如果该临时变量没有对应的物理寄存器,则为其分配一个新的物理寄存器。寄存器分配过程中,将为临时变量和为该变量分配的物理寄存器之间建立一种关联关系。","_t3","_t3,","_t3}","_t4","_t5","_,如果链接时出现问题请检查是不是下划线导致的。","`p_`","a%b","a.out","a.out:","a.out。但","a.out,具体操作如下","a.out,获取返回码","a0","a0,","a0,233","a0,a0","a1","a1,","a7","a:","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:根据每个函数的","add","addexpr","addi","addit","address","alloc","allocforloc:每一条指令进行寄存器分配。","allocregfor","allocregfor:根据活跃变量信息决定为当前","altern","analysis),或者称为“活跃变量分析”。","analyz","analyzer.accept(cfg)","andexpr","antlr","appl","approach","apt","arch,","argpars","argparse:","argument_list","arm...)和源语言(minidecaf,","arm)中和","arr[0]","arr[1]","arr[2];","arr[3];","arr[3]={1,2,0};","arr[3]={1,2};","arr[4]","arraytyp","array,vla),在我们的实验中为了简化,选择不支持它。请你简要回答,如果我们决定支持一维的可变长度的数组(即允许类似","asm.transform","assign","assign_stmt","ast","ast),接下来通过扫描","ast省略掉了完整的语法分析树中不必要的细节(例如条件表达式旁边的括号),有利于简化树的结构与后续对树的处理。","ast)。比如,对于下面这一段简单的minidecaf","ast,对每个语句和表达式逐一进行类型检查,并在","ast,我们使用了","ast,检验是否存在如下的语义错误:","ast:","a。","a:","a:python","a:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!","a:在","a:如果你安装了多版本的","a:请修改","a:非常抱歉,框架中输出时有一个小错误。在","b","b);","backend","backend/asm.pi","backend/asmemitter.pi","backend/dataflow/","backend/dataflow/cfg.pi","backend/reg/","backend/reg/bruteregalloc.pi","backend/riscv","backend/riscv/","backend/subroutineemitter.pi","barku","base,索引下标","bash","basic","basicblock(基本块)内的指令进行寄存器分配。","bbl","befor","begin","beginloop_label:开始下一轮迭代","beginloop_label:本轮迭代完成","beginloop_label:本轮迭代完成,条件满足时进行下一次迭代","behavior),即其行为可以是多种合法的可能性之一。也就是说,以任意顺序对子表达式求值都是合法的。","behavior),即对程序的行为无任何限制。","beq","beqz","binari","bind:将一个","bison","bison)掩盖了很多语法分析的实现细节。","bit","bitnotexpr","block","block,","block_item","block_item*","block)和控制流图(control","bnez","bodi","book","br","branch","branch、beqz(条件为假时跳转)、bnez(条件为真时跳转)或者","branch、condbranch","branch,当切换到一个新的","break","break/continu","break;","break_label:条件不满足就终止循环","break_label:条件不满足,或者","break。它们的作用如下:","brew","bruteregalloc","bruteregalloc.pi","bss","builder","builder.buildfrom(pair[0])","b,则图中包含从","c","c++","c++框架中:","c,","c/c++","c17","c=0;","c=0;}","calcul","calculate()","calculate();","call","calle","caller","caller/calle","caller,语句中的表达式的值会返还给","cat","cd","cfg","cfg:","cfgbuilder()","cfg,可以参见","child","child.accept(self,","children","child,直接调用","ci","ci.yml","ci。","ci(持续集成)来测试大家的代码实现及提交实验报告。","ci,你不允许修改此文件;","ci,这不会对你的提交/补交产生影响。","class","clone","cnt)","cnt);","cnt,","code,","comma","commit","compil","compilation)。","compiler:","compiler:","compound_stat","compstmt","cond","condbranch","condit","cond,更新语句","cond,真分支","conflict","construct","continu","continue/break","continue_label:continu","convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。","cp","ctrl","ctrl,i=i+1","ctx)","ctx:","d","d,","d;","d=0;","d=0;}","d=0;,到底是","d=0;?","darwin.tar.gz,不过还需要通过","darwin.tar.gz,只用里面的","data","decaf","decaf,我们在新的且更简单的语言规范下复用了","declar","declaration)*","def","devic","df","dfg(数据流图)进行寄存器分配,寄存器分配结束后生成相应汇编代码。","dfs(func)","dfs(node:","divexpr","docstr","dtc","dtc):","e","e1,右操作数","e2","e;","ebnf","echo","elf","elf(execut","elif","else:","else;","else(dangl","else)","else),要求","emitend","encount","end","epilogu","epilogue。epilogu","epilogue,将","equal","equexpr","error\"","error:","example.c","exec","execut","executable,","expr","express","expression)*)?","expression):","expression)?","expression?","expression_list","expression)。","expression,变成","e)。假设我们的处理器只有","f()","f(){if(0)","f(a);","f(a);。","f(int","file","file:","fill_n","fill_n(arr,","fill_n(int","finish","flow","fn","foo(int","foo.c","foo.s(记得加","foo:","form)","format","format)。","found","fp","fp,它们分别保存当前栈帧的栈顶地址和栈底地址。当新的函数被调用时,需要把旧栈帧的栈底地址(fp)保存起来,用旧栈帧的栈顶地址(sp)表示新栈帧的栈底地址(新fp)。不难看出,新老栈帧在栈内存中是连续的存储空间。此外,每个函数体中需要分配的局部变量以及需要保存的临时变量在编译过程中是可知的。因此,栈帧的大小在编译期可以计算得出,即存储寄存器的空间,临时变量存储空间与局部变量空间三者之和。在求得栈帧大小之后,可以通过修改栈顶指针(sp)的值来分配恰当的栈帧空间。","fp,此时","frontend.parser.parser(位于","frontend/ast/node.pi","frontend/ast/tree.pi","frontend/ast/visitor.pi","frontend/ast。","frontend/lex/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/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;作用域相关数据结构位于","frontend/utils/tac","fun(int","func","func(1,","func(arr);","func(int","func:","func_exit","func_exit:","function","function(node):","function):","function*","function,","function.","function:","funcvisitor","funcvisitor.pi","g(a);","gcc","gcc,用来生成","gcc,这种","generator(如","geqexpr","ghuloum","ghuloum.pdf","git","git.tsinghua","git.tsinghua.edu.cn","github","github),托管至私有仓库的请不要给其他同学任何访问权限。","git。","grammar","graph)是用于进行上述分析的数据结构。","grtexpr","gustedt","hello","hints,如果你习惯在","homebrew","http://scheme2006.cs.uchicago.edu/11","https://blog.csdn.net/daybreak222/article/details/87968078","https://git.tsinghua.edu.cn/compil","https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git","i,","i2d3...*dn","i;","i=0;;i=i+1)","i=0;i","i=0;i。","i=1;","ident","identifi","identifier(\"i\")","identifier(\"main\")","identifier(main)","identifier)*)?","identifier,","identifier),可以用字符串字面量表示终结符(如","ident,参数列表","if(a)","if(b)","if(i","if;这样的语句,因为","if_stmt","if。","if;","in]。在将数组索引翻译成","increment","index","indexexpr","init","init、ctrl","init、ctrl、post","init,i","init,循环条件","input","input.","input.c","input.s,最高优化等级(否则输出的汇编会很冗长)","instal","instr.valu","instr.value))","instr:","instruct","int","int(1)","int(2)","int):","integ","integer(2022)","integer)*)?","intliteral(2022)","int)从左到右存放在","int)放在","int;关于逻辑非,只有","ir","ir)是介于语法树和汇编代码之间的一种程序表示。","ir,只需要写","isa","isa=rv32g","isinst","isinstance(child,","isinstance(node,","isinstance(value,","j","j)","j);","java...)。由于不同源语言的","jen","jmp","jump","k","kind","l)","l,","l;","la","label","lalr","lalr(1)","land","languag","lbrace","len(...)","len(self.emitter.allocatableregs)","length","leqexpr","lesexpr","lex","lex/yacc","lex/yacc,完成作业;也可以选择阅读一些较为详细的文档,来系统地进行","lexer","lexer(或","lhs,右操作数","li","link","linked,","linux","linux/mac","linux用户","linux,spik","list=riscv32","live","live);","livein","livein(succ(b))。","livein、liveout","livein、liveout。","livenessanalyzer()","liveout","liveout(b)","liveset","liveus","load","load_symbol","loader","load到一个虚拟寄存器","localalloc:根据活跃变量信息对一个","logical_and","logical_or","lookupreg(t","loop","lor","lparen","ls","lsb","lt","lts;","lvalue)。左值(lvalue)即一个会被指派为某个变量的表达式,如在","lw","m","mabi=ilp32","mac","maco","mac),window","mac),可以尝试自行根据","main","main()","main(){","main(){return","main,","main.pi","main.py,它通过调用","main:","main_exit","main_exit:","mainfunc","mainfunc.body.accept(self,","main。","main函数,代码贴了一些在这里:","main(可忽略)","main:","make","march=rv32im","memset","merg","miniconda","minidecaf","minu","mip","mips,","mips)规定的物理寄存器,其数目有限;而","modexpr","monkey:","mul","mulexpr","multi_nesting.c","multipl","mv","mv)","mv)会进入visitintliteral。","mv),在这个例子中则会调用return","mv.visitend","mv.visitend()","mv.visitload(expr.value)","n","n2176(n2176","name","namer","namer(visitor[scopestack,","namer.transform","namer.transform,","nativeinstr","naur","neg","negexpr","neqexpr","node","node):","node,","node.functions:","node:","non","none","none:","none]):","nopic","nora","notexpr","notimplementederror","nqcc","o","o3","offset","ok","oop","op","op:","operand:","operand,运算类型","operator,","optional[u]:","orexpr","oss;","os用户,假设你已经将spike加入环境变量,将pk加入系统目录","os)中进行开发。助教不推荐直接在","otherwis","p","p)","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])","parallel","param","param[0]","param[]){","param_list","param_list,","paramet","parameter_list","params,函数体","pars","parser","parser.pars","parser.parse(...)","parser。","parser)一些信息,最经典的例子是","pass","pass。","pass。下面,我们将指出,step1","path=$path:/path/to/riscv","pdf","phase.","pip","pipelin","pk","pk。","pk,不过那是","pli","ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了","ply),其使用方法与","post","postfix","post。","ppa:deadsnakes/ppa","prebuilt","prebuilt/bin加入到.bashrc文件的末尾。注意,此处的/path/to","prebuilt(这一步实际不是必须的,主要为缩短文件夹名字的长度),然后修改~/.bashrc","prefix=/usr/loc","prepare.sh","primari","print","printer","printer.work(prog)","printf(\"%d\\n\",","printf(\"hello","problem”。","prog.funcs:","prog.printto()","prog:","program","program(listnode[union[\"function\",","program)","program):","program,","program.mainfunc()","program:","programwriter([\"main\"])","program),大写字母打头的是终结符(如","prologu","prologue。prologu","prologue,将","push","pw","pw.visitend","pw.visitend()","pw.visitmainfunc()","pylanc","python","python3.9","python框架","python,使用","python,可以通过","q:","qemu","qemu/spik","qemu。","qemu)使用的可执行文件的格式是","qemu,即","qsort(a,","qsort(int","q:","q:python","q:使用","q:如何提交课程报告?","q:实验指导书中step4的目标代码生成部分,给出的ir对应汇编指令不正确,修改了原有寄存器的值?","q:我怎样才能知道我的提交通过了所有测试用例?","r","r)","r;","ra","ra,","rais","random.randint(0,","ra(存放函数返回地址)、sp(存放当前栈顶地址)、fp(存放当前栈底地址)、a0&a1(存放函数返回值)。为了简单起见,我们简化了","rbrace","readcod","readm","recurs","reduc","reg","reg0","reg0,","reg1","reg1,","relat","rememb","remot","reports/.pdf,比如","reports/stag","repositori","represent","requirements.txt,你可以通过","res,","result","result);","result;","ret","retri","return","return(statement):","return)","return):","return,","return_type,函数名","rhs,运算类型","risc","riscv","riscv/riscv","riscv32","riscv64","riscv64,","riscvasmemitter.pi","riscvdesc::setregparam(tac","riscvdesc::spillreg(int","riscvreg","riscvsubroutineemitt","rparen","rules)。","rule:","runtim","runtime.c","runtime.c,runtime.h,runtime.","runtime.h","runtime,部分函数在源代码中只有声明,其定义在","rust","rv32i","rv32im","s","s1;","s2;","sandler","sat","save","saved。","scan","scope","scope.pi","scopestack)","selectinstr","self.emitter.allocatableregs[","self.emitter.emitend()","self.emitter.selectinstr(func)","self.freshtemp()","self.freshtemp()分配了一个虚拟寄存器","self.func.add(loadimm4(temp,","self.func.add(loadstrconst(temp,","self.regalloc.accept(cfg,","self.seq.append(riscv.jumptoepilogue(self.entry))","self.seq.append(riscv.loadimm(riscv.a0,","self.seq.append(riscv.move(riscv.a0,","self.visitother(that,","sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(cal","seqz","shell","shell,那加到","shift","sifiv","sim","size","slt","snez","someth","sp","sp,","spec\"。","spec\",另外这里也有(非官方的)指令用法说明。下图给出了","special.","spike","spike(会自动安装","spill","spillreg(riscvreg::a0","spill到栈中。","sp,并恢复","ssh","stack_align,","stack)这个数据结构。在进行符号表构建的扫描过程中,我们需要动态维护作用域栈,保存当前扫描结点所在的从内到外所有作用域。每次我们开启一个代码块时,要新建一个作用域并压栈;而当退出代码块时,要弹栈关闭此作用域。","stage","stage.sh无法正常使用?","stage1","stage3","stage4","stage5","stage中的test","stage的前端接入到原先的中后端来进行测试。","stage,我们将一起实现对变量以及分支语句的支持。无论如何,当前的任务已经完成,好好休息一下吧☕️","stage,每个","start","statement","statement(node):","statement)?","statement*","static","std::fill_n","std::ostringstream","step","step0","step1","step10","step10)。在这个","step10:全局变量","step11","step11:数组","step12","step12)。在这个","step12:为数组添加更多支持","step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0","step1,实验框架给出的初始代码可以通过","step2","step2。","step2:一元运算符","step3","step3:加减乘除模","step4","step4)。在这个","step4:比较和逻辑表达式","step5","step5:局部变量和赋值","step6","step6)。在这个","step6:作用域和块语句","step7","step7:","step7:","step8","step8)。在这个","step8:循环语句","step9","step9:函数","step_pars","step_until=1","step。每个","step,共包含","stmt","stmt.expr.accept(self,","store","store,搜索ubuntu,选择ubuntu20.04.","str])","strip","sub","subexpr","submodul","subroutineinfo.pi","sudo","sw","symb/symbol.hpp","symbol","symbol.pi","syntax","t","t)","t):","t0","t0,","t0,t1","t0结果,成立为1,失败为0","t0,这里的逻辑与需要将t1、t0通过汇编指令先转换为true或false,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生","t1","t1,","t2","t2,","t2)","t3,t1,t2","t3,t3","t_minu","t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。","tac","tac/dataflow.cpp","tacgen.transform","tacinstr.pi","tacprog):","tacprog:","tac)看起来很像汇编,与汇编最大的区别在于","tap","target","temp","temp:","temp(临时变量)与寄存器绑定。","temp(临时变量)与相应寄存器解绑定。","temp(临时变量)分配哪一个寄存器。","test.c","testcases/step1/multi_digit.c","testcases/step1/newlines.c","tests中的check.sh测试脚本,将pars","that:","then,假分支","tint","tint(typeliteral):","token","token。它被看成是一个取负符号、后面是它的绝对值。","transform(self,","translat","tree","tree,","tree.unary(unaryop.neg,","treeprinter(indentlen=)","type","type(int)","type,","type/type.hpp","typed)语言,在语言设计之初,设计者都会考虑该语言支持表达哪些类型,并给出定型规则(typ","typeliteral(node):","typer","typer.pi","typer.transform","typer.transform如果没有这两个步骤,以下代码能正常编译吗,为什么?","u","u;","u]):","u],","ubuntu","ubuntu,","ubuntu14/*","ubuntu14/改名为","ubuntu,debain","ubuntu,你需要自己编译出可用的用户态","ucb","unaligned_access,","unari","unary(expression):","unary,其中p[0]代表的就是第一个unary,","unary,那么","unbind:将一个","union[int,","unix","unknown","updat","update,循环体","user","user。","utils.error.illegalargumentexception:","utils/riscv.pi","utils/tac/funcvisitor.pi","utils/tac;中间代码生成位于","v","v)","v,","v.visitfunction(self,","v.visitprogram(self,","v0,","v:","val","value))","value:","var_type,变量名","version","virtualbox","visit","visitblock","visitfunction(self,","visitload(self,","visitor","visitor(protocol[t,","visitor[t,","visitor。此外,为了便于实现,我们不使用","visitother(self,","visitprogram(self,","visitreturn(self,","visitxxx","vmware","void","vscode","v(非官方)汇编指令用法","v,risc","win10","window","world!","world!\"输出。","world!\\n\");","write","wsl","wsl,或者运行一个虚拟机。","wsl,通过","x","x)","x+","x,","x86","x86,","x86_64","x:","x;","x[10];","xx","xxx","x。","x。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。","x。因此,语句","x。此时,只需要在栈顶作用域中查找该变量是否存在。若不存在,即在符号表中加入对应符号。此时的作用域栈如下:","x同样也是表达式,其会生成一个值。而带返回值的","x(然后回车)。如果开头没有","x,于是向下继续查找。在","x,但随后我们开启了一个新的代码块。在这个代码块中,赋值语句","x,并将其加入栈顶作用域对应的符号表中。如下所示:","x,所找到的变量","x,而","x,而随后通过","x,这个","x,那你最终敲到终端里的是","y","y)","y);","y;","y[10];","yacc","yacc(简称","y。","y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索","y,并且","zero,","zsh","{","{1,","{1,2};","{_t0,","{_t0}","{_t1}","{_t2,","{if(b)","|","||","}","}”","},且其返回值被","~","~!这三个单目运算符和从","~/.bashrc使修改生效。","~/.zshrc","~0","~a,","——","“typedef","“执行到了","“控制流图”","↩","、乘","、按位取反","。","【linux","【maco","一一对应为一个汇编指令序列嘛,有什么必要吗?其实这一步是必要的,首先有的中间表示可能无法由一条汇编指令完成,比如t2","一个","一个临时变量在某个执行点是活的(也叫“活跃”、live),是指该临时变量在该执行点处具有的值会在这个执行点以后被用到,换句话说,就是在该执行点到给这个临时变量重新赋值的执行点之间存在着使用到这个临时变量的语句。活性分析是指分析每一个临时变量在程序的每一个执行点处的活跃情况,通常是通过计算出每个执行点处的活跃变量集合来完成。","一个例子","一个函数中可以有任意多条","一个基本块的任何一个后继基本块入口处活跃的变量在这个基本块的出口必须也是活跃的。","一个数组类型描述了一组被连续分配在一段内存空间中的对象,所有对象都具有相同的类型(我们称之为元素类型)。数组类型包含两部分:元素类型,和数组的长度(即元素数量)。数组类型的表达式仅能参与下标运算。","一元负号","一元运算","一或多次,?","一样,见上一节。如果不设置每次使用","一般来说,在三地址码的基础上是可以直接翻译为目标代码的,但是这样的直接翻译会导致所产生的代码的效率比较差,所以多数编译器都会进行一定的优化工作。为了进行更深入的优化,编译器需要了解程序语义的更多内容,例如一个变量的某个赋值在当前指令中是否有效、一个变量在当前指令以后是否还会被使用、当前运算指令的两个操作数是否都能够在编译的时候计算出来、循环体中某些代码是否能够提出到循环外面、循环次数是不是编译的时候已知的常数等等,这些语义分析和代码优化离不开控制流分析和数据流分析。","一般来说,活性分析是通过求解活跃变量方程来完成的。为了介绍活跃变量方程的概念,","一节都会对这个步骤中的新特性给出规范,方便大家查阅。","三个操作的语义和","三地址码","三地址码定义位于","三地址码(three","三地址码;在编译器后端中,将三地址码转换为","上例中,.data","上实现时,你可以用","上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。","上的结点类型。","上表给出","上进行类型标注。对于静态类型(static","上述步骤","上面例子对应的控制流图如下:","上面的描述中提到,在分配寄存器的时候从栈帧中加载数据,以及将暂时不用的变量存储到栈帧中,接下来介绍栈帧的概念。","上,如","下实现了各种","下标运算越界是未定义行为。","下的","下运行(qemu","下进行开发。但不保证windows和在线测试环境下程序行为的一致性。","下进行开发,使用了","下面代码中每行语句右边都给出了执行完该语句后的活跃变量集合:","下面我们列出了所有框架中已经完成的特性:","下面我们将通过一个简单的","下面描述了","下面是环境配置指南,请阅读自己的系统的那一小节。","下面汇总一下。","下面的例子中,代码中不同的基本块被标以不同的颜色:","下面的描述中一定要记得区分accept和直接对于mv.visitorxxx的调用,前者是在遍历ast时调用的,后者是在","下面给出","下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成","不一样。","不为","不允许","不出意外你会获得如下结果:","不合法,但","不同,直接从","不支持","不支持负整数常量,如果整数不在此范围内,编译器应当报错。引入负号","不是合法的","不是必须的。","不是编译器常量;","不知道这点(parser","不等于","不能出现在循环外。","不论选择第二个操作数或者是第三个操作数去求值,都必须首先计算完第一个操作数,之后才能开始第二个或第三个操作数的求值计算。","不过事实上,很多时候看","不需要新增新的中间代码指令。","与","与一元操作类似,针对加法,我们需要设计一条中间代码指令来表示它,给出的参考定义如下:","两类寄存器,而不是要求所有寄存器完全由","个","个偏移的内存地址中的数据","个元素(从","个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用","个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡","个字节","个字节,倍数为4)即为偏移量。而对于高维数组,我们可以将其视为一个展开成一维的大数组。对于数组","个局部变量都保存在寄存器中。因此,编译器需要在栈上分配空间来存储这些变量。以下是栈空间的变化过程:","个局部整数变量(a","个整数寄存器的分类。所谓","个模块。","个步骤(其中","个汇编生成器,只有","个源语言和","个目标代码生成模块。如果有了","个目标指令集,需要写","个通用寄存器,在这种情况下,我们无法将","中","中。","中。也就是说,如果你有一个","中。以下表示中的符号都出自于这几个文件。","中。剩下的部分,对着代码和上面的ast看一下相信大家也知道发生了什么了。","中。比如我们有这样一段","中。)","中介绍)、被调用者负责保存的寄存器等。栈帧是函数正确调用和执行的保证。","中会先调用","中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过","中你只需要关注","中你将实现常量操作(加减乘除模等)。","中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。","中你将支持声明全局变量,并且支持函数的声明和调用。","中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。","中你的代码会得到不一致的结果,请联系助教。","中使用的临时变量的个数并没有做任何限制。但是在实际机器中,物理寄存器的数量是有限的。","中出现的每个变量名分别对应那个变量。","中加入相应的分派函数。","中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?","中只有","中只需要考虑常量的计算,直到","中存储地址,加载与该地址相差","中实现的整型常量越界检查。","中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。","中引入的","中引入的二元运算节点中进行修改即可。","中引入的运算均为二元运算,在","中我们提供了","中我们提供了加法运算的实现。","中我们提供了取负运算的实现。","中我们提供了基础数据结构——作用域栈的实现。","中我们提供了基础数据结构——符号表的实现。","中我们提供了所有实现。","中我们是如何实现符号表构建","中描述了如何运行","中搭建开发环境。对于","中添加基本块是否可达的判断。在寄存器分配算法","中的","中的一方保存?为何保存返回地址的","中的临时变量均用","中的变/常量可以直接对应。","中的第","中目标代码生成主要是指令的选择以及","中目标代码生成的主要任务有:翻译中间代码,将全局变量放到特定的数据段中。","中第","中第一个","中类型检查的部分,以及","中规定不管返回值有没有被使用,都是未定义行为。","中详细说明,当然如果你感兴趣,你也可以基于我们的框架实现更高级的干涉图分配算法,具体不作要求。","中返回。更多的返回值会全部放入内存返回,如约定好的栈的某个位置,这取决于函数调用约定。","中返回,如果你有两个","中进行开发的话同时推荐使用","中通过一遍","中逻辑运算符","中间代码指令。需要特别提出的是,risc","中间代码生成","中间表达指令为例,risc","中,a","中,a0","中,funcscop","中,i=0","中,tac","中,主要有以下几个函数:","中,你将支持数组,包括全局数组和局部数组。","中,使实现更加模块化。","中,变量符号的定义里有该变量对应的","中,定义的新","中,我们会将左值的范围进一步包括数组元素。","中,我们只维护了","中,我们只需为","中,我们对于短路求值未做要求,但在包括","中,我们引入了一元运算,因此需要引入新的抽象语法树节点:","中,我们引入了算术运算,因此需要引入新的抽象语法树节点:","中,我们要给整数常量增加一元运算:取负","中,然后再把","中,由","中,若你增加了","中,负数字面量不被整体作为一个","中,输出三地址码时,请使用","中;寄存器分配在","临时变量","临时变量对应起来。","临时变量成员。","临时变量的赋值","临时变量赋值操作","为","为了增加变量,我们需要确定:变量存放在哪里、如何访问变量。我们将借此引入","为了实现","为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下:","为了实现所有可能的跳转,对每个","为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从","为了方便同学们完成实验,我们提供的实验框架中已经完成了部分语言特性的实现。对于某些步骤,同学们可以参照已实现的特性完成剩余的部分。例如,根据提供的","为了简单,我们不要求这点。比如对于形如","为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供","为了让","为何","为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个","为假,那么应当跳转到","为全局符号;.word","为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评","为变量符号。在本节中,同学们只需要考虑变量符号即可。","为字符串,加载","为止。由于在栈顶作用域对应的符号表中不存在变量符号","为环境配置和框架学习,无需进行编程,不计入成绩。","为环境配置,主要是","为真,那么按顺序执行","为立即数2022分配一个临时变量","为符号类的基类,varsymbol.pi","为进行编译优化,建立控制流图是必不可少的一步。已知一个操作序列,如何根据这个操作序列建立对应的控制流图呢?通常分为两步进行:","主函数入口符号","主要涉及的知识为符号表、寄存器分配和栈帧,对于大家来说有一定的跳跃性和挑战性,希望大家能够尽早开始。","之前执行的初始化函数中","之前甚至","之后","之后每一步给出的语法都是没有歧义,本身就能体现优先级和结合性的。如果你确实想借助优先级和结合性来实现,需要两个步骤:","之后,c++","之后,如果我们想要编写一种遍历","之外的函数没有","之类的","之间的部分就是当前函数的栈帧。当前实验步骤中,需要关注的是临时变量保存区域,正是在这个区域中,保存了为腾空物理寄存器而取出的临时变量(仍然活跃的临时变量)。值得一提的是,临时变量保存区域中还保存了基本块出口处仍活跃的临时变量(关于基本块的概念,将在","乘法运算","也允许多次定义同名变量,并规定新的定义会覆盖之前的同名定义,请问在你的实现中,需要对定义变量和查找变量的逻辑做怎样的修改?(提示:如何区分一个作用域中不同位置的变量定义?)","也就是","也就是说,基本块内的代码执行过程总是从基本块入口开始,到基本块出口结束的,中间不会跳到别的地方或者从别的地方跳进来。","也提供了","也有很多写法,另一种是用尖括号表示非终结符","了。","了,还有可能是如","事实上,由于","二元操作符","二元运算","什么是","介绍,在当前的步骤不需要考虑)。","从","从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于","从执行的指令的条数这个角度(label","从本步骤开始,由于","从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。","从栈中将t0取出放入a0寄存器中","从编译器中端出来的中间代码中,我们对","从这里下载我们预编译的二进制程序包","从这里下载预编译好的","仓库链接。","代替了返回变量","代码","代码”的操作被称为交叉编译(cross","代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为","代码中的标签只有标志","代码中,x","代码为示例:","代码只是一种中间表示,并不需要像汇编语言那样有严格的语法。因此,同学们可以自由选择输出","代码可简化为:","代码段","代码的基本类型只有整数类型(int),因此我们在类型检查时只需要考虑","代码的控制流图。int","代码的格式,只要方便自己调试即可。例如,你也可以将","代码编译到","代码转化为了","代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。","代码(你不需要精确了解它的含义,大致理解即可):","代码,不过不是合法的","代码,也许","代码,使得不同的参数求值顺序会导致不同的返回结果。","代码,这样可以使中端与后端完全解耦。","代码:","以","以上给出了一份","以下讲述数据流分析的内容中,所有的","以及","以及常识相同,例如","以及括号","以及逻辑非","以后就能编译到","以处理命令行参数。官方文档中提供了它的教程。","以这个文法对应的一段","任务概述","仿照","优先和最接近的没有匹配","优先级和结合性","优先级是两个操作符之间的关系,例如*的优先级比+高,所以表达式1","会先visit","会对应于一个","会将数组变为","会引入","会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作","会返回","伪指令可能会被转换成哪些","但为了实现简便,我们就不要求支持这点。","但我们加上参数","但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设t0在此后不再被用到,那么t0就不在当前位置的liveout集合中,也就是说在spill寄存器时t0可以被覆盖掉,这可能导致t2被spill到了t0所在的位置,覆盖了t0。","但是有一个问题:这样的语法规范虽然是正确的,也确实可以直接用来实现语法分析器了,但并不符合直观:我们一开始学习c或者别的编程语言的时候,讲的就是一个二元表达式由两个子表达式和中间的操作符组成,并且操作符有优先级和结合性。也就是这样的:","但有时,可能需要后续阶段告诉","但特别注意,c","位","位整数,因此,我们可以把","位有符号整数类型,范围","位汇编","位汇编。","位的","位的值。因此在当前步骤中你只需要了解,将需要返回的值放入","位的支持存在问题。","位的返回值,你可以放在","位的返回值,你就需要把它们分别放在","位的,而我们需要","位的,请使用我们预编译的","位立即数到指定寄存器中,其中","作为函数参数的数组类型第一维可以为空。事实上,在","作为函数调用的表达式的值。一个函数可以有任意多条","作用","作用域中定义的","作用域定义的","作用域栈","作用域里的","作详细介绍。","你使用语言的框架里是如何处理悬吊","你做了哪些工作(即你的实验内容)","你可以不用关注pw是什么,假装它是一个容器,我们","你可以认为可变长度的数组的长度不大于0是未定义行为,不需要处理。","你可能会觉得,这一步不就是将","你应该就能看到类似的输出。(记得自己写一个example.c)","你的学号","你的学号姓名","你的编译器","你还可以开一个","你需要:","使用","使用时记得加这个参数,否则默认编译到","使用的、和","使用的是“虚拟寄存器”,我们称为临时变量,其数目不受限制,可以任意使用(这意味着直接将临时变量转化为寄存器可能会出现寄存器不够用的情况)。在后端生成汇编代码时,我们再考虑如何为临时变量分配物理寄存器的问题。","例如","例如,for","例如,int","例如:执行","依然遵循语义规范","依赖包","保存在寄存器中,e","保存在栈帧中,因此需要分配","修改了实验指导的排版、内容,删除了c++框架部分内容,增加了更多的指导内容。","修改了部分实验顺序,期望降低同学们实验的难度。","假设","假设在经过了词法分析和语法分析后,我们已经成功将","假设当前函数被某个函数调用,下图给出当前函数的栈帧。如图所示,当前函数的栈帧由被调用者负责保存的寄存器、保存的临时变量以及局部变量三个部分组成,fp","假设我们有若干个参数,可以依次使用","做简要介绍,后续的实验步骤中需要同学们添加恰当的三地址码指令来完成特定的功能。为了降低实验难度,给出部分参考实现,各位同学可以依据参考实现完成设计,也可以自行设计三地址码。需要指出的是,我们使用的","做详细介绍。","先将op0加入当前的liveout集合,这可以保证spillreg时候不会将op0覆盖","全局作用域(栈底)","全局变量和函数(step9","全局变量和局部变量不同,它不是分配在栈上,而是放在某个固定地址,写在汇编的","全局变量地址不是被狭义上的编译器(compiler)确定的,也不是被汇编器(assembler)确定的,而是被链接器(linker)或加载器(loader)确定的。","全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示:1.","公钥添加到你的","关于名字由来,由于往年的实验叫","关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。","关于操作系统,助教推荐使用","关于数据流分析的细节,我们将在","关于测试样例:","关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考","关系操作符","关系操作符可能导致表达式的含义与数学文献中常见的含义不同,例如","其中","其中f(a)中的a是上一行的let","其中双引号下的和大写字母开头的都为词法分析器产出的终结符。而对应的抽象语法树可能长这样:","其中,stage0","其他测试点,太长省略","其优先级的设定会导致其含义在某些时候可能会反直观,例如,0","其实也支持非字面量的编译期常量,例如","具体来说,在这一阶段中,我们需要对","具体的保存方法并不限制,但一般都使用栈来保存。","具有代表性的例子介绍它的整个编译流程。在之前","写出","写语法规则时,可以都用","准备参数,完成传参。","减法运算","出现在代码不同地方可能标识完全不同的变量。","函数","函数(backend/asm.py)处理的,asm.transform","函数(frontend/tacgen/tacgen.py)做的事了,","函数。例如,visit","函数。由于目前不需要考虑函数和全局变量,可以暂时忽略全局作用域。进入","函数中定义名为","函数中所有出现过的变量符号即可。","函数会对不同类型的","函数作用域对应的单张符号表即可。","函数作用域里定义的变量","函数入口标签","函数入口这一个功能。而现在,我们需要使用标签来指示跳转指令的目标位置。我们用","函数入口),以及作为分支语句的跳转目标(tac","函数内部可以包含多条语句和声明了。","函数内部声明了","函数分配栈帧空间,在这个例子中,假设","函数原型,三个参数分别是目标内存地址,设置的内容,长度(以数组元素个数为单位)","函数参数","函数参数以及返回值的传递","函数参数(32","函数实现有错误?","函数对应的作用域中,可以找到变量符号","函数执行","函数执行至","函数抽象到一个接口里,各种具体的","函数接收一个结点,根据这个结点的类型进行深度优先遍历。容易看出,df","函数时带上这个容器,将翻译好的函数放进去。visitmainfunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵ast树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainfunc.body.accept(self,","函数时,开启一个局部作用域,在扫描","函数时,相当于执行了:","函数是可以递归调用的。","函数是否存在。(frontend/typecheck/namer.py:35)","函数根据被遍历的结点类型不同,执行不同的遍历逻辑。","函数用来给数组批量赋值,你可以按照","函数的","函数的参数列表需要加上数组类型。","函数的实现,其使用方式和功能同","函数的形参可以被视为在函数体的开头被定义(被以实参的值初始化)的局部变量。所有形参均为左值,且不能被在函数体中直接重定义(除非是在一个更小的嵌套的块中)。","函数的栈帧,并且集中于临时变量的存储和加载。","函数调用","函数返回","函数里定义了变量","函数)分别使用一个","函数,将返回地址压入栈中。","函数,并把不同的","函数,直到","函数,编译器应当报错。","函数,这个函数对于在block中的所有子节点调用了child.accept(self,","分别对应","分别对应了符号表构建和类型检查这两次遍历。在框架中,namer","分支","分支。在","分支和","分支开始位置和整个","分支条件","分支的代码,并在该分支结束时,用一条","分支语句","分支需要是一个语句(statement)而非声明(declaration)。","分支)。本地测试不受此次更新影响,因此更新本地的测试仓库","分支,就会执行第二个语句,否则整个","分支,所以在递归到子结点时,请先判断子结点是否存在。","分支,那么只需要一个跳转标签即可。例如我们将例子中的","分析等理论知识在实践中的应用。","分配","划分基本块。","则对应着内层代码块定义的变量","创建","创建了一个仓库,其中","初始语句","删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。","判等操作符","到","到了此处出现了不同,我们发现visitintliteral中第一次调用了mv的成员函数","到可执行文件","到底和哪一个","到栈上)。","到此为止我们得到的tac代码如下:","到汇编","到汇编的步骤一分为二。如果目标代码有误,通过检查","到汇编翻译有误。","到目前为止,翻译中间代码的方式是有问题的,问题在于,需要加载的","到远端仓库的时间。并且,你也可以随意地","前就被释放了,后端会尝试到栈中寻找","前每个","前补交,此","前这个","加偏移量,而是需要通过它的符号加载它的地址,通过它的地址访问它。","加法操作","加法运算","加载到临时变量","加载到寄存器","加载立即数","加载立即数2022到t0寄存器中","助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了","助教已经为每位同学在","助教推荐使用类似","勘误表","包列表文件","包含多个","匹配。","即便是类似","即可。","即可。具体来说","即是一个会被指派为变量的表达式。左值可修改是指被指派的变量不能是一个左值数组。","即是控制表达式,其求值在循环体的每次执行之前。post","即此时需要:","却编译出","参数","参数类型","参考","参考的","参考资料","又对于","及之后不接受补交,此","及之后,至","及更高的版本,你可以直接使用","及触发此次","反复运行","发布作业时打包有失误,请使用原有的minidecaf","取模运算","取负操作","变为","变成","变成:","变量","变量。","变量和语句(step5","变量的使用(读取/赋值)","变量的初始化表达式指定了变量的初始值。","变量的声明","变量符号究竟存在哪里,如果所生成的汇编程序不给出","另外这里也有(非官方的)指令用法说明。","只在内部大括号括起的作用域内生效。","只支持","可以参考这个教程进行升级,升级时注意备份。","可以在符号表中找到(我们在扫描","可以尝试如下命令:","可以把语义分析过程分为两个部分:分析符号含义和检查语义正确性。分析符号含义是指对于表达式中所出现的符号,找出该符号所代表的内容,这个工作主要通过检索符号表来实现。检查语义正确性指的是检查每条语句是否合法,比如检查每个表达式的操作数是否符合要求,每个表达式是否为语言规范中所规定的合法的表达式,使用的变量是否都经过定义等。程序代码通过了词法和语法分析,其语义未必正确,因此未必是合法的语句。不合法的语句具体含义在语言规范中没有规定,从而使得编译器无法确定这些语句的确切含义,所以检查语义的正确性是很有必要的。如果一个程序成功通过语义分析,则说明这个程序的含义对于编译器来说是明确的,翻译工作可以继续进行。","可以等价于访问","可以适配不同指令集(risc","可执行文件","可执行文件。","可执行文件,所以我们的","可执行文件,最后用","可执行文件;","可执行程序。","可能会用跳转来实现&&和||,比较难以理解,所以下面直接给出","右操作数;","合法。","同","同一个标识符应只能作为至多一个变量的名字,即是说,不允许声明重名变量。","同中间代码生成,全局数组自行思考实现。","同学们可以使用这种参考的实现形式,也可以自行思考传参的处理方法。","同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个","同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持","同样地,条件表达式也可以使用类似的方法完成中间代码生成。要注意的是,条件表达式是一种特殊的表达式,因此有返回值。同学们在实现的时候不要忘记为其分配临时变量。","名称","后是一个","后面risc","后面会用到:(","后,可以用负号配合正整数常量来间接表示负整数常量。","向","含义","命令修改","命令安装下文提到的","命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量","命令无法正确安装依赖?","命令未必会对应","命令行基础操作我们就不赘述了,大家可以自己在网上查找资料。","和","和常说的","和循环体)。","和手工语法分析器为","和最近的","和类型检查","因为","因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做:","因此我们不能直接使用有些系统自带的","因此我们希望生成的","因此我们需要想办法把这些无限多的临时变量“塞”到有限个物理寄存器里面:如果两个临时变量不会在同一条指令中被用到,那么我们可以让这两个临时变量使用同一个物理寄存器(把一部分当前指令用不到的临时变量保存到栈上)。","因此,变量名不能唯一标识变量了,同一个变量名","因此,测例可以翻译成如下的中间代码:","因此,示例可以对应如下的","在","在c语言中,对于全局数组,如果没有初始化,那么其值全为0,而对于局部数组来说,如果没有初始化,其值是未定义的。","在param","在一个基本块入口处需要活跃的变量是在该基本块中没有定值就被使用的变量,以及在基本块出口处活跃但是基本块中没有定值过的变量(因为它们的初值必定是在进入基本","在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是np","在准备函数的调用时,所有的实参会被求值,然后赋给相应位置上的形参。","在函数体中,形参的值可能会被改变,但即便实参是一个可修改的左值,被调用函数中形参的改变也不会影响实参的值。","在函数调用中,实参和形参的参数个数必须相同,同一位置的参数类型也必须相同。","在分析各语句和表达式时,若它们引用了某些标识符,我们可以在符号表中查询这些标识符是否有定义以及相关信息(如类型);(2)","在分配寄存器时,首先检查是否存在空闲的寄存器(即尚未跟任何临时变量建立关联关系的寄存器),有则选择该寄存器作为分配结果。否则,检查有没有这样的寄存器,其所关联的临时变量在当前位置已经不是活跃变量了,这说明该寄存器所保存的数据未来不会被用到,可以回收使用这个寄存器而不用担心引起数据错误。一种可能的情况是,所有寄存器所关联的变量都是活跃的,即不存在空闲的寄存器。此时,将把某个寄存器所关联的暂时不用的变量存到栈帧(内存的一部分)中,腾出这个寄存器,这也称为溢出(spill)到内存。所腾空的寄存器是随机选取的,因此,所采用的寄存器分配算法有些暴力,存在进一步优化空间。","在划分好基本块之后,需要从头到尾依次扫描所有的基本块建立控制流图:","在初始化表达式中,其正在初始化的变量已被声明,会隐藏(shadow)外层作用域的同名变量,但其值不确定。例如在下面的代码片段中,a","在初始化表达式中,正在被初始化的变量已被声明,但其值尚未被初始化。","在实际操作中,我们遍历","在实验框架中已经给出寄存器分配算法的代码,集中在","在实验框架中,我们使用的是","在实验要求的语义规范中,条件表达式存在短路现象。即:","在对","在已知定型规则的情况下编码实现类型检查算法并不困难——往往只要逐条将其翻译为代码即可。","在我们的实验要求中,返回值均是单个","在我们的框架中,从","在所有的基本块都扫描完毕后,即建立了控制流图。基于控制流图,可以进行控制流分析。","在扫描到","在框架中,我们有以下的","在汇编语言课程学习中,大家应该已经接触到栈帧的概念,下面简单回顾一下。在程序执行过程中,每次调用和执行一个函数,都会在栈上开辟一块新的存储空间,这块存储空间就叫做“栈帧”。栈帧中存放了函数执行所需的各种数据,包括需要临时保存的局部变量、在栈上临时申请的存储空间(如数组,在","在满足前两条的前提下含有最多的连续语句,即基本块的头尾再纳入一条语句将会违反上面两条规则。","在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。","在第","在编译实验中可能需要的用法。","在词法分析","在语法树上对应父","在赋值运算(=)中,右操作数的值会被存在左操作数所指派的变量中。","在这个示例中,我们在","在这段","在这里我们会列出与实验相关的勘误,它会和问答墙上的勘误部分保持一致。同学们遇到问题时,请先在勘误表中查找查看是否已有解答。","在通过语义检查之后,编译器已经掌握了翻译源程序所需的信息(符号表、类型等),下一步要做的则是将抽象语法树翻译为便于移植和优化的中间代码,在本实验框架中就是三地址码。如何翻译抽象语法树?当然还是无所不能的","块之前就要具有的了)。","块语句和循环(step7","型了,还包括","型数组。因此,为了保证所有表达式中变量的类型均合法,需要进行类型检查。","型的大小为","型,而","基于上面三个特点,已经求出基本块的","基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条","基本块","基本块是指一段这样的代码序列:","基本块的划分算法比较简单:从头到尾扫描操作序列,当遇到以下情况时结束当前基本块,并开始一个新的基本块建立过程:","基本块(basic","基本指令集,并包含","基础的设计模式都在","声明","声明全局符号","处理,并被转化为如下形式的一个","处,我们使用一条","备注","多维数组按照类似一维数组的初始化方法,不要求实现内部嵌套括号","大于","大于等于","大家在网络学堂提交","大家都会完成一个可以运行的编译器,把不同的","大致如下。","如何将一个立即数装载到指定寄存器中?","如何设置返回值?","如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。","如果","如果一个不是","如果一个全局变量没有被初始化,我们认为其拥有一个默认初始值","如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。","如果你认为成绩有问题,请及时与助教联系。","如果使用的是低版本的","如果关于报告提交有任何问题,请及时联系助教。","如果出于某些原因必须使用低版本的","如果出现悬吊","如果在多次","如果在机器上直接安装了较低版本的","如果在语义分析阶段发现错误,那么整个编译过程在这一阶段结束后将终止,并报告编译错误。所有的语义错误都应该在这一阶段,且只应该在这一阶段报告。下面分别介绍符号表构建和类型检查的内容。","如果当前基本块以","如果想要访问某个子结点","如果没有安装qemu模拟器,则会出现如下错误:\"bash:","如果程序员没有加大括号,那么我们需要通过一个规定来解决歧义。","如果输入程序没有","子两个结点,父结点为取负操作,子结点为常量","子句也可以不带,但这会导致语法二义性:els","子语句列表","字节。","字节。(提示1:栈帧由高地址向低地址延伸;提示2:risc","字节整数,是","字节流","字节的内存,并返回内存首地址","字节的栈帧空间。sp","存放到","学术规范","它不像语法树一样保留了那么多源程序的结构,也不至于像汇编一样底层。","它会对应如下的","它对应的完整语法分析树可能长这样:","它将在后续的","安装","安装依赖","安装依赖。","安装工具链","完备问题(可以从","完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:","完成符号表构建后,我们就可以自顶向下地遍历","定义的新语法规则名。可以随便起,但必须以","定义的新语法规则,以","定义,以便lexer可以解析","实现","实现的时候,你可以直接让所有函数都默认返回","实现,称为","实际上上述初始化可以等价地转化为:","实际上,我们提供的中间代码设计和","实验思路指导与问答墙","实验报告中需要包括:","实验指导","实验指导。本实验指导使用的例子为:","实验指导书勘误表","实验指导书(首页有实验报告提交要求)","实验提交","实验框架中关于目标代码生成的文件主要集中","实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在","实验框架介绍视频","实验框架环境配置","实验框架相对于2022年的实验框架进行了以下修改:","实验框架,你需要安装或保证如下软件满足我们的要求:","实验概述","实验测例中有与","实验环境虚拟机下载链接(使用方法参见网络学堂公告)","实验简介","实验起点和基本要求","寄存器","寄存器。","寄存器中。","寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第","寄存器中,然后在后面加上一条","寄存器中,请写出一段","寄存器分配","寄存器是","寄存器的值。","寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓","寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些","寄存器?","对于","对于c++:","对于python:","对于下标运算","对于全局变量的初始化,我们仅对初始化表达式是整数字面量的情况做要求(例如","对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。","对于含有未定义行为的","对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,step5","对于感兴趣的同学:c","对于每个阶段(stage):","对参数取负","对变量x的查找从栈顶开始,由上向下依次查找对应的符号表,直至找到变量","对应","对应到框架代码上:","对应的不使用跳转的汇编。","对应的临时变量。每当在","对应的临时变量为","对应的符号。符号","对应的结点时报错。","对应着","对应结点到","对应结点的有向边。对于以","对有兴趣的同学:","对有兴趣的同学:虽然","对未声明的变量的使用是错误。","对象,用以维护","将","将t2放入栈中(即:spill","将两个参数相加","将全局变量放到特定的数据段中","将循环语句翻译成","将返回值放到a0寄存器中","小于","小于等于","小写字母打头的是非终结符(如","尝试运行","尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。","就","就可以被替换成新的非终结符","就是指","局部作用域","局部作用域(栈顶)","局部变量和","局部变量的名字可以为","工具使用","工具链。","工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的","工具链并解压。","工具链并解压到你喜欢的目录。","工具链生成可以在硬件模拟器上正确运行的程序。因为这是大家首次接触","工具链,由","工具,在环境配置中已经叙述了安装和使用方法。","左操作数","左操作数;","已提供的语法特性","已经成为了变量","已经提供的语法特性","常说的","常量表达式(step2","年","年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个","年秋季学期基本沿用了","年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。","并不是一个会产生值的表达式)。","并且不会找到,出现报错:","并在","并被","并非严格按照课本上的定义,并且也没有严格要求只能使用三个寄存器地址,不过绝大多数指令均可以仅使用三个寄存器地址实现(函数调用除外)。","库来实现这一点。yacc","应当变为如下形式:","应用商店可以很容易地安装","应该等于","应该输出一个可执行文件","底层类,同学们可以不作修改,也可以按照自己的想法进行修改。","建立基本块之间的连接关系。","建议使用","建议各位同学使用我们提供的","开头以被","开头的","开始计数)。","开始,minidecaf","开始,我们要支持多函数了。","开始,我们需要考虑作用域和代码块。简而言之,一份代码中可能有多个代码块的嵌套,因此作用域开始出现了层次结构。例如,在示例中,尽管","开始,语法树上出现了各种运算操作结点。在生成","引入的运算符也都适用。","当","当且仅当其对应的二进制位是","当中,我们只需要提取","当操作数不等于","当操作数有一个非","当操作数都非","当数组长度较长时,如果对每个位置产生一条赋值语句可能会让生成的汇编代码非常冗长。因此你可能需要内置一个","当然也是可以的,而且更清晰简单。","当然,如果一条","当然,如果变量在使用前还是必须先被声明。","当然,它是有歧义的,你也可以自己试试,如果只有这些产生式的话,上面的两个表达式都可以解析成正确或者错误的结果。所以如果想基于这个规范来实现语法分析器,就必须告诉语法分析工具这些操作符的优先级和结合性是什么。","当然,广义上的编译器就囊括了这所有阶段。","当程序读入程序的字符流之后,它首先会被","当遇到","当遇到一个","形式的语法规范生成相应","往往也可以调用qemu环境正确执行,并得到\"hello","很容易通过增加新的非终结符,去掉这些符号。例如","得分乘以","得到的这个","循环、do","循环、while","循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于","循环以及","循环作为示例。","循环可以有以下两种翻译方式:","循环和","循环实现,同学们可以参考着完成","循环我们都需要定义三个跳转标签:begin,","循环括号中的三个表达式/声明自左向右依次为","循环的","循环的实现。","循环的控制表达式的求值在循环体的每次执行之前。","循环的控制表达式的求值在循环体的每次执行之后。","循环的特例,我们选择了","循环而言:如果","循环要自带一个作用域。在示例里,for","循环语句","循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果","循环语句的作用域(包含","循环语句的语义和","循环语句翻译成","循环语句还会使用。","循环都可以看作","必做:risc","必做:测试你是否正确配置好了环境","快速入门","怎么从","怎么从tac到汇编代码","思考题","总结","恭喜你!到目前为止,你已经成功实现了一个基于","悬吊","意义不同,但","意味着执行时没有通过","成员","成员方法下实现对应的逻辑。例如,框架中用如下的方法进行符号表构建:","我们人为规定:els","我们仅要求支持固定长度的数组,即在数组的声明中,其长度是一个正整数字面量。","我们以","我们使用","我们假定当前栈帧的栈顶地址存储在","我们假设你已经正确设置好了环境变量,否则运行","我们先忽略livenessanalyzer和cfg以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectinstr,selectinstr函数中,我们也采用了visitor模式遍历指令序列,对于_t0","我们只接受","我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在32位整数的空间中,必须截断高于32位的内容。请设计一个","我们在这里针对每个步骤只是简要介绍,目的是给同学们一个大致的印象:编译器到底是由哪些部分组成的,这些部分又有什么作用。具体的技术点,我们将在用到的","我们定义了另一个变量","我们对全局变量的重复声明不做任何要求或限定;但全局变量不能被重复定义,即不能有同名的被初始化的全局变量。","我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。","我们将由易到难完成","我们按照上一节划分的编译器阶段,分阶段给出","我们提供了预编译的","我们提供预先编译好的","我们暂不要求支持不包含函数体的函数声明。","我们没有支持","我们用缩进表示树结构,其中","我们的框架现在对于main函数没有返回值的情况是在哪一步处理的?报的是什么错?","我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过","我们的编译器只生成","我们知道“除数为零的除法是未定义行为”,但是即使除法的右操作数不是","我们知道,编译器里有很多的树状结构。最典型的就是,源程序通过上下文无关文法解析后,得到的抽象语法树。在语义分析和中间表示生成两个步骤中,我们都需要遍历整个抽象语法树。visitor","我们给出的语法规范已经表示了这样的性质,因此理论上我们不需要再额外定义操作符的优先级和结合性了。你可以自己试试,按照本步给出的语法规则,上面的两个表达式确实只能解析成我们期望的结果。","我们能发现","我们要增加和变量相关的语义检查:变量不能重复声明,不能使用未声明的变量。","我们要增加块语句的支持。","我们要增加对循环语句,以及","我们要增加的是:","我们要增加的是:加","我们要支持条件语句,包括","我们要支持的是全局变量,语法改动非常简单:","我们还需要支持函数调用:","我们这种表达式语法写法可能比较繁琐,但它有几个好处:","我们采用","我们需要下载安装","我们需要先引入下面四种针对基本块的集合:","我们需要在符号表构建的过程中,确定","我们需要增加一个数组的初始化列表,可以直接修改上一节数组的ast结点增加一个数组用于记录初始化元素。","我们需要支持函数的声明和定义:","我们首先来看本节指导用例所对应的中间代码:","或","或不定长数组","或者","或自行编译。","所","所以我们无法用字面量表示","所以,我们不要求支持变长数组","所作的修改。","所使用,则这是一个未定义行为。","所做的事情包括:分配栈帧空间和保存相应寄存器的值。相应的,在每个函数的末尾,用于销毁栈帧的那段汇编代码称为函数的","所做的事情包括:设置返回地址,回收栈帧空间,以及从当前被调用函数过程返回","所对应的寄存器在","所对应的数据段。","所有","所用的方法就是的","所谓寄存器分配,是指为中间代码中的虚拟寄存器分配实际的物理寄存器。对中间代码来说,通常假设虚拟寄存器的数量是无限的,这导致我们在分配物理寄存器时无法简单的对虚拟寄存器做一一映射,需要有一个调度与分配算法来合理使用有限的物理寄存器。本实验框架中使用了一种暴力寄存器分配算法,具体细节将在","所谓控制流分析,是指分析程序的执行路径满足什么性质,包括基本块划分、流图构造、以及分析循环或其他控制区域(region)。而所谓数据流分析,是指分析各种数据对象在程序的执行路径中的状态关系,例如一个变量在某个语句以后是否还被用到等。依据数据流分析的结果,可以进行后续的中间代码优化以及寄存器分配等相关步骤。","所需的底层类。其中","手册","才会有多函数支持。所以现在关于栈帧的讨论,就只针对","才知道),所以它们都会用同样的","才需要考虑符号表构建。","才需要考虑,届时再介绍其处理方法)。如上例所示,tac","打开microsoft","执行","执行一条","执行完之后,有可能跳转到另一个基本块","执行汇编中的函数调用指令,开始执行子函数直至其返回。","扩展(乘除法)。本实验中我们不需要其他扩展。","扫描完成","把","把export","把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。","把我们给出的语法规范转化成类似上面这样“更模糊”,有歧义的语法规范。我们相信这个方向的转化应该是容易的。","拿到函数调用的返回值,作为函数调用表达式的值。","指令","指令。","指令。不过为了实现循环语句,需要仔细地考虑如何将","指令。提供给生成","指令不支持","指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?","指令与其对应,因此上述中间代码可以翻译为如下的","指令与汇编指令类似,每条","指令为条件跳转指令,branch","指令为跳转指令。","指令即可完成函数返回的工作。","指令将值写入数组元素。","指令我们得到了数组的首地址,那么任何一个数组元素的地址可以通过在首地址的基础上加上偏移量得到。于是,读取数组元素可以使用","指令来完成翻译工作。","指令来完成翻译工作。以","指令来实现,我们还需要引入一条类似的","指令来执行。如果","指令来支持加载一个","指令来翻译中间表示里的","指令由操作码和操作数(最多3个,函数调用除外,由于函数参数可能有多个,使用严格的三个操作数反而会使得函数一节中实现更为复杂)构成。","指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。","指令的组合(说出两种可能即可)。","指令跳转到","指令选择相应的","指令都是位运算指令,不是逻辑运算指令。","指令链接:https://github.com/thethirdone/rars/wiki/support","指令集文档在这里,我们只需要其中的","指令集架构,编译实验要求你的编译器把","指令集架构,编译实验要求所实现的编译器把","指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替。如相等、大于等于、逻辑与、逻辑或等等,同学们实现时需要特别注意。","指令(例如","指令(即所有操作数都已经分配好寄存器的指令),最后通过","指令,则需要在","指令,同学们可以在必要时修改或增加","指令,测试样例中的局部数组部分代码可以翻译为如下中间代码(忽略全局数组部分):","指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的","指向当前栈帧的栈底,sp","指向当前栈帧的栈顶,fp","指向栈顶,因此","指定每个操作符的优先级和结合性。可以参考https://en.cppreference.com/w/c/language/operator_precedence,它给出了c语言操作符的优先级和结合性,因为我们的minidecaf语言是c语言的一个子集,所以这张表格也足够我们的语言使用了。","指导书上的思考题","按位取反","按照上文说的,","按照下面的","按照本文档的前几节(riscv","按照汇编约定,data","按照测例的","按照这个规定,parser","换言之,我们不对逻辑表达式的短路求值做要求,可以将操作数两个以任意顺序计算出,再计算逻辑操作的结果。","接下来我们会用到","接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。","接下来针对上述代码示例,讲述作用域栈的维护方式。首先,栈底有一个全局作用域,其符号表里只有","接下来,将对我们所使用的中间代码","接下来,当扫描到语句","接下来,扫描到一个局部代码块,由此建立一个局部作用域并压栈。在扫描","接下来,退出代码块,将其对应的作用域弹出栈,此时的作用域栈如下:","接受一个","接受一个ast树输入,输出一个tac表示,请确保你已经对visitor","控制流、数据流分析和寄存器分配","控制流和数据流分析","控制流图","控制流图是一个有向图:它以基本块作为结点,如果一个基本块","推荐:运行实验框架","提交/补交时间是","提供了","提供了一系列的汇编指令,用以声明全局变量","提供了与中间代码中","提供用户态程序的运行环境。你可以选择下面两种安装方法中的任意一种:","提示","提示:不能再像现在这样,在进入函数时统一给局部变量分配内存,在离开函数时统一释放内存。","提示:发生越界的一步计算是","操作数","操作数可能会有:临时变量、常量、标签(可理解为常量地址)和全局变量(全局变量的处理比较特殊,由于","操作符有优先级和结合性的概念,在之前的编程经历中大家应该已经对这两个概念已经有了直观的理解,这里用例子进一步解释一下:","改进你的编译器,支持本节引入的新特性,通过相关测试。","放入a0寄存器","放入a1寄存器","数据段;.globl","数据流分析","数据流图定义及优化在","数组两种类型。在支持数组(step11)之前,都基本不需要考虑类型检查。","数组传参是支持不定长度的","数组传参相对于初始化是简单的,回想函数一节的传参方式,自行实现。","数组和普通变量类似,可以分为局部数组和全局数组。","数组的下标操作","数组的传参:","数组的初始化:","数组类型无法用临时变量直接表示,可以用一段连续内存的起始地址表示。其实现细节将在","数组类型,其值和地址都可以用一个32位整数存储,故","数组(step11","整个操作序列扫描完毕后,我们就成功建立了所有基本块。","整型","整数运算越界是未定义行为(undefin","文件,","文件夹下,step1","文件夹中的","文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。","文件,gcc","文件,其中写入如下内容","新引入的每个运算都有一个对应的语法树节点.","新特性的语义、优先级、结合性和","方便起见,我们称","方法对每个函数内的","方法生成每个函数的","无","无条件跳转到","无法找到,因此编译器需要在扫描到","日","日(第十六周周日)24:00","时","时定义变量符号","时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。","时能快速找到","时请用完整路径。","时都要输入完整路径。不过对于","时,从栈顶作用域符号表查找","时,会执行第一个子句;当控制条件等于","时,其结果为","时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。","时,如果有","时,定义了另一个变量","时,应终止执行并返回","时,我们需要分析","时,条件表达式的求值结果为第三个操作数所求得的值。","时,条件表达式的求值结果为第二个操作数所求得的值;当第一个操作数的值非","时,表达式","时,选择没有","时,逻辑与操作符","时,逻辑或操作符","时,逻辑非运算符","时,遇到的子节点是","是","是一个","是一个与","是一个声明,其声明发生在控制表达式的第一次求值之前;如果","是一个很像","是一个数组类型,b","是一个整数类型,a[b]","是一个根据","是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl","是一条声明,则其所声明的变量所属的作用域是整个","是不同的变量。","是不同的变量,因此它们分别对应着不同的临时变量。其中,_t0","是其中存放代码的段(section),.bss","是合法的","是合法的代码片段。","是否成功安装,详见risc","是否正确就可以知道:是ast","是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。","是基本块本身的属性,对每个基本块从后往前遍历基本块内的指令便可以求出。","是左结合的,所以表达式1","是未定义行为。这一条规则对于后续","是未定义行为,未定义行为的意思就是你想怎么处理都可以,所以全部默认返回","是某个","是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题","是逻辑真(int","显然,两个代码块里的变量","更具体来讲是创建","更新的时间,这几乎等于你","更新评测脚本之后,现在通过","替换为你自己的","最后一次触发","最后一次触发的","最后,扫描语句","最新的","最终会调用visitunary,你的lint工具应该是没法做到点一下就跳转到对应的位置,所以你需要自己判断我们在遍历某个节点的时候其子节点的类型。","月","有一些差异。","有三种循环语句:for","有了上述两条指令,可以将测试用例翻译如下:","有了基本块的这四个集合的概念,我们给出控制流图中每个基本块满足的活跃变量方程:","有些语言允许在同一个作用域中多次定义同名的变量,例如这是一段合法的","有以下三种特点:","有短路现象,我们不要求。","有短路现象,我们的实现中不要求大家考虑它们的短路性质。","有能力的同学可以考虑将原先","有许多可行的翻译方法,例如","本","本学期我们使用清华大学代码托管服务(git.tsinghua)的","本学期的编译实验要求同学们通过多次“思考","本实验指导使用的例子为:","本次实验一共设置","本步骤中其他运算符的实现逻辑和方法与加法类似,可以参考二元加法的实现方法设计实现其他二元运算符。","本步骤中其他运算符的实现逻辑和方法与取负类似,大家可以借鉴取负的实现方法实现剩下的逻辑非和按位非。并且,我们在实验框架中已经给出了取负的参考实现,希望能够帮助大家快速上手编译实验。","本步骤中其他运算符的实现逻辑和方法与小于符号类似,可以参考小于符号的实现方法设计实现其他逻辑运算符。","本步骤中引入了函数,和局部变量类似,不允许调用未声明的函数,也不允许重复定义同名函数(允许重复声明,但要求声明类型一致)。因此,需要在全局作用域的符号表里维护函数符号。函数符号存放在栈底的全局作用域中,在遍历","本步骤中无须新增新的","本步骤中没有需要新增的","本步骤中语义分析没有特别需要增加的内容,只需要在扫描到","本步骤主要涉及的语法为主函数和","本步骤引入全局变量,在引入全局变量之后,ast","本步骤语义分析阶段的处理方式和","本节主要就是引入了跳转,后面","本节指导用例对应如下","机器上、把","机器上,却要编译到","条件表达式","条件表达式会先对第一个操作数求值,再根据其值选择计算第二个或第三个操作数。当且仅当第一个操作数的值不等于","条边)。","来了解","来判断结点类型,而是调用结点自身的一个","来合并前一个","来安装用户态的","来实现这个接口。","来手动更新。","来查看我们预定义的函数。","来生成对应的","来表示跳转用标签,以此和函数入口标签区分开来。","来说,这一点其实几乎已经被语法保证,因为其","构建符号表的过程中,栈底的全局作用域符号表一直都存在,不会被弹出。","构建符号表的过程中,栈底符号表一直存在,不会被弹出。","标准库中的","标准正式发布前的最后一版草案,根据","标准的编者之一","标准相比只有表述上的差异)","标准草案","标准草案保持一致","标准调用约定中要引入","标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看","标签。","标签和","标签处","标签是整个循环结束后的位置。如果循环条件不满足,或者执行了","标签用来标记一段指令序列的起始位置。从底层实现的角度来看,每个标签本质上就是一个地址,且往往是某一段连续内存的起始地址。在我们的实验框架中,标签有两个作用:作为函数入口地址(如上例中的","标签的维护。","标签(示例中的","标签,这样才能确定每一条","标记而且存在跳转语句跳转到这个行号时。","标记,即不能跳转到基本块中间。","标识符(用于表示变量名)","栈帧","栈帧中的局部变量区域,可以用于存储局部数组。因此,大家需要模仿新建栈帧的操作,对栈顶指针","栈帧是函数运行所需要的上下文的一部分,在进入函数的时候需要建立对应的栈帧,在退出函数的时候需要销毁其对应的栈帧。栈帧对于函数的运行非常重要。那么程序在运行的过程中如何建立和销毁栈帧呢?实际上,建立栈帧的操作是由编译器生成代码完成的。在每个函数的起始位置,由编译器生成的用于建立栈帧的那段汇编代码称为函数的","栈帧的建立与销毁","栈帧的概念","根据优化等级不同会有数百个不等的","根据其声明的位置,每一个标识符都属于一个作用域。目前我们有两种作用域:文件级和块级。如果是在块中声明,则标识符其声明所属的块的作用域中,例如局部变量;否则标识符在文件级(全局)作用域中,例如全局变量。","根据这个方程,我们可以通过迭代更新的办法求出每个基本块的","根据这样的原则,大多数的临时变量都可以用有限的几个物理寄存器对应起来,而“塞不下”的那些临时变量,则可以暂时保存到内存里面(因为访问内存的时间比访问寄存器的时间多得多,因此临时变量应尽可能一直存放在物理寄存器中,尽量不要","根结点的直接子结点不只包括函数,还包括全局变量定义。全局变量符号存放在栈底的全局作用域符号表中。在遍历","格式提交到","格式的实验报告,其提交方式是放在仓库的","框架","框架中不同运算对应着不同的","框架中会在生成的汇编中在函数名前面加上下划线","框架中出现了新的三地址码指令(param、call等),因此你需要参考","框架使用了","框架寄存器分配中","框架无法正确输出三地址码?","框架本身在","框架比较特殊,需要同学们对寄存器分配相关的","框架的后端除了要修改指令选择部分之外,还需要修改基本块","框架里已经提供了需要的","框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。","检查是否安装成功","模式。","模式就是常见的一种。","模式有所了解,或者假设你已经知道在遍历","模式的目的,就是对遍历树状结构的过程进行封装,本质就是一个","模式递归地访问子结点,我们使用一个临时变量加载该立即数。之后,在父结点,我们根据子结点的临时变量,生成一条取负指令,将这条指令得到的目标临时变量设置为父结点的临时变量。","模式速成","模式遍历","模式,并以框架中的代码为示例进行介绍。","模式,我们可以从抽象语法树的根结点开始,遍历整颗树的所有语法结点,并针对特定的语法结点作出相应的操作,如名称检查和类型检查等。在编译器中,这种基于","模式,我们在中间代码生成步骤中再遍历一次语法树,对每个结点做对应的翻译处理。具体来说,在","模式,通过","模拟器中编译运行下面的代码,并给出运行结果。(编译时请不要开启任何编译优化)","模拟器和一个简易内核","模拟器运行","模拟器,不过只能在","此处助教使用tac的op0来存放需要当作参数的虚拟寄存器","此处选择了一个栈上的位置用于保存寄存器","此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在","此外,如果安装了多个版本的","此外,我们提供了","此外,我们的","此外,由于函数体内部除了局部变量以外,还有函数参数(argument)。因此,我们进入一个函数,开启函数体局部作用域时,需要将所有的参数加进该作用域的符号表中。举例来说,如果我们将示例改成:","此部分对应框架源码位置:","步,你可以选择不安装到系统目录下。相应的,你需要设置环境变量:","段中。举例而言,下面的示例将未初始化的全局变量","段中。其中,.space","段中存放已初始化的全局变量,未初始化的全局变量则存放在","段内存)。","段或","段里。","每一条变量声明(定义)指定了对标识符的解释和属性。当变量被定义时,应当有一块存储空间为这个变量所保留。当变量声明之后,若与这个变量的名称相同的标识符作为操作数(operand)出现在一个表达式中时,其就应被指派(designate)为这个变量。","每个","每个步骤结尾的","每个节点的出度都是","比较大小和相等的二元操作:、、>=,","汇编","汇编。","汇编中","汇编中有","汇编中有对应","汇编中的","汇编代码。下面依次介绍上述编译步骤,以及对应框架代码的位置。","汇编代码。指令集文档在这里,我们只需要其中的","汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。minidecaf","汇编代码,可以在","汇编代码,将栈帧空间扩大","汇编代码,并通过","汇编代码:","汇编变成","汇编指令来翻译","汇编标签","汇编的思想是一致的,risc","汇编课上应该讲过,实际中(包括","汇编里面使用的是目标平台(如","汇编)一般存在较大的差别,因此直接把源语言翻译为目标语言中的合法程序通常是比较困难的。大多数编译器实现中所采取的做法,是首先把源语言的程序翻译成一种相对接近目标语言的中间表示形式,然后再从这种中间表示翻译成目标代码。中间表示(ir)的所带来的优势如下:","汇编,然后再使用","汇编:","没有特别需要修改的地方。","没有被初始化的(局部)变量的值是不确定的。","法调试,发现是","注意","注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的","注意这里的","注意,我们虽然是用的工具前缀是","注意:if","注意:从","注意:安装了qemu之后,直接运行","注意:引入数组后,左值不再一定是","注意:由于子模块使用","活跃变量和活跃变量方程","活跃变量集合","流:","测试中看到。","测试你","测试用例,一起走过它的编译全流程:","测试运行的","涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。","源文件","源程序在语法规范上是合法的,但是要进行有效的翻译,编译器还需要理解每个程序语句的含义。了解程序含义的过程称为语义分析。","源程序相对应的语法树。本阶段的实验重点是掌握","源程序,然后通过词法分析和语法分析将源程序转化为一个抽象语法树(abstract","源程序,识别出程序源代码中的标识符、保留字、整数常量、算符、分界符等单词符号(即终结符),并把识别结果返回给语法分析器,以供语法分析器使用。语法分析是在词法分析的基础上针对所输入的终结符串建立语法树,并对不符合语法规则的","灰色部分表示相对上一节的修改。","然后从这里上下载我们预编译的二进制程序包","然后在","然后让它等价于","版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。","版本的包管理器。请尝试使用","版本高于此版本。","版本,如果你是其他平台(如m1","物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。","环境下安装","环境配置","环境配置和实验框架环境配置)配置好实验环境。","环境(如","现在尝试运行","现在让我们来看看示例所对应的","甚至可以支持","生成。和语义分析一样,这部分也使用了","生成中间代码","生成器和","生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的","生成时,需要使用栈结构维护从内到外所有的","生成汇编的话,为了支持","生成的","生成的以下中间代码无法成功生成目标代码。","生成的可执行程序只能在你本机(x86)上运行。","生成过程中,每当扫描到","用于分配内存空间:","用以全局变量声明的汇编指令,其他全局变量的声明只需修改变量名称和初始值即可:","用户】qemu","用户】spike","用户环境配置指南","用户环境配置指南安装","由于","由于一个物理寄存器在确定的时刻只能容纳一个临时变量,因此为了把若干个变量塞到同一个物理寄存器里面,我们需要知道各个临时变量分别在哪条指令以后不会再被用到(以便腾出当前临时变量占用的物理寄存器给别的临时变量)。此时我们需要用到活性分析(live","由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。","由于实验有一定难度,同学之间相互学习和指导是提倡的。","由于循环语句可以嵌套,所以","由于每个结点只含有一个语句,因此其","由于每个结点对应的语句里所引用的所有变量在使用的时候都未在该基本块中经过定值,其","由于测例仓库会有所更新,在克隆之后你需要在主仓库目录下使用","由于源语言(minidecaf)和目标语言(risc","由于现在","由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理liveout集合,以下面三地址码为例:","的","的32个整数寄存器的相关说明,其中需要特别注意的寄存器有","的“替身”。每次需要用到变量","的一个纯","的一种参考方法。","的主函数编译为","的主函数编译全流程:","的代码片段,你可以以任意方式处理。","的作用域,所有符号都在这个作用域的符号表中维护。现在,为了维护层次嵌套的作用域,我们引入了作用域栈(scope","的使用,结合我们的文档,来快速上手","的值。因此,为了在后续使用变量","的值为0,则跳转到","的值为真(不等于0),那么应当执行","的值作为参数","的值保存到栈中,然后将","的值减去","的值加上立即数存储到","的值时,我们都会去访问","的值是不确定的。","的值是未规定的(待我们加上变量和赋值运算符后,这个问题才会产生真正切实的影响)。","的值相同,都指向栈顶。","的值赋给","的值赋给临时变量","的值,然后将返回地址弹出栈中,跳转到返回地址。","的入门,但这不是必须的。","的全局变量,同时在","的内容","的内容进行细微修改。具体来说,需要在","的内容,就是上面汇编输出的简化版本","的函数执行到了它的","的函数调用时参数求值的顺序是未定义行为。试写出一段","的分支跳转指令。由于","的博文,其与","的同学可以使用","的含义与","的地址。","的声明,risc","的处理。","的处理方式更符合你的直觉。","的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。","的学习,我们知道局部变量是存储在寄存器或栈中的,可以直接访问。然而,全局变量存储在特别的内存段中,不能直接访问。课程实验建议的加载全局变量方式为:首先加载全局变量符号的地址,然后根据地址来加载数据。因此,需要定义两个中间代码指令,完成全局变量值的加载:","的安装和使用会在软件工程课上讲述,同学们也自行查阅相关资料,也可以参考这里","的定义,从","的定义,程序是有bug的。实际上,risc","的实现,大家可以直接运行通过","的实验报告需要放在","的对语法树进行一次遍历,完成某种检查或优化的过程,称为遍(pass)。不难想到,一个现代编译器是由很多遍扫描组成的,如","的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑","的工具链使用","的工具链使用。","的工具链使用总结了","的工具,支持基于属性文法的语法制导的语义计算过程。你可以根据我们的框架中对","的左操作数必须是一个可修改的左值(modifi","的左边只能是一个标识符,只需再要求其是一个已经声明过的变量的名字即可。","的帐号名后,助教会给每个人建立一个私有的仓库,url","的底层接口,新建两个跳转标签,并按照这种方式生成中间代码。","的形式提供。","的形式表示(k表示变量的编号)。","的得分为","的成绩是实验报告,其中对实验内容的描述占","的成绩是自动化测试的结果,你可以直接在","的截止时间;","的所有测例。","的指令,我们直接给出翻译结果:","的支持:","的改动如下:","的文档。","的文档都将以如下形式组织:首先我们会介绍当前","的文法:","的新特性并仅在这一版本下经过测试。请保证你所使用的","的方法,可以直接继承","的时候选择shift,从而对悬挂else进行就近匹配。","的时间,而不是","的时间;","的期末考试成绩)。","的标准调用约定(gcc","的根结点类型","的概念,并介绍它的布局。","的求值在循环体的每次执行之后。","的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。","的注释里给出的提示。","的测例仓库为其中的一个子模块,你可以通过以下指令来在克隆主仓库的同时克隆子模块","的测试用例。并且,我们在每个步骤的文档中会详细梳理介绍在当前步骤中需要用到的知识点以及对应的代码片段和注释,如果我们认为当前步骤并不需要了解某部分知识点(如数据流分析、寄存器分配),我们会在后续的步骤中进行知识点的讲解。","的源码进行编译,附","的用户态模式,我们使用","的用法,了解编译器自动构造工具的特点,并且结合实验内容理解正规表达式、自动机、lalr(1)","的目标是支持数组的初始化和传参:","的目标是支持数组:","的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用","的结果为","的结果是其操作数的二进制反码(也就是说,结果中的每一个二进制位是","的结果是其操作数的相反数。","的结果是操作数的乘积。","的结果是操作数的和。","的结果是第一个操作数减去第二个操作数所得的差。","的结果是第一个操作数除以第二个操作数所得的余数。在两种操作中,如果第二个操作数为","的结果是第一个操作数除以第二个操作数所得的商的整数部分(即所谓“向零取整”),二元操作符","的编译器框架,所以今年的实验就叫","的编译结果","的记号:","的词法分析器进行词法分析。语法的定义和语法分析器都位于","的调用约定将a0寄存器定为存放返回值的寄存器,因此在返回时我们产生了一条move指令,这里的instr.value则是返回值对应的表达式使用的寄存器。","的调用约定,由调用者(caller)负责保存寄存器内容,因此,无需关心某个寄存器是","的跨平台性,理论上也可以在","的转换经过了","的输出。","的输出结果。例如,你可以通过","的过程中,我们需要为运算结点分配一个临时变量,并生成一条指令,该指令根据子结点的临时变量进行计算,将结果赋予该结点的临时变量。","的运算结果为","的返回码,也就是我们","的那个值","的,同学们可以选择去看相应的代码注释与实现细节。","的,大家可以参考注释和代码了解实现细节。","的?","目录下为符号的实现。其中","目录下为符号表的实现。其中","目录下实现了生成","目标代码生成","目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:","目标代码生成步骤的关键点与","目标代码生成步骤的关键点在于,针对中间代码指令,选择合适的","目标平台汇编代码生成","目标平台汇编代码生成在","直接看visitreturn函数,我们这里的return是一个带返回值函数的return","相似。","相关信息","相关的)","相关资源","相同,即“如果","相同,针对中间代码指令,选择合适的","看作一个整体,因为我们还可能遇到","看作一个符号,而不应该将","看到","看到这里,你可能会好奇,为什么这里多了如","看看效果吧。","看看效果吧。(记得修改example.c)","硬件模拟器上执行。随着实验内容一步步推进,minidecaf","示例程序。请注意","称为调用序列(call","程序。","程序。因此,在符号表构建阶段,扫描到","程序。除此之外的","程序中所有定义的标识符,包括函数名和变量名,我们统一用一种具有层次结构的符号表来维护。使用符号表的好处包括:(1)","程序中的变/常量和","程序代码编译成","程序代码里的一个函数调用,包含了下面一系列的操作:","程序出现了分支结构,我们需要开始考虑跳转语句了。在","程序是无类型的,或者说它仅支持一种类型:32位(4字节)整数。为了简化实验内容,minidecaf","程序流程的主要接口在","程序由标签和指令构成:","程序的入口点在","程序的根节点只能有函数类型的子节点,现在还可以允许变量声明作为子节点。","程序的生成是以函数为单位,对每个函数(step1","程序编译到","程序进行报错处理。一般而言,这一步所生成的语法树并非表示了所有语法细节的语法分析树,而是只表示其树形结构的抽象语法树(abstract","程序,","程序,ast","程序,在启用优化选项编译时,编译器可能产生意料之外的结果。","程序:","稍微一提,关于按位取反,我们使用补码存储","空","空集","符号。","符号对应的初始值。","符号所代表的地址","符号来表示,正如","符号表","符号表总是和作用域相关的。例如,在","符号表构建","符号表构建位于","符号表构建:声明了哪些标识符,待编译程序使用的标识符对应于哪个位置的声明。","符号表的层次结构与作用域是一一对应的,便于检查出符号定义是否有冲突,以及确定不同作用域引用的标识符。","第一个编译器(step0","第一种(即实验指导中的翻译方式):","第二种:","等","等。","等于","等价于","等价于将其替换为一个非零常数,比如","等均为","等模拟器来运行","等符号都可以作为一元运算符出现,比如!x,","等跳转语句时。","等跳转语句(但可以包含","等),当然你也可以在类","等,然后参考下面","简单的启发式寄存器分配算法","简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。","简要叙述,为了完成这个","类中增加生成该指令的接口。在本框架中,tac","类中调用的。并且希望大家一定要对着代码看。","类似step2,对每种二元运算实现了不同的语法树节点","类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:","类似的","类似的指令:","类型为","类型具体指","类型和","类型基类","类型检查","类型检查:各语句和表达式是否类型正确。","类型,但可以忽略返回值达到类似的效果。","类来处理它。","类来通过","类表示函数符号。scope/scope.hpp","类里实现了维护","类,并在对应结点的","系统环境(mac","索引基底","索引运算","组织如下:","组织实验,各个","组织文档,每个","细节呢?","经过","经过使用","结合性是一个操作符的性质,例如","结合,也就是说上面两种理解中只有前者合法。","结合?","结尾,则不需要加入新的边。","结尾,则在当前基本块与所跳转到的目标基本块之间加入一条有向边。","结尾,则在当前基本块和跳转条件成立与不成立的目标基本块之间分别加入一条有向边(共","结构。现在,我们想要编写代码对","结构:","结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的","结点时,不要忘记开启一个局部作用域。","结点时,会依次检查该操作的两个操作数","结点时,若当前不处于任何循环内,则报错。","结点的基类","结点类实现(进行了适当的简略):","给出","继续看上述例子,我们先关注只有","综上所述,我们上述中间代码翻译成如下","编译","编译优化的基础是数据流分析。","编译到","编译器前端分为两个子任务,一是词法分析,二是语法分析。词法分析的功能是从左到右扫描","编译器大致划分为三个部分:前端、中端、后端。通过编译器前端,可以读入","编译器应当只接受","编译器的构造中会使用到很多设计模式,visitor","编译器结构","编译如下程序来了解如何翻译逻辑非运算符到","编译实验","编译实验分为多个","编译实验框架,我们给大家的代码框架中已经包含所有","编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。","编译的文件相互调用的要求,因此,大家需要实现标准调用约定。","编译程序进行验证。","缩小调试范围,通过把","翻译中间代码","翻译成适合后端处理的一种中间表示。中间表示(也称中间代码,intermedi","翻译有误,还是","而","而不是","而函数体首先在一个block中(花括号括起来的部分),因此会先进入","而初始化后数组的元素值是确定的,如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为","而是用","而看到第二个时只能选择有","而这里的","而非","能遵守这个规定,一种方法是设置产生式的优先级,优先选择没有","自己的仓库中,放在仓库根目录下的","节点","节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如","节点了。","节点定义(以及相应的其它东西):","节点来表示它,只需修改根节点的孩子类型即可:原先表示整个","节点来表示它,给出的参考定义如下(框架中已经提供):","节点来表示它,给出的参考定义如下:","节点的定义位于","节点里,也可以单独设置一类节点继承","节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。","节点,还需要类似地实现条件表达式节点(框架中已经提供)。","若","范围内的整数常量,","范围内的非负整数,使得运算过程中发生越界。","获得了每个基本块的","虚拟机,使用","虽然也运行在我们的","虽然块语句语义不难,就是把多个语句组成一个块,每个块都是一个作用域。","行处随机数生成的范围,将上界改为","补交政策","表示。","表示使用","表示函数作用域。","表示分组,|","表示存储空间大小为","表示寄存器名,","表示将","表示接下来是一条命令,记得运行的时候去掉","表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","表示立即数值,如:li","表示输出到","表示选择,*","表示逻辑假,其他的","表示预留一块连续的内存,4","表达式","表达式,只使用","被绑定到","规范","计算完成后,calcul","计算机无法运行。","让我们先来看看示例对应的","让我们来看看示例所对应的","让我们考虑","记号书写语法规范,采用类似","设置","设置为下一个参数","设置环境变量不管用,要么把它放到系统目录","设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser","访问它也不能通过","评分会以","评分标准","识别。","词法分析","词法分析和语法分析","词法分析和语法分析的最终结果是一棵跟所输入的","词法分析程序位于","词法语法分析","该方程说的是一个基本块的","详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。","详细讨论。","语义分析","语义分析步骤中,我们要遍历","语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。","语义检查部分,我们需要检查函数的重复定义、检查调用函数的实参(argment)和形参(parameter)的个数类型一致。我们不支持","语义规范","语义计算中被用到。","语句","语句。","语句不总是有","语句不给任何变量定值,load","语句修改为","语句分别看成是一个独立的基本块,则不难想像,前面提到的活跃变量方程仍然有效,不同之处在于,一个基本块对应的","语句则会给对应变量定值)。","语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return","语句和","语句和条件表达式时递归地访问其子结点即可。请注意","语句和条件表达式(又称三元/三目表达式,ternari","语句块","语句基类","语句对应的visitor,进入visitreturn。继续向下,visitreturn","语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到","语句或者任何非跳转语句结尾的基本块,其后继只有一个结点;对于以","语句所在的最小的循环语句的循环体的末尾。","语句所在的最小的循环语句的执行。","语句既可以带","语句时应当跳转到的位置。","语句时,都需要调用","语句没有","语句生成过程中需要动态维护","语句的","语句的实现。","语句的执行便已经完成。","语句的结束位置。如果","语句的结束位置,从而跳过","语句的语义和","语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成","语句的返回的整型常量分配一个临时变量即可。而从","语句相类似,但是请额外注意以下两点:","语句结尾的基本块,其后继含有两个结点,分别对应跳转条件为真和假的情况。不难想像,控制流图的有向边组成的每一个环路都对应着程序中的一个循环结构。由于该图给出程序控制流的各种可能执行路径,因此也称为控制流图。","语句而言,当控制条件不等于","语句要么出现在循环体里,要么其就是循环体。","语句跳转到何处。因此,在","语句返回的常量,为之分配一个临时变量,再生成相应的","语句都会跳到这儿","语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for","语句需要一个值,我们可以理解为带返回值的","语句)。","语句,完成本步骤之后,你的编译器将支持将一个仅有","语句,意味着将程序的执行跳转至该条","语句,意味着终止当前函数的执行,并将控制权交还给调用当前函数的","语句,意味着终止该条","语句,我们需要设计","语句,我们需要设计两条中间代码指令,分别表示条件跳转和无条件跳转,给出的参考定义如下:","语句,那么应当跳转到此处,执行循环之后的指令。","语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句:","语法上我们继续修改","语法上改动不大","语法上没有太大改动,","语法上的改动是:","语法上,step5","语法上,我们需要修改","语法分析","语法分析器直接产生的实际上是一棵语法分析树,而构建","语法分析树的建立可以说明所输入的","语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的","语法树节点对应的语法规则里都是","语法规范","语法规范的手工","语言中条件和循环控制流语句,而是将它们都翻译成更加底层的跳转语句)。","语言中的基本类型只有","语言中规定只有使用了返回值才是未定义行为,而","语言中,我们可以在全局作用域中定义名为","语言中,逻辑运算符","语言实现","语言实现的快速排序程序,与","语言将从简单变得复杂。每个步骤都会增加部分语言特性,以及支持相关语言特性的编译器结构或程序(如符号表、数据流分析方法、寄存器分配方法等)。下面是采用","语言的大多数流行的语言中,短路求值都是被支持的。为何这一特性广受欢迎?你认为短路求值这一特性会给程序员带来怎样的好处?","语言的完整编译器,能够把","语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。","语言的计算器,可以完成基本的数学运算和逻辑比较运算了,成就感满满!然而,目前你的计算器还只能支持常量计算,这大大降低了计算器的使用体验,因此,在下一个","语言相同。","语言相同,注意条件表达式优先级只比赋值高。","语言相同,注意检查","语言规范规定,允许局部变量是可变长度的数组(variabl","请务必注意上表中的两个变量","请将实验报告以","请所有同学不要将自己的代码托管至任何公开的仓库上(如","请注意","请注意我们提供的预编译","请注意,tac","请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。","请注意,示例给出的只是一种循环语句参考实现,同学们也可以设计自己的实现方法。","请注意,翻译所得的","请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到","请画出下面","请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?","读内容","课程中覆盖,这里重提一下","课程实验的目标平台为","课程问答墙","调用不同的visit","调用了","调用函数","调用函数名","调用约定","调用约定上的存储返回值的寄存器,返回值会按照其大小和顺序存储在","貌似创建和销毁栈帧是一个大工程?实际不然,确定栈帧只需要维护好两个寄存器,sp","账号上,才能将其克隆下来。","赋值表达式的结果,为赋值运算完成后左操作数所指派的变量的值,但这个结果本身并非左值。","赋值运算","跑在","路径","跳到这","跳转到","转化为如下形式的","转换到汇编的过程分成两个步骤,每个步骤代码更精简,更易于调试。","输入,输出汇编代码。","输出","输出成","输出的汇编比看什么文档都有用。","输出结果","输出结果,能看到是","运算符","运行","运行在我们的","运行实验框架","运行测试","返回","返回值实现。","返回值(32","返回指令即可。不难看出,本例对应的三地址码为:","返回类型","返回类型,这可以通过忽略函数的","返回,例如","还是","这一","这一函数里","这一插件。","这一数据结构则通过相应语法制导的语义计算过程来完成。","这一步就是","这一步我们终于要增加变量了,包括:","这一步是","这一节引入的","这个","这个临时变量,在符号表中存储","这个变量对应着哪个作用域里的符号。此时的作用域栈是这样的:","这个数字是一个表达式,","这个方程的直观意义是:","这个符号时,应当为该符号设置一个成员,存储","这个问题被称为","这也是合法的","这些语法树节点,在","这条语句后已经为其定义),而","这条语句时,中间代码先把立即数","这条语法规则相应的语义计算步骤,下标对应着产生式中的相应符号。","这样的函数来实现数组数组的清零,我们的运行时库中也提供了","这样的奇怪的","这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。","这种),而且要求数组仍然保存在栈上(即不允许用堆上的动态内存申请,如malloc等来实现它),应该在现有的实现基础上做出那些改动?","这种“gcc","这种求一个变量的相反数的操作,如果将其分开处理则会增加我们的工作量。因此我们需要在词法分析中加入对","这种,但仍然不允许类似","这种,同样也是未定义行为。","这部分的工作流程如下:","这里会进入第一个分支,由于","这里其实就是上下文无关文法,大家要看懂文法和代码的对应关系,注意看这条生成规则unari","这里的","这里进入了funcvisitor.visitload:","进行两遍扫描,分别完成以下的检查:","进行修改,在栈上开辟出一块连续内存,并将这块内存的首地址返回即可。后续如有对数组中元素的访问,基于首地址进行偏移操作即可。","进行扫描。很容易写出递归的","进行语义分析后,我们将在这一阶段把带有类型标注的","进行语义分析,检查是否存在语义错误;在编译器中端,通过扫描","连快速排序都写不了。","选项):","通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。寄存器分配是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。指令选择是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用","通过","通过backward_search对应到我们在代码中enum的unaryop.neg(frontend/ast/node.py:40)。","通过例子学习","通过例子学习,一个仅有","通过这种方式,我们实际上是把内存分配的锅甩给了目标代码生成,这大大提升了目标代码生成的自由度,属于合理分锅。","逻辑与","逻辑取反","逻辑或","逻辑操作符","逻辑表达式会麻烦一点,因为","遍历。","遍历:","那么在扫描到加法操作的","那么我们把这些遍历逻辑封装到一个类里面,就得到了一个最简单的","那么语义检查时应当报错。","那么,在进入","那么,如何将数组下标对应到偏移地址?对一维数组,下标的常数倍(int","都可以被省略。省略","都是其中存放数据的段,前者零初始化后者须指定初始值。","都是继承","都是逻辑真。","配好环境以后,我们强烈推荐你构建运行我们提供的实验框架初始代码。","配置。","配置文件里)","采用","里加入新的","里实现了函数符号。","里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。","里引入了数组,现在我们的变量类型不只是","里的","里的临时变量也是","里的实验报告为准,详见补交政策。","里面的","里额外引入了数组传参和数组初始化,所以你需要修改语义分析,以支持数组传参。传参出现了一种特殊情况,即:函数参数数组的第一维可以为空。","重名的情况包括作用域内部声明覆盖(shadowing)外部声明,以及不相交的作用域之间的重名变量。","重新设计”的过程,一步步实现从简单到复杂的","针对","针对全局变量,我们需要新设计","针对函数特性,我们需要设计","针对取负操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对块语句,我们需要设计","针对小于符号,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","针对局部变量定义和赋值操作,我们需要设计","针对局部数组,给出一种参考实现,实际上不只存在一种实现方法。实验文档给出一种参考实现方法,定义了一条中间代码指令","针对数组,我们需要设计","针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下:","链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的","链接,你需要将你的","问题","问题。","问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。","问题的?请简要描述。","除了分配数组,我们还需要考虑如何访问数组元素。通过","除入口语句外基本块中不含任何的","除出口语句外基本块中不含任何的","除法运算","除非特别声明,子表达式求值顺序是未规定行为(unspecifi","随之而来一个问题是:不同变量可以重名了。","难度不大,但有了数组让我们能够写很多有意思的程序了,step11","集合。如果我们把基本块内所有","集合中去掉","集合以后的部分。","集合以后,我们需要进一步地计算基本块内每个","集合就是源操作数对应的所有变量。","集合是","集合是其所有后继基本块的","集合是在这个基本块中所有在定值前就被引用过的变量,包括了在这个基本块中被引用到但是没有被定值的那些变量。","集合是在这个基本块内被定值的所有变量。所谓的定值","集合的前提下我们只需要在每个基本块内从后往前遍历基本块内的指令就可以对每条基本块内指令求出","集合的变量加上","集合的并集,而且","集合,以下是求解的伪代码:","集合:一个基本块的","集合:在离开基本块出口的时候是活跃的那些变量。","集合:在进入基本块入口之前必须是活跃的那些变量。","集要么是空集,要么只含有一个元素。","零或一次。","零或多次,+","需要以","需要增加的类型检查重构进","需要替换解压文件夹所在目录。每次修改.bashrc文件后,都需要执行命令sourc","需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的","需要注意的是,由于我们目前只支持一个","需要注意的是:在c++框架中,在生成函数时,编译器会自动给函数名前面加上下划线,来防止名字冲突,所以如果出现链接错误时,请先检查生成的汇编代码的函数名称和所要调用的函数名称是否一致。","需要特别注意的是,在","需要用到的知识点,其次我们会以一个当前","需要申请更大的","需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。","需要说明的是","需要说明的是,你也可以把两条指令合并为一条指令,直接加载全局变量的值,但分为两条指令的方式可扩展性更好些。","预编译的较新版本的工具链对","首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。","首先把文件夹riscv64","首先,我们应该把","默认在","(definition),可以理解为给变量赋值,例如加法语句给目标变量定值等(注意:stor","(可选)设置环境变量,方法与","(如果你不用系统自带的","(小于)、>(大于)、(小于等于)和>=(大于等于)的结果取决于两个操作数是否满足它们所指定的关系,当满足时结果为","(更新","(汇编)保存","(汇编)恢复",",一并处理所有的一元运算符这样就不需要对每一种符号都专门生成一种语法规则和",",也就使得",",又进入了visitunary,同理,expr.operand.accept(self,",",如果你没读前面的章节,你可以快速看看这一部分。",",将作业提交到那个仓库即可。",",并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022",",设置“开发者模式”以及“启用子系统功能”。",":"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"实验简介","keywords":"","body":"MiniDecaf 编译实验\n\n助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了 C++ 框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。\n\n实验概述\nMiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step,共包含 12 个 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\n2023 年秋季学期基本沿用了 2022 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。\n实验框架相对于2022年的实验框架进行了以下修改:\n\n为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供 Python 语言实现\n删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。\n修改了部分实验顺序,期望降低同学们实验的难度。\n修改了实验指导的排版、内容,删除了C++框架部分内容,增加了更多的指导内容。\n\n实验起点和基本要求\n本次实验一共设置 12 个步骤(其中 step0 为环境配置,主要是 RISC-V 工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的 step1-11 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。\n我们以 stage 组织实验,各个 stage 组织如下:\n\n \n 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。\n \n \n 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。\n \n \n 变量和语句(step5-step6)。在这个 stage 中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。\n \n \n 块语句和循环(step7-step8)。在这个 stage 中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。\n \n \n 全局变量和函数(step9-step10)。在这个 stage 中你将支持声明全局变量,并且支持函数的声明和调用。\n \n \n 数组(step11-step12)。在这个 stage 中,你将支持数组,包括全局数组和局部数组。\n \n\n\n\n同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持 step1 - step6 语法规范的手工 parser。\n\n设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser generator(如 Bison)掩盖了很多语法分析的实现细节。\n\n其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。\nstage1 - stage3 和手工语法分析器为 4 个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡 10%)。\nstage4 - stage5 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评 10% 的期末考试成绩)。\n我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。\n在 2023 年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。\n请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。\n实验提交\n大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler-22/minidecaf-你的学号 ,将作业提交到那个仓库即可。\n每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git merge 来合并前一个 branch 所作的修改。\n本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。\n.gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件;\nprepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。\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评分会以 2023 年 1 月 1 日 24:00 前每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。\n如果你认为成绩有问题,请及时与助教联系。\n补交政策\n\n假设 a 日 24:00 是某个 stage 的截止时间;\na + k (k \na + 9 日 24:00 及之后,至 1 月 1 日(第十六周周日)24:00 前补交,此 stage 得分乘以 1 / 2;\n提交/补交时间是 1 月 1 日 24:00 前这个 stage 的 branch 最后一次触发 CI 的时间;\n更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。\n如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。\n\n\n1 月 1 日 24:00 及之后不接受补交,此 stage 的得分为 0。\n\n学术规范\n由于实验有一定难度,同学之间相互学习和指导是提倡的。\n对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。\n如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。\n我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。\n代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。\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/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:Python 框架无法正确输出三地址码?\nA:非常抱歉,框架中输出时有一个小错误。在 main.py 中,输出三地址码时,请使用 prog.printTo() 语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句:\nprinter = TreePrinter(indentLen=)\nprinter.work(prog)\n\n \nQ: Python框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。\n经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错:\nutils.error.IllegalArgumentException: error: encounter a non-returned basic block\n请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢?\nA:Python 框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。\n \nQ:我怎样才能知道我的提交通过了所有测试用例?\nA:在 2021.10.5 更新评测脚本之后,现在通过 CI 结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。本地测试不受此次更新影响,因此更新本地的测试仓库 submodule 不是必须的。\n \nQ:实验指导书中step4的目标代码生成部分,给出的IR对应汇编指令不正确,修改了原有寄存器的值?\nA:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!\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 \nQ:Python 框架寄存器分配中 allocRegFor 函数实现有错误?\nA:请修改 bruteregalloc.py 中第 119 行处随机数生成的范围,将上界改为 len(...) - 1,避免溢出。感谢孟本源同学!\nreg = self.emitter.allocatableRegs[\n random.randint(0, len(self.emitter.allocatableRegs) - 1)\n]\n\nQ: Parser Stage中的test-parser-stage.sh无法正常使用?\nA: 发布作业时打包有失误,请使用原有的minidecaf-tests中的check.sh测试脚本,将parser-stage的前端接入到原先的中后端来进行测试。\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 中搭建开发环境。对于 C++ 实验框架,你需要安装或保证如下软件满足我们的要求:\n\npython 3.9\n框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性并仅在这一版本下经过测试。请保证你所使用的 python 版本高于此版本。\nLinux 环境下安装 Python 3.9 可以尝试如下命令:\n> sudo add-apt-repository ppa:deadsnakes/ppa\n> sudo apt update\n> sudo apt install python3.9\n\n此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。\n框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse:\n$ python3.9 -m pip install -r ./requirements.txt\n\n\nargparse\n框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。\n\nply\nply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了 ply 的文档。\n\n\n助教推荐使用类似 Miniconda 的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用 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 | backend/asmemitter.py | backend/subroutineemitter.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 循环实现,同学们可以参考着完成 do-while 和 for 循环的实现。\n下面我们列出了所有框架中已经完成的特性:\n\nStep1 中我们提供了所有实现。\nStep2 中我们提供了取负运算的实现。\nStep3 中我们提供了加法运算的实现。\nStep5 中我们提供了基础数据结构——符号表的实现。\nStep6 中我们提供了 if 语句的实现。\nStep7 中我们提供了基础数据结构——作用域栈的实现。\nStep8 中我们提供了 while 循环以及 break 语句的实现。\n此外,我们提供了 Step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。\n\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 2022;\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(2022) Comma RBrace\n并被 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(2022)\n得到的这个 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。\n尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c)\n语义分析\n在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误:\n\nmain 函数是否存在。(frontend/typecheck/namer.py:35)\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 = 2022 # 为立即数2022分配一个临时变量\n return _T0 # 返回\n\n\n下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。\n\nfrontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。\nfrontend/utils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。提供给生成 TAC 程序流程的主要接口在 funcvisitor.py 中,若你增加了 TAC 指令,则需要在 FuncVisitor 类中增加生成该指令的接口。在本框架中,TAC 程序的生成是以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 FuncVisitor 来生成对应的 TAC 程序。除此之外的 TAC 底层类,同学们可以不作修改,也可以按照自己的想法进行修改。\n目标代码生成\n目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有:\n\n如何将一个立即数装载到指定寄存器中?\nRISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2022,就是将立即数 2022 加载到寄存器 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, 2022 # 加载立即数2022到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 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的 NativeInstr 指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitEnd 方法生成每个函数的 RISC-V 汇编。\n细节呢?\n\n 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。\n\n为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从 2022 变成 -2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供):\n首先,我们应该把 - 看作一个符号,而不应该将 -2022 看作一个整体,因为我们还可能遇到 -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(2022)\n看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 2022 这个数字是一个表达式, -2022 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。\n\n词法分析 & 语法分析\n 在 frontend/lex/lex.py 里加入新的 lex token 定义,以便lexer可以解析 -:\n t_Minus = \"-\"\n\n 在 ply 的 lexer 中,定义的新 token 需要以 t_开头。更具体的解释见文件注释或文档(太长了助教也读不下去)。\n 在 frontend/ast/tree.py 里加入新的 AST 节点定义(以及相应的其它东西):\n class 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:\n def 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\n def p_unary_expression(p):\n \"\"\"\n unary : Minus unary\n \"\"\"\n p[0] = tree.Unary(UnaryOp.Neg, p[2])\n\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\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.visitorXXX的调用,前者是在遍历AST时调用的,后者是在 FuncVisitor 类中调用的。并且希望大家一定要对着代码看。\n Program\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(2022)\n 继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序, TACGen.transform 会先visit main函数,代码贴了一些在这里:\n def transform(self, program: Program) -> TACProg:\n mainFunc = program.mainFunc()\n pw = ProgramWriter([\"main\"])\n # The function visitor of 'main' is special.\n mv = pw.visitMainFunc()\n\n mainFunc.body.accept(self, mv)\n # Remember to call mv.visitEnd after the translation a function.\n mv.visitEnd()\n\n # Remember to call pw.visitEnd before finishing the translation phase.\n return pw.visitEnd()\n\n 你可以不用关注pw是什么,假装它是一个容器,我们 visit 函数时带上这个容器,将翻译好的函数放进去。visitMainFunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵AST树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainFunc.body.accept(self, mv) 而函数体首先在一个block中(花括号括起来的部分),因此会先进入 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) 这里进入了FuncVisitor.visitLoad:\n def visitLoad(self, value: Union[int, str]) -> Temp:\n temp = self.freshTemp()\n if isinstance(value, int):\n self.func.add(LoadImm4(temp, value))\n else:\n self.func.add(LoadStrConst(temp, value))\n return temp\n\n self.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022 load到一个虚拟寄存器 temp 中。剩下的部分,对着代码和上面的AST看一下相信大家也知道发生了什么了。\n 到此为止我们得到的TAC代码如下:\n FUNCTION:\n _T0 = 2022\n _T1 = - _T0\n return _T1\n\n 现在尝试运行 python main.py --input example.c --tac 看看效果吧。\n\n怎么从TAC到汇编代码\n 这一步是 Asm.transform 函数(backend/asm.py)处理的,Asm.transform 接受一个 TAC 输入,输出汇编代码。\n def transform(self, prog: TACProg):\n analyzer = LivenessAnalyzer()\n\n for func in prog.funcs:\n pair = self.emitter.selectInstr(func)\n builder = CFGBuilder()\n cfg: CFG = builder.buildFrom(pair[0])\n analyzer.accept(cfg)\n self.regAlloc.accept(cfg, pair[1])\n\n return self.emitter.emitEnd()\n\n 我们先忽略LivenessAnalyzer和CFG以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectInstr,selectInstr函数中,我们也采用了visitor模式遍历指令序列,对于_T0 = 2022和_T1 = - _T0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return _T1翻译过程发生了什么。\n 直接看visitReturn函数,我们这里的return是一个带返回值函数的return\n def 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通过汇编指令先转换为True或False,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。\n 物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。\n 现在尝试运行 python main.py --input example.c --riscv 看看效果吧。\n\n\n思考题\n\n在我们的框架中,从 AST 向 TAC 的转换经过了 namer.transform, typer.transform如果没有这两个步骤,以下代码能正常编译吗,为什么?\n\nint main(){\n return 10;\n}\n\n\n我们的框架现在对于main函数没有返回值的情况是在哪一步处理的?报的是什么错?\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你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\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 中,我们引入了一元运算,因此需要引入新的抽象语法树节点:\nPython 框架\n\n\n\n节点\n成员\n含义\n\n\n\n\nUnary\n操作数 operand,运算类型 op\n一元运算\n\n\n\n注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。\nC++ 框架\n\n\n\n节点\n成员\n含义\n\n\n\n\nNegExpr\n操作数 e\n一元负号\n\n\nNotExpr\n操作数 e\n逻辑取反\n\n\nBitNotExpr\n操作数 e\n按位取反\n\n\n\n这些语法树节点,在 C++ 的 parser 写语法规则时,可以都用 Expr 符号来表示,正如 NegExpr 和 AddExpr 语法树节点对应的语法规则里都是 Expr 符号。\n语义分析\n由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。\nC++ 框架\n由于 C++ 框架中不同运算对应着不同的 AST 节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。\nPython 框架\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关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考 gcc 的输出结果。例如,你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 选项):\nint foo(int x) {\n return !x;\n}\n\n不出意外你会获得如下结果:\nfoo:\n seqz a0,a0\n ret\n\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你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导\n本实验指导使用的例子为:\n1+3\n\n词法语法分析\n在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点:\nPython 框架\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\nC++ 框架\n类似step2,对每种二元运算实现了不同的语法树节点\n\n\n\n节点\n成员\n含义\n\n\n\n\nAddExpr\n左操作数 e1,右操作数 e2\n加法运算\n\n\nSubExpr\n左操作数 e1,右操作数 e2\n减法运算\n\n\nMulExpr\n左操作数 e1,右操作数 e2\n乘法运算\n\n\nDivExpr\n左操作数 e1,右操作数 e2\n除法运算\n\n\nModExpr\n左操作数 e1,右操作数 e2\n取模运算\n\n\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你需要:\n\n改进你的编译器,支持本节引入的新特性,通过相关测试。\n完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:\n你的学号姓名\n简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)\n指导书上的思考题\n如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。\n如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。\n\n\n\n"},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导\n本实验指导使用的例子为:\n1\n词法语法分析\nPython 框架\n本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。\nC++ 框架\n新引入的每个运算都有一个对应的语法树节点.\n\n\n\n节点\n成员\n含义\n\n\n\n\nLesExpr\n左操作数 e1,右操作数 e2\n小于\n\n\nGrtExpr\n左操作数 e1,右操作数 e2\n大于\n\n\nLeqExpr\n左操作数 e1,右操作数 e2\n小于等于\n\n\nGeqExpr\n左操作数 e1,右操作数 e2\n大于等于\n\n\nEquExpr\n左操作数 e1,右操作数 e2\n等于\n\n\nNeqExpr\n左操作数 e1,右操作数 e2\n不等于\n\n\nAndExpr\n左操作数 e1,右操作数 e2\n逻辑与\n\n\nOrExpr\n左操作数 e1,右操作数 e2\n逻辑或\n\n\n\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你需要:\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 = 2023;\n return x;\n}\n\n词法语法分析\n针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供):\n\n\n\n节点\n成员\n含义\n\n\n\n\nIdentifier\n名称 val\n标识符(用于表示变量名)\n\n\nTInt\n无\n整型\n\n\nAssignment\n同 Binary\n赋值运算\n\n\n\n请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。\n语义分析\n从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。\n在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。\n类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为:\nint main() {\n int x = 2023;\n return x + y;\n}\n\n那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2023; 这条语句后已经为其定义),而 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 = 2023\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 = 2023; 这条语句时,中间代码先把立即数 2023 加载到临时变量 _T0 中,然后再把 _T0 的值赋给临时变量 _T1,此时 _T1 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T1。例如,测例中直接用返回 _T1 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T1 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。\n请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。\n目标代码生成\n本节指导用例对应如下 RISC-V 汇编代码:\n .text\n .global main\nmain:\n li t1, 2023\n mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令\n mv a0, t0\n ret\n\n简单的启发式寄存器分配算法\n在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。\n实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 step7 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。\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\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你需要:\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对于Python:\n\n\n\n节点\n成员\n含义\n\n\n\n\nBlock\n子语句列表 children\n语句块\n\n\n\n对于C++:\n\n\n\n节点\n成员\n含义\n\n\n\n\nCompStmt\n子语句列表 stmts\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不需要新增新的中间代码指令。\nPython 框架\nPython 框架比较特殊,需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。\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你需要:\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 提供了与中间代码中 BEQ 和 JMP 类似的指令:\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 | 'do' statement 'while' '(' expression ')' ';'\n | 'break' ';'\n | 'continue' ';'\n\n\n\n循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。\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针对 for 和 break 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下:\n\n\n\n节点\n成员\n含义\n\n\n\n\nFor\n初始语句 init,循环条件 cond,更新语句 update,循环体 body\nfor 循环语句\n\n\nBreak\n无\nbreak 语句\n\n\n\n语义分析\n本步骤语义分析阶段的处理方式和 Step6 中的 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 循环、do-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 标签,这样才能确定每一条 continue 和 break 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。\nutils/tac/funcvisitor.py 里的 FuncVisitor 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 continue/break 标签的维护。\n目标代码生成\n由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。\n思考题\n\n将循环语句翻译成 IR 有许多可行的翻译方法,例如 while 循环可以有以下两种翻译方式:\n\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第二种:\n\ncond 的 IR\nbeqz BREAK_LABEL:条件不满足就终止循环\nlabel BEGINLOOP_LABEL:开始下一轮迭代\nbody 的 IR\nlabel CONTINUE_LABEL:continue 跳到这\ncond 的 IR\nbnez BEGINLOOP_LABEL:本轮迭代完成,条件满足时进行下一次迭代\nlabel BREAK_LABEL:条件不满足,或者 break 语句都会跳到这儿\n\n从执行的指令的条数这个角度(label 指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好?\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 | 'do' statement 'while' '(' expression ')' ';'\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 循环和 do 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。\n8.2 while 循环的控制表达式的求值在循环体的每次执行之前。\n8.3 do 循环的控制表达式的求值在循环体的每次执行之后。\n8.4 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。\n8.5 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。\n8.6 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 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注意:从 step 9 开始,MiniDecaf 会引入 runtime,部分函数在源代码中只有声明,其定义在 runtime 编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。\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);\nint main() { return func(1, 2); }\nint func(int x, int y) { return x + y; }\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那么语义检查时应当报错。\nPython 框架\nfrontend/symbol/funcsymbol.py 里实现了函数符号。\nC++ 框架\nsymb/symbol.hpp 中 Function 类表示函数符号。scope/scope.hpp 中,FuncScope 表示函数作用域。\n中间代码生成\n为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下:\n\n请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。\n\n\n\n\n指令\n参数\n含义\n\n\n\n\nPARAM\nT0\n将 T0 设置为下一个参数\n\n\nCALL\nLABEL\n调用函数 LABEL\n\n\n\n假设我们有若干个参数,可以依次使用 PARAM 命令将它们加入参数列表。在调用函数时,这些参数的值会自动依次按顺序装载到临时变量 _T0, _T1 ... 中。比如我们有这样一段 TAC 程序:\nPARAM A\nPARAM B\nPARAM C\nXX = CALL XXX\n\n那么,在进入 XXX 函数时,相当于执行了:\n_T0 = A\n_T1 = B\n_T2 = C\n\n因此,示例可以对应如下的 TAC 程序:\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在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。\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 sw a0, 0(sp)\n sw a1, 4(sp)\n lw t0, 0(sp)\n lw t1, 4(sp)\n add t2, t0, t1\n mv t0, t2\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接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。\n函数调用\n程序代码里的一个函数调用,包含了下面一系列的操作:\n\n准备参数,完成传参。\n(汇编)保存 caller-saved 寄存器。\n执行汇编中的函数调用指令,开始执行子函数直至其返回。\n(汇编)恢复 caller-saved 寄存器。\n拿到函数调用的返回值,作为函数调用表达式的值。\n\n上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。\n调用约定\n实验测例中有与 gcc 编译的文件相互调用的要求,因此,大家需要实现标准调用约定。\nRISC-V 的标准调用约定(gcc 使用的、和 MiniDecaf 相关的)\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关于测试样例:\n我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过 gcc 链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的 runtime.c,runtime.h,runtime.s 来查看我们预定义的函数。\nC++框架中:\n\n框架中会在生成的汇编中在函数名前面加上下划线 _,如果链接时出现问题请检查是不是下划线导致的。\n\n由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理Liveout集合,以下面三地址码为例:\n func:\n _T2 = ADD _T0, _T1\n return _T2 # 参数 x 和 y 分别对应 _T0, _T1\n main:\n _T0 = 1\n PARAM _T0 # 将 _T0 的值作为参数 x 放入a0寄存器\n _T1 = 2\n PARAM _T1 # 将 _T1 的值作为参数 y 放入a1寄存器\n _T3 = CALL func # 调用函数\n return _T3\n\n 在PARAM _T0这一行,我们要将虚拟寄存器T0作为参数x放入物理寄存器a0,假设此时T0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器T2,那么要先将T2 spill到栈中。\n 即此时需要:\n\n将T2放入栈中(即:spill T2)\n从栈中将T0取出放入a0寄存器中\n但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设T0在此后不再被用到,那么T0就不在当前位置的liveout集合中,也就是说在spill寄存器时T0可以被覆盖掉,这可能导致T2被spill到了T0所在的位置,覆盖了T0。\nvoid RiscvDesc::spillReg(int i, LiveSet *live) {\n std::ostringstream oss;\n Temp v = _reg[i]->var;\n if ((NULL != v) && _reg[i]->dirty && live->contains(v)) {\n RiscvReg *base = _reg[RiscvReg::FP];\n if (!v->is_offset_fixed) {\n _frame->getSlotToWrite(v, live); // 此处选择了一个栈上的位置用于保存寄存器\n }\n ... ...\n }\n ... ...\n}\n\n因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做:\nvoid RiscvDesc::setRegParam(Tac *t, int cnt) {\n // 此处助教使用Tac的op0来存放需要当作参数的虚拟寄存器\n // 先将op0加入当前的LiveOut集合,这可以保证spillReg时候不会将op0覆盖\n t->LiveOut->add(t->op0.var);\n spillReg(RiscvReg::A0 + cnt, t->LiveOut);\n int i = lookupReg(t->op0.var);\n if(i \n\n\n\n\n思考题\n\nMiniDecaf 的函数调用时参数求值的顺序是未定义行为。试写出一段 MiniDecaf 代码,使得不同的参数求值顺序会导致不同的返回结果。\n为何 RISC-V 标准调用约定中要引入 callee-saved 和 caller-saved 两类寄存器,而不是要求所有寄存器完全由 caller/callee 中的一方保存?为何保存返回地址的 ra 寄存器是 caller-saved 寄存器?\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 | 'do' statement 'while' '(' expression ')' ';'\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你需要:\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 = 2022;\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 代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。\n\n在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。\n\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 2022\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 | 'do' statement 'while' '(' expression ')' ';'\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你需要:\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] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。\nPython 框架\nfrontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。\n有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。\nC++ 框架\ntype/type.hpp 中的 ArrayType 表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。\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在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。\n\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 | 'do' statement 'while' '(' expression ')' ';'\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\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 这样的函数来实现数组数组的清零,我们的运行时库中也提供了 fill_n 函数用来给数组批量赋值,你可以按照 RISC-V 标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看 runtime.h 和 runtime.c 来了解 fill_n 函数的实现,其使用方式和功能同 C++ 标准库中的 std::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需要注意的是:在C++框架中,在生成函数时,编译器会自动给函数名前面加上下划线,来防止名字冲突,所以如果出现链接错误时,请先检查生成的汇编代码的函数名称和所要调用的函数名称是否一致。\n思考题\n\n作为函数参数的数组类型第一维可以为空。事实上,在 C/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计?\n\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 | 'do' statement 'while' '(' expression ')' ';'\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"},"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 b6c6bd9f9..49e40f13e 100644 --- a/search_plus_index.json +++ b/search_plus_index.json @@ -1 +1 @@ -{"./":{"url":"./","title":"实验简介","keywords":"","body":"MiniDecaf 编译实验 助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了 C++ 框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。 实验概述 MiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step,共包含 12 个 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; } 2023 年秋季学期基本沿用了 2022 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。 实验框架相对于2022年的实验框架进行了以下修改: 为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供 Python 语言实现 删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。 修改了部分实验顺序,期望降低同学们实验的难度。 修改了实验指导的排版、内容,删除了C++框架部分内容,增加了更多的指导内容。 实验起点和基本要求 本次实验一共设置 12 个步骤(其中 step0 为环境配置,主要是 RISC-V 工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的 step1-11 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。 我们以 stage 组织实验,各个 stage 组织如下: 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。 变量和语句(step5-step6)。在这个 stage 中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。 块语句和循环(step7-step8)。在这个 stage 中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。 全局变量和函数(step9-step10)。在这个 stage 中你将支持声明全局变量,并且支持函数的声明和调用。 数组(step11-step12)。在这个 stage 中,你将支持数组,包括全局数组和局部数组。 同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持 step1 - step6 语法规范的手工 parser。 设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser generator(如 Bison)掩盖了很多语法分析的实现细节。 其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。 stage1 - stage3 和手工语法分析器为 4 个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡 10%)。 stage4 - stage5 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评 10% 的期末考试成绩)。 我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。 在 2023 年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。 请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。 实验提交 大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler-22/minidecaf-你的学号 ,将作业提交到那个仓库即可。 每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git merge 来合并前一个 branch 所作的修改。 本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。 .gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件; prepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。 在 CI 中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过 CI。 我们只接受 pdf 格式的实验报告,其提交方式是放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。 实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 评分标准 对于每个阶段(stage): 80% 的成绩是自动化测试的结果,你可以直接在 git.tsinghua 的 CI 测试中看到。 20% 的成绩是实验报告,其中对实验内容的描述占 10%,对思考题的回答占 10%。 评分会以 2023 年 1 月 1 日 24:00 前每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。 如果你认为成绩有问题,请及时与助教联系。 补交政策 假设 a 日 24:00 是某个 stage 的截止时间; a + k (k a + 9 日 24:00 及之后,至 1 月 1 日(第十六周周日)24:00 前补交,此 stage 得分乘以 1 / 2; 提交/补交时间是 1 月 1 日 24:00 前这个 stage 的 branch 最后一次触发 CI 的时间; 更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。 如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。 1 月 1 日 24:00 及之后不接受补交,此 stage 的得分为 0。 学术规范 由于实验有一定难度,同学之间相互学习和指导是提倡的。 对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。 如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。 我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。 代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。 相关资源 实验指导书(首页有实验报告提交要求) 实验指导书勘误表 课程问答墙 实验思路指导与问答墙 实验框架介绍视频 实验环境虚拟机下载链接(使用方法参见网络学堂公告) 参考资料 Writing a C Compiler: by Nora Sandler nqcc http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf 备注 1. 关于名字由来,由于往年的实验叫 Decaf,我们在新的且更简单的语言规范下复用了 Decaf 的编译器框架,所以今年的实验就叫 MiniDecaf 了。 ↩ "},"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:Python 框架无法正确输出三地址码? A:非常抱歉,框架中输出时有一个小错误。在 main.py 中,输出三地址码时,请使用 prog.printTo() 语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句: printer = TreePrinter(indentLen=) printer.work(prog)   Q: Python框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。 经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错: utils.error.IllegalArgumentException: error: encounter a non-returned basic block 请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢? A:Python 框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。   Q:我怎样才能知道我的提交通过了所有测试用例? A:在 2021.10.5 更新评测脚本之后,现在通过 CI 结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。本地测试不受此次更新影响,因此更新本地的测试仓库 submodule 不是必须的。   Q:实验指导书中step4的目标代码生成部分,给出的IR对应汇编指令不正确,修改了原有寄存器的值? A:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!   Q:如何提交课程报告? A: 请将实验报告以 pdf 格式提交到 git.tsinghua 自己的仓库中,放在仓库根目录下的 reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 reports/stage-1.pdf。 最新的 CI 会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作 pass。 如果关于报告提交有任何问题,请及时联系助教。   Q:Python 框架寄存器分配中 allocRegFor 函数实现有错误? A:请修改 bruteregalloc.py 中第 119 行处随机数生成的范围,将上界改为 len(...) - 1,避免溢出。感谢孟本源同学! reg = self.emitter.allocatableRegs[ random.randint(0, len(self.emitter.allocatableRegs) - 1) ] Q: Parser Stage中的test-parser-stage.sh无法正常使用? A: 发布作业时打包有失误,请使用原有的minidecaf-tests中的check.sh测试脚本,将parser-stage的前端接入到原先的中后端来进行测试。 "},"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 中搭建开发环境。对于 C++ 实验框架,你需要安装或保证如下软件满足我们的要求: python 3.9 框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性并仅在这一版本下经过测试。请保证你所使用的 python 版本高于此版本。 Linux 环境下安装 Python 3.9 可以尝试如下命令: > sudo add-apt-repository ppa:deadsnakes/ppa > sudo apt update > sudo apt install python3.9 此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。 框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse: $ python3.9 -m pip install -r ./requirements.txt argparse 框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。 ply ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了 ply 的文档。 助教推荐使用类似 Miniconda 的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用 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 | backend/asmemitter.py | backend/subroutineemitter.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 循环实现,同学们可以参考着完成 do-while 和 for 循环的实现。 下面我们列出了所有框架中已经完成的特性: Step1 中我们提供了所有实现。 Step2 中我们提供了取负运算的实现。 Step3 中我们提供了加法运算的实现。 Step5 中我们提供了基础数据结构——符号表的实现。 Step6 中我们提供了 if 语句的实现。 Step7 中我们提供了基础数据结构——作用域栈的实现。 Step8 中我们提供了 while 循环以及 break 语句的实现。 此外,我们提供了 Step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。 "},"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 2022; } 词法分析 & 语法分析 在词法分析 & 语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的 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(2022) Comma RBrace 并被 yacc 生成的 LALR(1) parser 转化为如下形式的 AST: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) IntLiteral(2022) 得到的这个 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。 尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c) 语义分析 在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误: main 函数是否存在。 return 语句是否有返回值。 返回值是否在 int 合法的范围内。 在实际操作中,我们遍历 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 = 2022 # 为立即数2022分配一个临时变量 return _T0 # 返回 下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。 frontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。 frontend/utils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。提供给生成 TAC 程序流程的主要接口在 funcvisitor.py 中,若你增加了 TAC 指令,则需要在 FuncVisitor 类中增加生成该指令的接口。在本框架中,TAC 程序的生成是以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 FuncVisitor 来生成对应的 TAC 程序。除此之外的 TAC 底层类,同学们可以不作修改,也可以按照自己的想法进行修改。 目标代码生成 目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有: 如何将一个立即数装载到指定寄存器中? RISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2022,就是将立即数 2022 加载到寄存器 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, 2022 # 加载立即数2022到t0寄存器中 mv a0, t0 # 将返回值放到a0寄存器中 ret # 返回 实验框架中关于目标代码生成的文件主要集中 backend 文件夹下,step1 中你只需要关注 backend/riscv 文件夹中的 riscvasmemitter.py 以及 utils/riscv.py 即可。具体来说 backend/asm.py 中会先调用 riscvasmemitter.py 中的 selectInstr 方法对每个函数内的 TAC 指令选择相应的 RISC-V 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的 NativeInstr 指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitEnd 方法生成每个函数的 RISC-V 汇编。 细节呢? 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。这部分看着长其实不长(大家还是读一下吧)。 为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从 2022 变成 -2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供): 首先,我们应该把 - 看作一个符号,而不应该将 -2022 看作一个整体,因为我们还可能遇到 -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(2022) 看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 2022 这个数字是一个表达式, -2022 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。 词法分析 & 语法分析 在 frontend/lex/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.visitorXXX的调用,前者是在遍历AST时调用的,后者是在 FuncVisitor 类中调用的。并且希望大家一定要对着代码看。 Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) Unary |- (op) Minus |- (expr) IntLiteral(2022) 继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序, TACGen.transform 会先visit main函数,代码贴了一些在这里: def transform(self, program: Program) -> TACProg: mainFunc = program.mainFunc() pw = ProgramWriter([\"main\"]) # The function visitor of 'main' is special. mv = pw.visitMainFunc() mainFunc.body.accept(self, mv) # Remember to call mv.visitEnd after the translation a function. mv.visitEnd() # Remember to call pw.visitEnd before finishing the translation phase. return pw.visitEnd() 你可以不用关注pw是什么,假装它是一个容器,我们 visit 函数时带上这个容器,将翻译好的函数放进去。visitMainFunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵AST树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainFunc.body.accept(self, mv) 而函数体首先在一个block中(花括号括起来的部分),因此会先进入 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) 这里进入了FuncVisitor.visitLoad: def visitLoad(self, value: Union[int, str]) -> Temp: temp = self.freshTemp() if isinstance(value, int): self.func.add(LoadImm4(temp, value)) else: self.func.add(LoadStrConst(temp, value)) return temp self.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022 load到一个虚拟寄存器 temp 中。剩下的部分,对着代码和上面的AST看一下相信大家也知道发生了什么了。 到此为止我们得到的TAC代码如下: FUNCTION: _T0 = 2022 _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: pair = self.emitter.selectInstr(func) builder = CFGBuilder() cfg: CFG = builder.buildFrom(pair[0]) analyzer.accept(cfg) self.regAlloc.accept(cfg, pair[1]) return self.emitter.emitEnd() 我们先忽略LivenessAnalyzer和CFG以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectInstr,selectInstr函数中,我们也采用了visitor模式遍历指令序列,对于_T0 = 2022和_T1 = - _T0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return _T1翻译过程发生了什么。 直接看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通过汇编指令先转换为True或False,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。 物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。 现在尝试运行 python main.py --input example.c --riscv 看看效果吧。 "},"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 都是逻辑真。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step2/example.html":{"url":"docs/step2/example.html","title":"通过例子学习","keywords":"","body":"step2 实验指导 我们按照上一节划分的编译器阶段,分阶段给出 step2 实验指导。本实验指导使用的例子为: 需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的 MiniDecaf 程序。 -1 词法语法分析 在 step2 中,我们引入了一元运算,因此需要引入新的抽象语法树节点: Python 框架 节点 成员 含义 Unary 操作数 operand,运算类型 op 一元运算 注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。 C++ 框架 节点 成员 含义 NegExpr 操作数 e 一元负号 NotExpr 操作数 e 逻辑取反 BitNotExpr 操作数 e 按位取反 这些语法树节点,在 C++ 的 parser 写语法规则时,可以都用 Expr 符号来表示,正如 NegExpr 和 AddExpr 语法树节点对应的语法规则里都是 Expr 符号。 语义分析 由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。 C++ 框架 由于 C++ 框架中不同运算对应着不同的 AST 节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。 Python 框架 没有特别需要修改的地方。 中间代码生成 在 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 关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考 gcc 的输出结果。例如,你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 选项): int foo(int x) { return !x; } 不出意外你会获得如下结果: foo: seqz a0,a0 ret 思考题 我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在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 标准草案保持一致 把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导 本实验指导使用的例子为: 1+3 词法语法分析 在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点: Python 框架 节点 成员 含义 Binary 左操作数 lhs,右操作数 rhs,运算类型 op 二元运算 对有兴趣的同学:虽然 -2 和 2-3 里面的 - 意义不同,但 lexer 不知道这点(parser 才知道),所以它们都会用同样的 token kind - 表示。 但有时,可能需要后续阶段告诉 lexer(或 parser)一些信息,最经典的例子是 “typedef-name identifier problem”。 C++ 框架 类似step2,对每种二元运算实现了不同的语法树节点 节点 成员 含义 AddExpr 左操作数 e1,右操作数 e2 加法运算 SubExpr 左操作数 e1,右操作数 e2 减法运算 MulExpr 左操作数 e1,右操作数 e2 乘法运算 DivExpr 左操作数 e1,右操作数 e2 除法运算 ModExpr 左操作数 e1,右操作数 e2 取模运算 语义分析 同 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 中逻辑运算符 || 和 && 有短路现象,我们不要求。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导 本实验指导使用的例子为: 1 词法语法分析 Python 框架 本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。 C++ 框架 新引入的每个运算都有一个对应的语法树节点. 节点 成员 含义 LesExpr 左操作数 e1,右操作数 e2 小于 GrtExpr 左操作数 e1,右操作数 e2 大于 LeqExpr 左操作数 e1,右操作数 e2 小于等于 GeqExpr 左操作数 e1,右操作数 e2 大于等于 EquExpr 左操作数 e1,右操作数 e2 等于 NeqExpr 左操作数 e1,右操作数 e2 不等于 AndExpr 左操作数 e1,右操作数 e2 逻辑与 OrExpr 左操作数 e1,右操作数 e2 逻辑或 语义分析 同 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 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step5/example.html":{"url":"docs/step5/example.html","title":"通过例子学习","keywords":"","body":"step5 实验指导 本实验指导使用的例子为: int main() { int x = 2023; return x; } 词法语法分析 针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供): 节点 成员 含义 Identifier 名称 val 标识符(用于表示变量名) TInt 无 整型 Assignment 同 Binary 赋值运算 请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。 语义分析 从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。 在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。 类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为: int main() { int x = 2023; return x + y; } 那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2023; 这条语句后已经为其定义),而 y 无法找到,因此编译器需要在扫描到 y 对应的结点时报错。 符号表总是和作用域相关的。例如,在 C 语言中,我们可以在全局作用域中定义名为 \"a\" 的全局变量,同时在 main 函数中定义名为 \"a\" 的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑 main 函数作用域对应的单张符号表即可。 此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在 step11 中,我们会将左值的范围进一步包括数组元素。 对应到框架代码上: frontend/symbol 目录下为符号的实现。其中 symbol.py 为符号类的基类,varsymbol.py 为变量符号。在本节中,同学们只需要考虑变量符号即可。 frontend/scope 目录下为符号表的实现。其中 scope.py 为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个 Scope 对象,用以维护 main 函数中所有出现过的变量符号即可。 中间代码生成 我们首先来看本节指导用例所对应的中间代码: main: _T1 = 2023 _T0 = _T1 return _T0 针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 ASSIGN T0,T1 临时变量的赋值 从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于 MiniDecaf 语言中的基本类型只有 int 型,而 TAC 里的临时变量也是 32 位整数,因此,我们可以把 MiniDecaf 局部变量和 TAC 临时变量对应起来。 在扫描到 int x = 2023; 这条语句时,中间代码先把立即数 2023 加载到临时变量 _T0 中,然后再把 _T0 的值赋给临时变量 _T1,此时 _T1 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T1。例如,测例中直接用返回 _T1 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T1 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。 请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。 目标代码生成 本节指导用例对应如下 RISC-V 汇编代码: .text .global main main: li t1, 2023 mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令 mv a0, t0 ret 简单的启发式寄存器分配算法 在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。 实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 step7 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。 基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条 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 的值,然后将返回地址弹出栈中,跳转到返回地址。 思考题 我们假定当前栈帧的栈顶地址存储在 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 语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。 当然,如果变量在使用前还是必须先被声明。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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 节点来表示它,给出的参考定义如下: 对于Python: 节点 成员 含义 Block 子语句列表 children 语句块 对于C++: 节点 成员 含义 CompStmt 子语句列表 stmts 语句块 语义分析 从 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。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。 目标代码生成 不需要新增新的中间代码指令。 Python 框架 Python 框架比较特殊,需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。 思考题 请画出下面 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 语言相同,注意条件表达式优先级只比赋值高。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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 提供了与中间代码中 BEQ 和 JMP 类似的指令: 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 | 'do' statement 'while' '(' expression ')' ';' | 'break' ';' | 'continue' ';' 循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step8/example.html":{"url":"docs/step8/example.html","title":"通过例子学习","keywords":"","body":"step8 实验指导 本实验指导使用的例子为: for (int i = 0; i 词法语法分析 针对 for 和 break 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 For 初始语句 init,循环条件 cond,更新语句 update,循环体 body for 循环语句 Break 无 break 语句 语义分析 本步骤语义分析阶段的处理方式和 Step6 中的 if 语句相类似,但是请额外注意以下两点: for 循环要自带一个作用域。在示例里,for (int i = 0; i 语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for (int i = 0; i 这也是合法的 MiniDecaf 程序。因此,在符号表构建阶段,扫描到 for 结点时,不要忘记开启一个局部作用域。 break 和 continue 语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到 break 和 continue 结点时,若当前不处于任何循环内,则报错。 中间代码生成 本步骤中没有需要新增的 TAC 指令。不过为了实现循环语句,需要仔细地考虑如何将 MiniDecaf 循环语句翻译成 TAC 的分支跳转指令。由于 while 循环、do-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 标签,这样才能确定每一条 continue 和 break 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。 utils/tac/funcvisitor.py 里的 FuncVisitor 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 continue/break 标签的维护。 目标代码生成 由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。 思考题 将循环语句翻译成 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 指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好? "},"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 | 'do' statement 'while' '(' expression ')' ';' | '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 循环和 do 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。 8.2 while 循环的控制表达式的求值在循环体的每次执行之前。 8.3 do 循环的控制表达式的求值在循环体的每次执行之后。 8.4 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。 8.5 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。 8.6 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 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 返回值实现。 注意:从 step 9 开始,MiniDecaf 会引入 runtime,部分函数在源代码中只有声明,其定义在 runtime 编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step9/example.html":{"url":"docs/step9/example.html","title":"通过例子学习","keywords":"","body":"step9 实验指导 本实验指导使用的例子为: int func(int x, int y); int main() { return func(1, 2); } int func(int x, int y) { return x + y; } 词法语法分析 针对函数特性,我们需要设计 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; } 那么语义检查时应当报错。 Python 框架 frontend/symbol/funcsymbol.py 里实现了函数符号。 C++ 框架 symb/symbol.hpp 中 Function 类表示函数符号。scope/scope.hpp 中,FuncScope 表示函数作用域。 中间代码生成 为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 PARAM T0 将 T0 设置为下一个参数 CALL LABEL 调用函数 LABEL 假设我们有若干个参数,可以依次使用 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 同学们可以使用这种参考的实现形式,也可以自行思考传参的处理方法。 在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。 目标代码生成 .text .global main func: # start of prologue addi sp, sp, -56 # end of prologue # start of body sw a0, 0(sp) sw a1, 4(sp) lw t0, 0(sp) lw t1, 4(sp) add t2, t0, t1 mv t0, t2 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 首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。 接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。 函数调用 程序代码里的一个函数调用,包含了下面一系列的操作: 准备参数,完成传参。 (汇编)保存 caller-saved 寄存器。 执行汇编中的函数调用指令,开始执行子函数直至其返回。 (汇编)恢复 caller-saved 寄存器。 拿到函数调用的返回值,作为函数调用表达式的值。 上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。 调用约定 实验测例中有与 gcc 编译的文件相互调用的要求,因此,大家需要实现标准调用约定。 RISC-V 的标准调用约定(gcc 使用的、和 MiniDecaf 相关的) caller-saved 和 callee-saved 寄存器 上表给出 RISC-V 中 32 个整数寄存器的分类。所谓 caller-saved 寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓 callee-saved 寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些 callee-saved 寄存器的值。 具体的保存方法并不限制,但一般都使用栈来保存。 函数参数以及返回值的传递 函数参数(32 位 int)从左到右存放在 a0 - a7 寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第 9 个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用 gcc 编译程序进行验证。 返回值(32 位 int)放在 a0 寄存器中。 提示 关于测试样例: 我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过 gcc 链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的 runtime.c,runtime.h,runtime.s 来查看我们预定义的函数。 C++框架中: 框架中会在生成的汇编中在函数名前面加上下划线 _,如果链接时出现问题请检查是不是下划线导致的。 由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理Liveout集合,以下面三地址码为例: func: _T2 = ADD _T0, _T1 return _T2 # 参数 x 和 y 分别对应 _T0, _T1 main: _T0 = 1 PARAM _T0 # 将 _T0 的值作为参数 x 放入a0寄存器 _T1 = 2 PARAM _T1 # 将 _T1 的值作为参数 y 放入a1寄存器 _T3 = CALL func # 调用函数 return _T3 在PARAM _T0这一行,我们要将虚拟寄存器T0作为参数x放入物理寄存器a0,假设此时T0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器T2,那么要先将T2 spill到栈中。 即此时需要: 将T2放入栈中(即:spill T2) 从栈中将T0取出放入a0寄存器中 但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设T0在此后不再被用到,那么T0就不在当前位置的liveout集合中,也就是说在spill寄存器时T0可以被覆盖掉,这可能导致T2被spill到了T0所在的位置,覆盖了T0。 void RiscvDesc::spillReg(int i, LiveSet *live) { std::ostringstream oss; Temp v = _reg[i]->var; if ((NULL != v) && _reg[i]->dirty && live->contains(v)) { RiscvReg *base = _reg[RiscvReg::FP]; if (!v->is_offset_fixed) { _frame->getSlotToWrite(v, live); // 此处选择了一个栈上的位置用于保存寄存器 } ... ... } ... ... } 因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做: void RiscvDesc::setRegParam(Tac *t, int cnt) { // 此处助教使用Tac的op0来存放需要当作参数的虚拟寄存器 // 先将op0加入当前的LiveOut集合,这可以保证spillReg时候不会将op0覆盖 t->LiveOut->add(t->op0.var); spillReg(RiscvReg::A0 + cnt, t->LiveOut); int i = lookupReg(t->op0.var); if(i 思考题 MiniDecaf 的函数调用时参数求值的顺序是未定义行为。试写出一段 MiniDecaf 代码,使得不同的参数求值顺序会导致不同的返回结果。 为何 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 | 'do' statement 'while' '(' expression ')' ';' | '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)确定的。 简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。 当然,广义上的编译器就囊括了这所有阶段。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step10/example.html":{"url":"docs/step10/example.html","title":"通过例子学习","keywords":"","body":"step10 实验指导 本实验指导使用的例子为: int x = 2022; 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 代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。 在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。 目标代码生成 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 2022 上例中,.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 | 'do' statement 'while' '(' expression ')' ';' | '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 连快速排序都写不了。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。 Python 框架 frontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。 有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。 C++ 框架 type/type.hpp 中的 ArrayType 表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。 中间代码生成 数组和普通变量类似,可以分为局部数组和全局数组。 全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示: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 时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。 在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。 目标代码生成 同中间代码生成,全局数组自行思考实现。 对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,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 | 'do' statement 'while' '(' expression ')' ';' | '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']')*)?)*)? 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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 这样的函数来实现数组数组的清零,我们的运行时库中也提供了 fill_n 函数用来给数组批量赋值,你可以按照 RISC-V 标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看 runtime.h 和 runtime.c 来了解 fill_n 函数的实现,其使用方式和功能同 C++ 标准库中的 std::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/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计? "},"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 | 'do' statement 'while' '(' expression ')' ';' | '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[]) 是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题 "},"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 编译实验 助教在这里有一些想说的:实验文档看起来会有一些长,是因为编译器本身就是一个庞大的系统,我们希望提供尽可能全面的内容来帮助大家理解框架的构成,忽略框架和编译本身没有关系的知识(比如框架语言对于作业难度的影响,因此我们今年删除了 C++ 框架)。请大家认真阅读文档,并且尽可能按照文档去动手试一试,而不是直接开始动手写作业。 实验概述 MiniDecaf 1 是一个 C 的子集,去掉了include/define等预处理指令,多文件编译支持,以及结构体/指针等语言特性。 本学期的编译实验要求同学们通过多次“思考-实现-重新设计”的过程,一步步实现从简单到复杂的 MiniDecaf 语言的完整编译器,能够把 MiniDecaf 代码编译到 RISC-V 汇编代码。进而深入理解编译原理和相关概念,同时具备基本的编译技术开发能力,能够解决编译技术问题。MiniDecaf 编译实验分为多个 stage,每个 stage 包含多个 step,共包含 12 个 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; } 2023 年秋季学期基本沿用了 2022 年秋季学期《编译原理》课程的语法规范。为了贴合课程教学内容,提升训练效果,课程组设计了比较完善的编译器框架,包括词法分析、语法分析、语义分析、中间代码生成、数据流分析、寄存器分配、目标平台汇编代码生成等步骤。每个 step 同学们都会面对一个完整的编译器流程,但不必担心,实验开始的几个 step 涉及的编译器框架知识都比较初级,随着课程实验的深入,将会循序渐进地引入各个编译器功能模块,并通过文档对相关技术进行分析介绍,便于同学们实现相关编译功能模块。 实验框架相对于2022年的实验框架进行了以下修改: 为了统一作业难度并且简化助教和同学们的工作量,今年的框架仅提供 Python 语言实现 删除了部分不必要的测试样例和语法规范,例如:对于for(;;)这种语法的处理,其本质与while(1)没有区别,以及对于函数多次声明的处理等测试样例。这些例子没有起到对于编译知识理解的作用,反而增加了同学们的工作量。 修改了部分实验顺序,期望降低同学们实验的难度。 修改了实验指导的排版、内容,删除了C++框架部分内容,增加了更多的指导内容。 实验起点和基本要求 本次实验一共设置 12 个步骤(其中 step0 为环境配置,主要是 RISC-V 工具链和硬件模拟器的的安装与使用,以及学会使用助教提供的自动测试脚本)。后续的 step1-11 我们将由易到难完成 MiniDecaf 语言的所有特性,由于编译器的边界情况很多,因此你只需通过我们提供的正例与负例即可。 我们以 stage 组织实验,各个 stage 组织如下: 第一个编译器(step0-step1)。我们给的实验框架可以通过所有测试用例,你需要做的事情为跟着文档阅读学习实验框架代码。请各位同学注意,stage0 尤为重要,掌握好实验框架是高质量和高效率完成后续实验的保证。 常量表达式(step2-step4)。在这个 stage 中你将实现常量操作(加减乘除模等)。 变量和语句(step5-step6)。在这个 stage 中你将第一次支持变量声明与赋值,并参照条件跳转语句实现循环操作。 块语句和循环(step7-step8)。在这个 stage 中你将支持块语句,所谓块语句,就是多个语句组成一个块,每个块都是一个作用域。此时,作为特殊的块语句,条件跳转和循环语句也将支持在内部声明局部变量。 全局变量和函数(step9-step10)。在这个 stage 中你将支持声明全局变量,并且支持函数的声明和调用。 数组(step11-step12)。在这个 stage 中,你将支持数组,包括全局数组和局部数组。 同时,为了帮助大家通过实验学习语法分析,我们单独设置了一个手工自顶向下语法分析的小实验,需要大家手动实现一个支持 step1 - step6 语法规范的手工 parser。 设置这个实验的目的是为了帮助大家通过实验学习了解语法分析,parser generator(如 Bison)掩盖了很多语法分析的实现细节。 其中,stage0 为环境配置和框架学习,无需进行编程,不计入成绩。 stage1 - stage3 和手工语法分析器为 4 个基础关卡,你需要通过它们以拿到一定的分数(40%,每个关卡 10%)。 stage4 - stage5 为升级关卡,如果你学有余力,完成它们可以减少期末考试在总评中所占的比重(完成一个关卡,替代占总评 10% 的期末考试成绩)。 我们以 step 组织文档,每个 step 的文档都将以如下形式组织:首先我们会介绍当前 step 需要用到的知识点,其次我们会以一个当前 step 具有代表性的例子介绍它的整个编译流程。在之前 step 中已经介绍的知识点,我们会略过,新的知识点和技术会被详细介绍。 在 2023 年秋季学期,我们通过问答墙来集中解决大家在环境配置及完成实验中遇到问题。如果你遇到了任何问题,都可以在问答墙中检索;如果尚未有其他人提问,也欢迎提问,助教会尽快回复的。 请注意,实验指导中给出的生成结果(抽象语法树、三地址码、汇编)只是一种参考的实现,同学们可以按照自己的方式实现,只要能够通过测试用例即可。但是,严格杜绝抄袭现象,如果代码查重过程中发现有抄袭现象,抄袭者与被抄袭者将被记为0分。 实验提交 大家在网络学堂提交 git.tsinghua.edu.cn 的帐号名后,助教会给每个人建立一个私有的仓库,URL 为 https://git.tsinghua.edu.cn/compiler-22/minidecaf-你的学号 ,将作业提交到那个仓库即可。 每个 stage 会对应于一个 branch,当切换到一个新的 branch 上实现时,你可以用 git merge 来合并前一个 branch 所作的修改。 本学期我们使用清华大学代码托管服务(git.tsinghua)的 CI(持续集成)来测试大家的代码实现及提交实验报告。 .gitlab-ci.yml 中描述了如何运行 CI,你不允许修改此文件; prepare.sh 是在测试前会运行的准备脚本,包括安装所需的依赖(python)及编译(c++),如果你想添加新的依赖或者修改编译流程,请修改此文件。 在 CI 中会检查是否通过所有测例及是否有提交报告,只有通过所有测例且提交报告,才会被视为通过 CI。 我们只接受 pdf 格式的实验报告,其提交方式是放在仓库的 ./reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 ./reports/stage-1.pdf。 实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 评分标准 对于每个阶段(stage): 80% 的成绩是自动化测试的结果,你可以直接在 git.tsinghua 的 CI 测试中看到。 20% 的成绩是实验报告,其中对实验内容的描述占 10%,对思考题的回答占 10%。 评分会以 2023 年 1 月 1 日 24:00 前每个 stage 的 branch 最后一次触发的 CI 及触发此次 CI 的 commit 里的实验报告为准,详见补交政策。 如果你认为成绩有问题,请及时与助教联系。 补交政策 假设 a 日 24:00 是某个 stage 的截止时间; a + k (k a + 9 日 24:00 及之后,至 1 月 1 日(第十六周周日)24:00 前补交,此 stage 得分乘以 1 / 2; 提交/补交时间是 1 月 1 日 24:00 前这个 stage 的 branch 最后一次触发 CI 的时间; 更具体来讲是创建 pipeline 的时间,而不是 pipeline 更新的时间,这几乎等于你 push 到远端仓库的时间。并且,你也可以随意地 retry 反复运行 CI,这不会对你的提交/补交产生影响。 如果在多次 retry 中你的代码会得到不一致的结果,请联系助教。 1 月 1 日 24:00 及之后不接受补交,此 stage 的得分为 0。 学术规范 由于实验有一定难度,同学之间相互学习和指导是提倡的。 对于其他同学的代码(包括实验报告中思考题的回答),可以参考,但禁止直接拷贝。 如有代码交给其他同学参考,必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 请所有同学不要将自己的代码托管至任何公开的仓库上(如 GitHub),托管至私有仓库的请不要给其他同学任何访问权限。 我们将会对所有同学的代码作相似度检查,如发现有代码雷同的情形,拷贝者和被拷贝者将会得到同样的处罚,除非被拷贝的同学提交时已做过声明。 代码雷同情节严重的,课程组有权上报至院系和学校,并按照相关规定严肃处理。 相关资源 实验指导书(首页有实验报告提交要求) 实验指导书勘误表 课程问答墙 实验思路指导与问答墙 实验框架介绍视频 实验环境虚拟机下载链接(使用方法参见网络学堂公告) 参考资料 Writing a C Compiler: by Nora Sandler nqcc http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf 备注 1. 关于名字由来,由于往年的实验叫 Decaf,我们在新的且更简单的语言规范下复用了 Decaf 的编译器框架,所以今年的实验就叫 MiniDecaf 了。 ↩ "},"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:Python 框架无法正确输出三地址码? A:非常抱歉,框架中输出时有一个小错误。在 main.py 中,输出三地址码时,请使用 prog.printTo() 语句;此外,想要输出带有缩进格式的抽象语法树,请使用如下语句: printer = TreePrinter(indentLen=) printer.work(prog)   Q: Python框架 step7 中,由 multi_nesting.c 生成的以下中间代码无法成功生成目标代码。 经过使用 print 法调试,发现是 _T1 所对应的寄存器在 return _T1 前就被释放了,后端会尝试到栈中寻找 _T1 并且不会找到,出现报错: utils.error.IllegalArgumentException: error: encounter a non-returned basic block 请问是后端实现上有问题,还是这一部分本来就需要我们自己修改呢? A:Python 框架的后端除了要修改指令选择部分之外,还需要修改基本块 CFG,可以参见 BruteRegAlloc 的注释里给出的提示。   Q:我怎样才能知道我的提交通过了所有测试用例? A:在 2021.10.5 更新评测脚本之后,现在通过 CI 结果可以直接判断是否通过了本阶段测例(不过你需要确保你的提交在对应的 branch 上,如 stage1 对应 stage-1 分支)。本地测试不受此次更新影响,因此更新本地的测试仓库 submodule 不是必须的。   Q:实验指导书中step4的目标代码生成部分,给出的IR对应汇编指令不正确,修改了原有寄存器的值? A:原先的汇编指令确实有问题,我们已经修正。感谢彭晋钧和郭昊同学!   Q:如何提交课程报告? A: 请将实验报告以 pdf 格式提交到 git.tsinghua 自己的仓库中,放在仓库根目录下的 reports/.pdf,比如 stage 1 的实验报告需要放在 stage-1 这个 branch 下的 reports/stage-1.pdf。 最新的 CI 会检查是否通过所有测例及是否有提交报告,只有通过所有测例且正确地提交报告,才会算作 pass。 如果关于报告提交有任何问题,请及时联系助教。   Q:Python 框架寄存器分配中 allocRegFor 函数实现有错误? A:请修改 bruteregalloc.py 中第 119 行处随机数生成的范围,将上界改为 len(...) - 1,避免溢出。感谢孟本源同学! reg = self.emitter.allocatableRegs[ random.randint(0, len(self.emitter.allocatableRegs) - 1) ] Q: Parser Stage中的test-parser-stage.sh无法正常使用? A: 发布作业时打包有失误,请使用原有的minidecaf-tests中的check.sh测试脚本,将parser-stage的前端接入到原先的中后端来进行测试。 "},"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 中搭建开发环境。对于 C++ 实验框架,你需要安装或保证如下软件满足我们的要求: python 3.9 框架本身在 python 3.9 下进行开发,使用了 python 3.9 的新特性并仅在这一版本下经过测试。请保证你所使用的 python 版本高于此版本。 Linux 环境下安装 Python 3.9 可以尝试如下命令: > sudo add-apt-repository ppa:deadsnakes/ppa > sudo apt update > sudo apt install python3.9 此外,如果安装了多个版本的 python,可以通过 update-alternatives 命令修改 python 版本使用的优先级,对所有服务器用户都有效,具体用法可参见这里。 框架里已经提供了需要的 python 包列表文件 requirements.txt,你可以通过 pip 命令安装下文提到的 python 依赖包 ply 和 argparse: $ python3.9 -m pip install -r ./requirements.txt argparse 框架使用了 argparse 以处理命令行参数。官方文档中提供了它的教程。 ply ply是一个自动生成词法分析器和语法分析器的工具,其中ply.lex为词法分析相关的模块而ply.yacc为语法分析相关。我们提供了 ply 的文档。 助教推荐使用类似 Miniconda 的系统以最小化出现奇怪依赖问题的风险。助教推荐在项目中使用 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 | backend/asmemitter.py | backend/subroutineemitter.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 循环实现,同学们可以参考着完成 do-while 和 for 循环的实现。 下面我们列出了所有框架中已经完成的特性: Step1 中我们提供了所有实现。 Step2 中我们提供了取负运算的实现。 Step3 中我们提供了加法运算的实现。 Step5 中我们提供了基础数据结构——符号表的实现。 Step6 中我们提供了 if 语句的实现。 Step7 中我们提供了基础数据结构——作用域栈的实现。 Step8 中我们提供了 while 循环以及 break 语句的实现。 此外,我们提供了 Step1-6 需要的语法树节点和中间代码指令,以及后端中的寄存器分配算法。 "},"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 2022; } 词法分析 & 语法分析 在词法分析 & 语法分析这一步中,我们需要将输入的程序字符流按照语法规范转化为后续步骤所需要的 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(2022) Comma RBrace 并被 yacc 生成的 LALR(1) parser 转化为如下形式的 AST: Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) IntLiteral(2022) 得到的这个 AST 也就是 main.py 中 step_parse 这一函数里 parser.parse(...) 的输出。 尝试运行 python main.py --input example.c --parse 你应该就能看到类似的输出。(记得自己写一个example.c) 语义分析 在 step1 语义分析步骤中,我们要遍历 AST,检验是否存在如下的语义错误: main 函数是否存在。(frontend/typecheck/namer.py:35) 在实际操作中,我们遍历 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 = 2022 # 为立即数2022分配一个临时变量 return _T0 # 返回 下面,我们同样也指出了在代码中我们是怎样实现这个中间代码生成 pass 的,大家可以参考注释和代码了解实现细节。 frontend/tacgen/tacgen.py 中通过一遍 AST 扫描完成 TAC 生成。和语义分析一样,这部分也使用了 Visitor 模式。 frontend/utils/tac 目录下实现了生成 TAC 所需的底层类。其中 tacinstr.py 下实现了各种 TAC 指令,同学们可以在必要时修改或增加 TAC 指令。提供给生成 TAC 程序流程的主要接口在 funcvisitor.py 中,若你增加了 TAC 指令,则需要在 FuncVisitor 类中增加生成该指令的接口。在本框架中,TAC 程序的生成是以函数为单位,对每个函数(step1-8 中只有 main 函数)分别使用一个 FuncVisitor 来生成对应的 TAC 程序。除此之外的 TAC 底层类,同学们可以不作修改,也可以按照自己的想法进行修改。 目标代码生成 目标代码生成步骤是对中间代码的再一次翻译,在本例中,你需要了解并掌握的知识点有: 如何将一个立即数装载到指定寄存器中? RISC-V 提供了 li 指令来支持加载一个 32 位立即数到指定寄存器中,其中 表示寄存器名, 表示立即数值,如:li t0, 2022,就是将立即数 2022 加载到寄存器 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, 2022 # 加载立即数2022到t0寄存器中 mv a0, t0 # 将返回值放到a0寄存器中 ret # 返回 实验框架中关于目标代码生成的文件主要集中 backend 文件夹下,step1 中你只需要关注 backend/riscv 文件夹中的 riscvasmemitter.py 以及 utils/riscv.py 即可。具体来说 backend/asm.py 中会先调用 riscvasmemitter.py 中的 selectInstr 方法对每个函数内的 TAC 指令选择相应的 RISC-V 指令,然后会进行数据流分析、寄存器分配等流程,在寄存器分配结束后生成相应的 NativeInstr 指令(即所有操作数都已经分配好寄存器的指令),最后通过 RiscvSubroutineEmitter 的 emitEnd 方法生成每个函数的 RISC-V 汇编。 细节呢? 关于实现细节,对应的代码位置在下面给出,代码中提供注释供大家学习,但是应该有同学不想读冗长的代码,因此有了这部分。 为了帮大家再快一点了解实验框架。我们进一步看一个例子,如果我们想把返回值从 2022 变成 -2022,则在这一步中你可能需要进行以下操作(实际上这些实现已经在框架里提供): 首先,我们应该把 - 看作一个符号,而不应该将 -2022 看作一个整体,因为我们还可能遇到 -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(2022) 看到这里,你可能会好奇,为什么这里多了如 (expr) Unary 这样的奇怪的 AST 节点。在编译器中,我们将所有的值、或者运算产生的结果称为一个表达式。比如 2022 这个数字是一个表达式, -2022 , y-x同样也是表达式,其会生成一个值。而带返回值的 return 语句需要一个值,我们可以理解为带返回值的 return 语句后需要接一个表达式,这样在语义上才是正确的(例如,我们能见到return 1;这样的语句,但是不会见到return if;这样的语句,因为 if 并不是一个会产生值的表达式)。 词法分析 & 语法分析 在 frontend/lex/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.visitorXXX的调用,前者是在遍历AST时调用的,后者是在 FuncVisitor 类中调用的。并且希望大家一定要对着代码看。 Program |- (children[0]) Function |- (ret_t) TInt |- (ident) Identifier(\"main\") |- (body) Block |- (children[0]) Return |- (expr) Unary |- (op) Minus |- (expr) IntLiteral(2022) 继续看上述例子,我们先关注只有 main 函数的 Minidecaf 程序, TACGen.transform 会先visit main函数,代码贴了一些在这里: def transform(self, program: Program) -> TACProg: mainFunc = program.mainFunc() pw = ProgramWriter([\"main\"]) # The function visitor of 'main' is special. mv = pw.visitMainFunc() mainFunc.body.accept(self, mv) # Remember to call mv.visitEnd after the translation a function. mv.visitEnd() # Remember to call pw.visitEnd before finishing the translation phase. return pw.visitEnd() 你可以不用关注pw是什么,假装它是一个容器,我们 visit 函数时带上这个容器,将翻译好的函数放进去。visitMainFunc()创建了一个这样的容器,并且放了一个main函数进去,现在我们开始正式遍历这棵AST树,对于main函数我们要将中间的函数体也遍历一遍,翻译函数体中的语句,因此调用了mainFunc.body.accept(self, mv) 而函数体首先在一个block中(花括号括起来的部分),因此会先进入 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) 这里进入了FuncVisitor.visitLoad: def visitLoad(self, value: Union[int, str]) -> Temp: temp = self.freshTemp() if isinstance(value, int): self.func.add(LoadImm4(temp, value)) else: self.func.add(LoadStrConst(temp, value)) return temp self.freshTemp()分配了一个虚拟寄存器 temp ,并且产生了一条load语句通过self.func.add加入到了func中(其实就是main函数中)。至此,我们翻译出了第一条语句,将2022 load到一个虚拟寄存器 temp 中。剩下的部分,对着代码和上面的AST看一下相信大家也知道发生了什么了。 到此为止我们得到的TAC代码如下: FUNCTION: _T0 = 2022 _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: pair = self.emitter.selectInstr(func) builder = CFGBuilder() cfg: CFG = builder.buildFrom(pair[0]) analyzer.accept(cfg) self.regAlloc.accept(cfg, pair[1]) return self.emitter.emitEnd() 我们先忽略LivenessAnalyzer和CFG以及寄存器分配的部分(助教写了一个非常简单暴力的寄存器分配,如果你觉得它不够好,你可以在后面的step换掉它),实际上,我们这里最主要的是selectInstr,selectInstr函数中,我们也采用了visitor模式遍历指令序列,对于_T0 = 2022和_T1 = - _T0两句比较直接,我们也能较为容易的想到一个简单的汇编指令对应,这两句的翻译我们不在赘述,主要讲讲return _T1翻译过程发生了什么。 直接看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通过汇编指令先转换为True或False,再进行与操作,否则不符合逻辑与操作的语义。为什么这一步不在产生 TAC 时就处理了?因为我们希望中间表示是和平台无关的代码,在特定架构下,指令选择是有巨大差异的,中间表示有一定抽象能力能简化整体编译器的设计。 物理寄存器分配我们暂时跳过。至此我们已经完成了从源代码到汇编代码的翻译。 现在尝试运行 python main.py --input example.c --riscv 看看效果吧。 思考题 在我们的框架中,从 AST 向 TAC 的转换经过了 namer.transform, typer.transform如果没有这两个步骤,以下代码能正常编译吗,为什么? int main(){ return 10; } 我们的框架现在对于main函数没有返回值的情况是在哪一步处理的?报的是什么错? "},"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 都是逻辑真。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step2/example.html":{"url":"docs/step2/example.html","title":"通过例子学习","keywords":"","body":"step2 实验指导 我们按照上一节划分的编译器阶段,分阶段给出 step2 实验指导。本实验指导使用的例子为: 需要注意的是,我们为了简化描述,提取出了测试用例中和本步骤最相关的部分,实际的测试用例还是一个完整的,带有主函数的 MiniDecaf 程序。 -1 词法语法分析 在 step2 中,我们引入了一元运算,因此需要引入新的抽象语法树节点: Python 框架 节点 成员 含义 Unary 操作数 operand,运算类型 op 一元运算 注意由于各种一元运算的形式是一样的,只是运算规则不同,所以用统一的一元运算节点来表示,在后续步骤中,再根据具体的运算种类翻译为不同的 TAC 与 RISC-V 指令。 C++ 框架 节点 成员 含义 NegExpr 操作数 e 一元负号 NotExpr 操作数 e 逻辑取反 BitNotExpr 操作数 e 按位取反 这些语法树节点,在 C++ 的 parser 写语法规则时,可以都用 Expr 符号来表示,正如 NegExpr 和 AddExpr 语法树节点对应的语法规则里都是 Expr 符号。 语义分析 由于现在 return 语句的返回值不再是整型常量,而是表达式,因此语义分析时需要递归地访问运算操作结点的子结点,才能访问到作为叶子结点的整型常量,完成 step1 中实现的整型常量越界检查。 C++ 框架 由于 C++ 框架中不同运算对应着不同的 AST 节点,所以需要为新增加的运算添加语义分析的部分。可以参照取负操作的实现完成其余两种运算。 Python 框架 没有特别需要修改的地方。 中间代码生成 在 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 关于目标代码生成有一个小技巧,如果你实在不知道某个运算符应该翻译成怎样的汇编代码,可以参考 gcc 的输出结果。例如,你可以通过 gcc 编译如下程序来了解如何翻译逻辑非运算符到 RISC-V 汇编 riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 foo.c -S -O3 -o foo.s(记得加 -O3 选项): int foo(int x) { return !x; } 不出意外你会获得如下结果: foo: seqz a0,a0 ret 思考题 我们在语义规范中规定整数运算越界是未定义行为,运算越界可以简单理解成理论上的运算结果没有办法保存在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 标准草案保持一致 把优先级和结合性信息直接编码入语法里,见优先级和结合性一节。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step3/example.html":{"url":"docs/step3/example.html","title":"通过例子学习","keywords":"","body":"step3 实验指导 本实验指导使用的例子为: 1+3 词法语法分析 在 step3 中,我们引入了算术运算,因此需要引入新的抽象语法树节点: Python 框架 节点 成员 含义 Binary 左操作数 lhs,右操作数 rhs,运算类型 op 二元运算 对有兴趣的同学:虽然 -2 和 2-3 里面的 - 意义不同,但 lexer 不知道这点(parser 才知道),所以它们都会用同样的 token kind - 表示。 但有时,可能需要后续阶段告诉 lexer(或 parser)一些信息,最经典的例子是 “typedef-name identifier problem”。 C++ 框架 类似step2,对每种二元运算实现了不同的语法树节点 节点 成员 含义 AddExpr 左操作数 e1,右操作数 e2 加法运算 SubExpr 左操作数 e1,右操作数 e2 减法运算 MulExpr 左操作数 e1,右操作数 e2 乘法运算 DivExpr 左操作数 e1,右操作数 e2 除法运算 ModExpr 左操作数 e1,右操作数 e2 取模运算 语义分析 同 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 中逻辑运算符 || 和 && 有短路现象,我们不要求。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step4/example.html":{"url":"docs/step4/example.html","title":"通过例子学习","keywords":"","body":"step4 实验指导 本实验指导使用的例子为: 1 词法语法分析 Python 框架 本 step 中引入的运算均为二元运算,在 step3 中引入的二元运算节点中进行修改即可。 C++ 框架 新引入的每个运算都有一个对应的语法树节点. 节点 成员 含义 LesExpr 左操作数 e1,右操作数 e2 小于 GrtExpr 左操作数 e1,右操作数 e2 大于 LeqExpr 左操作数 e1,右操作数 e2 小于等于 GeqExpr 左操作数 e1,右操作数 e2 大于等于 EquExpr 左操作数 e1,右操作数 e2 等于 NeqExpr 左操作数 e1,右操作数 e2 不等于 AndExpr 左操作数 e1,右操作数 e2 逻辑与 OrExpr 左操作数 e1,右操作数 e2 逻辑或 语义分析 同 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 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step5/example.html":{"url":"docs/step5/example.html","title":"通过例子学习","keywords":"","body":"step5 实验指导 本实验指导使用的例子为: int main() { int x = 2023; return x; } 词法语法分析 针对局部变量定义和赋值操作,我们需要设计 AST 节点来表示它,给出的参考定义如下(框架中已经提供): 节点 成员 含义 Identifier 名称 val 标识符(用于表示变量名) TInt 无 整型 Assignment 同 Binary 赋值运算 请注意,赋值操作是一种特殊的二元运算,因此可以将它合并到 Binary 节点里,也可以单独设置一类节点继承 Binary 类来处理它。 语义分析 从本节开始,我们需要在语义分析阶段对局部变量的规范进行检查。具体来说,我们需要名为符号表的数据结构。符号表的实现已经在框架中给出。因此,你只需要修改语义分析部分的代码,在必要时调用符号表的接口即可。 在符号表构建过程中,我们要按照语句顺序,逐一访问所有变量定义声明。在访问变量声明时,我们需要为该变量赋予一个变量符号,并将它存入符号表中。由于变量不能重复声明,在定义变量符号前需要在符号表中检查是否有同名符号。 类似地,在访问表达式时,如果遇到变量的使用,我们也需要在符号表中检查,避免使用未声明的变量。例如,如果我们将测例修改为: int main() { int x = 2023; return x + y; } 那么在扫描到加法操作的 AST 结点时,会依次检查该操作的两个操作数 x 和 y。这两个操作数均为变量标识符,因此我们需要到符号表中搜索 x 和 y 对应的符号。符号 x 可以在符号表中找到(我们在扫描 int x = 2023; 这条语句后已经为其定义),而 y 无法找到,因此编译器需要在扫描到 y 对应的结点时报错。 符号表总是和作用域相关的。例如,在 C 语言中,我们可以在全局作用域中定义名为 \"a\" 的全局变量,同时在 main 函数中定义名为 \"a\" 的局部变量,这并不产生冲突。不过由于本节还无需支持全局变量和块语句,同学们不用考虑这一点,只考虑 main 函数作用域对应的单张符号表即可。 此外,在本节中,我们引入了赋值操作。赋值可以看作一种特殊的二元运算,但需要注意,赋值号左侧必须为一个左值。具体来说,同学们需要检查赋值号左侧只能是变量名标识符。在 step11 中,我们会将左值的范围进一步包括数组元素。 对应到框架代码上: frontend/symbol 目录下为符号的实现。其中 symbol.py 为符号类的基类,varsymbol.py 为变量符号。在本节中,同学们只需要考虑变量符号即可。 frontend/scope 目录下为符号表的实现。其中 scope.py 为作用域类,在本节中由于只有一个局部作用域,因此无需考虑作用域栈。同学们只需要新建一个 Scope 对象,用以维护 main 函数中所有出现过的变量符号即可。 中间代码生成 我们首先来看本节指导用例所对应的中间代码: main: _T1 = 2023 _T0 = _T1 return _T0 针对赋值操作,我们显然需要设计一条中间代码指令来表示它,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 ASSIGN T0,T1 临时变量的赋值 从中间代码可以看出,尽管我们引入了变量的概念,但是在比较低级的中间代码上,数据的存储和传递仍然是基于虚拟寄存器进行的。由于 MiniDecaf 语言中的基本类型只有 int 型,而 TAC 里的临时变量也是 32 位整数,因此,我们可以把 MiniDecaf 局部变量和 TAC 临时变量对应起来。 在扫描到 int x = 2023; 这条语句时,中间代码先把立即数 2023 加载到临时变量 _T0 中,然后再把 _T0 的值赋给临时变量 _T1,此时 _T1 已经成为了变量 x 的“替身”。每次需要用到变量 x 的值时,我们都会去访问 _T1。例如,测例中直接用返回 _T1 代替了返回变量 x 的值。因此,为了在后续使用变量 x 时能快速找到 _T1 这个临时变量,在符号表中存储 x 这个符号时,应当为该符号设置一个成员,存储 x 对应的临时变量。每当在 AST 上扫描到一个变量标识符结点时,我们都直接调用该变量对应的临时变量作为结点的返回值。 请注意 frontend/symbol/varsymbol.py 中,变量符号的定义里有该变量对应的 TAC 临时变量成员。 目标代码生成 本节指导用例对应如下 RISC-V 汇编代码: .text .global main main: li t1, 2023 mv t0, t1 # 我们使用 mv 指令来翻译中间表示里的 ASSIGN 指令 mv a0, t0 ret 简单的启发式寄存器分配算法 在中间代码中,我们使用了虚拟寄存器来存储变量的值。如果所使用的虚拟寄存器的个数,超过了目标机器实际拥有的物理寄存器数目,将无法生成正确的目标代码。此时,需要采用寄存器分配算法,调度和分配数目有限的物理寄存器资源,保证所有临时变量(虚拟寄存器或伪寄存器)都有合适的物理寄存器与之对应。在程序执行的任何时刻,都需要保证不会出现寄存器分配冲突,即两个同时有效且将被引用的临时变量(虚拟寄存器)被分配到同一个物理寄存器中,寄存器分配冲突将造成程序运行结果的错误。然而,寄存器分配问题是NP 完备问题(可以从 3-SAT 问题归约),这意味着对于一个含有大量临时变量的程序,为了获得最优寄存器分配方案,编译器将耗费可观的计算时间用于寄存器分配。因此,考虑到执行效率问题,实际的编译器实现中一般采用启发式算法。 实验框架中所采用的启发式寄存器分配算法基于活跃性分析。为避免一次性介绍过多的知识,将在 step7 详细介绍活跃性分析的相关理论。大家目前只需要了解,活跃性分析是为了求解每个临时变量是否会在程序某点之后被引用,如果被引用,这个临时变量就是活跃的。 基于活跃性分析的启发式寄存器分配算法的基本思路:针对每一条 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 的值,然后将返回地址弹出栈中,跳转到返回地址。 思考题 我们假定当前栈帧的栈顶地址存储在 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 语义检查我们也要修改了,只有在同一个作用域里,变量才不能重复声明。 当然,如果变量在使用前还是必须先被声明。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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 节点来表示它,给出的参考定义如下: 对于Python: 节点 成员 含义 Block 子语句列表 children 语句块 对于C++: 节点 成员 含义 CompStmt 子语句列表 stmts 语句块 语义分析 从 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。只要同学们在符号表构建阶段把每个变量和正确作用域的变量符号关联起来,这一步就非常简单了:找到对应变量符号,使用该符号对应的临时变量即可。 目标代码生成 不需要新增新的中间代码指令。 Python 框架 Python 框架比较特殊,需要同学们对寄存器分配相关的 CFG 的内容进行细微修改。具体来说,需要在 backend/dataflow/cfg.py 中添加基本块是否可达的判断。在寄存器分配算法 backend/reg/bruteregalloc.py 的注释中,我们给出了提示,如果一个基本块不可达,那么无须为它分配寄存器。 思考题 请画出下面 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 语言相同,注意条件表达式优先级只比赋值高。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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 提供了与中间代码中 BEQ 和 JMP 类似的指令: 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 | 'do' statement 'while' '(' expression ')' ';' | 'break' ';' | 'continue' ';' 循环语句的语义和 C 语言相同,注意检查 break/continue 不能出现在循环外。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step8/example.html":{"url":"docs/step8/example.html","title":"通过例子学习","keywords":"","body":"step8 实验指导 本实验指导使用的例子为: for (int i = 0; i 词法语法分析 针对 for 和 break 语句,我们需要设计 AST 节点来表示它,给出的参考定义如下: 节点 成员 含义 For 初始语句 init,循环条件 cond,更新语句 update,循环体 body for 循环语句 Break 无 break 语句 语义分析 本步骤语义分析阶段的处理方式和 Step6 中的 if 语句相类似,但是请额外注意以下两点: for 循环要自带一个作用域。在示例里,for (int i = 0; i 语句里定义的循环变量处于一个独自的作用域里。这也就是说,我们可以在循环体内部定义同名变量。如果我们把示例修改为:for (int i = 0; i 这也是合法的 MiniDecaf 程序。因此,在符号表构建阶段,扫描到 for 结点时,不要忘记开启一个局部作用域。 break 和 continue 语句必须位于循环体内部才合法。因此,在扫描过程中,需要记录当前结点位于多少重循环内。扫描到 break 和 continue 结点时,若当前不处于任何循环内,则报错。 中间代码生成 本步骤中没有需要新增的 TAC 指令。不过为了实现循环语句,需要仔细地考虑如何将 MiniDecaf 循环语句翻译成 TAC 的分支跳转指令。由于 while 循环、do-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 标签,这样才能确定每一条 continue 和 break 语句跳转到何处。因此,在 TAC 生成时,需要使用栈结构维护从内到外所有的 loop 标签和 break 标签。 utils/tac/funcvisitor.py 里的 FuncVisitor 类里实现了维护 TAC 生成时需要的上下文信息的功能。同学们可以在这个类中增加对循环所需的 continue/break 标签的维护。 目标代码生成 由于不需要增加新的中间代码指令,本步骤中目标代码生成模块没有新的内容。除非之前步骤的实现有误,否则这个步骤应该不会出现错误。 思考题 将循环语句翻译成 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 指令不计算在内,假设循环体至少执行了一次),请评价这两种翻译方式哪一种更好? "},"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 | 'do' statement 'while' '(' expression ')' ';' | '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 循环和 do 循环。执行一条循环语句,意味着反复执行一条语句(即循环体),直到其控制表达式等于 0。 8.2 while 循环的控制表达式的求值在循环体的每次执行之前。 8.3 do 循环的控制表达式的求值在循环体的每次执行之后。 8.4 对于 for 循环而言:如果 init 是一个声明,其声明发生在控制表达式的第一次求值之前;如果 init 是一个表达式,其求值会在控制表达式的第一次求值之前。ctrl 即是控制表达式,其求值在循环体的每次执行之前。post 的求值在循环体的每次执行之后。 8.5 for 循环的 init、ctrl 和 post 都可以被省略。省略 ctrl 等价于将其替换为一个非零常数,比如 1。 8.6 循环语句有其自己的作用域,且是它所在的作用域的子集。循环体也有其作用域,且是循环语句的作用域的子集。如果 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 返回值实现。 注意:从 step 9 开始,MiniDecaf 会引入 runtime,部分函数在源代码中只有声明,其定义在 runtime 编译得到的链接库中。因此我们并不需要检查函数只声明、未定义的情况。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step9/example.html":{"url":"docs/step9/example.html","title":"通过例子学习","keywords":"","body":"step9 实验指导 本实验指导使用的例子为: int func(int x, int y); int main() { return func(1, 2); } int func(int x, int y) { return x + y; } 词法语法分析 针对函数特性,我们需要设计 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; } 那么语义检查时应当报错。 Python 框架 frontend/symbol/funcsymbol.py 里实现了函数符号。 C++ 框架 symb/symbol.hpp 中 Function 类表示函数符号。scope/scope.hpp 中,FuncScope 表示函数作用域。 中间代码生成 为了实现函数,我们需要设计两条中间代码指令,分别表示设置参数和函数,给出的参考定义如下: 请注意,TAC 指令的名称只要在你的实现中是一致的即可,并不一定要和文档一致。 指令 参数 含义 PARAM T0 将 T0 设置为下一个参数 CALL LABEL 调用函数 LABEL 假设我们有若干个参数,可以依次使用 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 同学们可以使用这种参考的实现形式,也可以自行思考传参的处理方法。 在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。 目标代码生成 .text .global main func: # start of prologue addi sp, sp, -56 # end of prologue # start of body sw a0, 0(sp) sw a1, 4(sp) lw t0, 0(sp) lw t1, 4(sp) add t2, t0, t1 mv t0, t2 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 首先你需要参考之前步骤中实现的方法,翻译本步骤中新增的中间代码指令。 接下来详细介绍函数调用的步骤和约定,以及函数调用及返回过程中栈帧的变化。 函数调用 程序代码里的一个函数调用,包含了下面一系列的操作: 准备参数,完成传参。 (汇编)保存 caller-saved 寄存器。 执行汇编中的函数调用指令,开始执行子函数直至其返回。 (汇编)恢复 caller-saved 寄存器。 拿到函数调用的返回值,作为函数调用表达式的值。 上述步骤 1-5 称为调用序列(calling sequence)。然而,调用序列中有一些问题需要解决:如何进行参数传递?如何获取函数返回值?调用者(caller)和被调用者(callee)需要保存哪些寄存器,如何保存?调用者和被调用者通常对以上问题约定解决方式,并同时遵守这些约定。这些调用者与被调用者共同遵守的约定称为调用约定(calling convention)。调用约定通常在汇编层级使用,汇编语言课上也有涉及。因为汇编语言是低级语言,缺乏对函数的语言特性支持,只有标号、地址、寄存器,所以需要调用约定,规定如何用汇编的语言机制模拟函数调用。 调用约定 实验测例中有与 gcc 编译的文件相互调用的要求,因此,大家需要实现标准调用约定。 RISC-V 的标准调用约定(gcc 使用的、和 MiniDecaf 相关的) caller-saved 和 callee-saved 寄存器 上表给出 RISC-V 中 32 个整数寄存器的分类。所谓 caller-saved 寄存器(又名易失性寄存器),是指不需要在各个调用之间保存的寄存器,如果调用者认为在被调用函数执行结束后仍然需要用到这些寄存器中的值,则需要自行保存。所谓 callee-saved 寄存器(又名非易失性寄存器),指这些寄存器需要在各个调用之间保存,调用者可以期望在被调用函数执行结束后,这些寄存器仍保持原来的值。这要求被调用者,如果使用这些寄存器,需要先进行保存,并在调用返回之前恢复这些 callee-saved 寄存器的值。 具体的保存方法并不限制,但一般都使用栈来保存。 函数参数以及返回值的传递 函数参数(32 位 int)从左到右存放在 a0 - a7 寄存器中,如果还有其他参数,则以从右向左的顺序压栈,第 9 个参数在栈顶位置。同学们可以使用编写一个带有多个参数的函数并进行调用,然后用 gcc 编译程序进行验证。 返回值(32 位 int)放在 a0 寄存器中。 提示 关于测试样例: 我们的测试脚本会将你的编译器生成的汇编代码与我们提供的运行时框架一起通过 gcc 链接得到可执行文件,检查运行结果。你可以查看测试文件夹中的 runtime.c,runtime.h,runtime.s 来查看我们预定义的函数。 C++框架中: 框架中会在生成的汇编中在函数名前面加上下划线 _,如果链接时出现问题请检查是不是下划线导致的。 由于调用时涉及将参数放到寄存器中,如果原来的寄存器中已经分配给了其他虚拟寄存器,那么你需要将寄存器先保存(spill)到栈上,但是这个过程你需要小心地处理Liveout集合,以下面三地址码为例: func: _T2 = ADD _T0, _T1 return _T2 # 参数 x 和 y 分别对应 _T0, _T1 main: _T0 = 1 PARAM _T0 # 将 _T0 的值作为参数 x 放入a0寄存器 _T1 = 2 PARAM _T1 # 将 _T1 的值作为参数 y 放入a1寄存器 _T3 = CALL func # 调用函数 return _T3 在PARAM _T0这一行,我们要将虚拟寄存器T0作为参数x放入物理寄存器a0,假设此时T0在栈中,并且物理寄存器a0中存放了另一个虚拟寄存器T2,那么要先将T2 spill到栈中。 即此时需要: 将T2放入栈中(即:spill T2) 从栈中将T0取出放入a0寄存器中 但是我们的框架在spill一个寄存器时会考虑当前位置的liveout集合,假设T0在此后不再被用到,那么T0就不在当前位置的liveout集合中,也就是说在spill寄存器时T0可以被覆盖掉,这可能导致T2被spill到了T0所在的位置,覆盖了T0。 void RiscvDesc::spillReg(int i, LiveSet *live) { std::ostringstream oss; Temp v = _reg[i]->var; if ((NULL != v) && _reg[i]->dirty && live->contains(v)) { RiscvReg *base = _reg[RiscvReg::FP]; if (!v->is_offset_fixed) { _frame->getSlotToWrite(v, live); // 此处选择了一个栈上的位置用于保存寄存器 } ... ... } ... ... } 因此如果你遇到需要将参数放到某个物理寄存器中并且原来物理寄存器中含有其他虚拟寄存器,那么你可以按照下面的方式做: void RiscvDesc::setRegParam(Tac *t, int cnt) { // 此处助教使用Tac的op0来存放需要当作参数的虚拟寄存器 // 先将op0加入当前的LiveOut集合,这可以保证spillReg时候不会将op0覆盖 t->LiveOut->add(t->op0.var); spillReg(RiscvReg::A0 + cnt, t->LiveOut); int i = lookupReg(t->op0.var); if(i 思考题 MiniDecaf 的函数调用时参数求值的顺序是未定义行为。试写出一段 MiniDecaf 代码,使得不同的参数求值顺序会导致不同的返回结果。 为何 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 | 'do' statement 'while' '(' expression ')' ';' | '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)确定的。 简单的说,狭义上的编译器把源代码变成文本汇编,汇编器把文本汇编给编码到二进制代码,然后通过链接器变成可执行文件,运行时由加载器加载到内存中运行。 当然,广义上的编译器就囊括了这所有阶段。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容) 指导书上的思考题 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。 "},"docs/step10/example.html":{"url":"docs/step10/example.html","title":"通过例子学习","keywords":"","body":"step10 实验指导 本实验指导使用的例子为: int x = 2022; 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 代码中没有为全局变量赋予初始值(2022)。可以将变量的初始值存放在变量符号对应的符号表里,在后端代码生成时通过读取符号表得到初值。此处给出的只是一种参考实现,大家也可以将全局变量的定义显式翻译为 TAC 代码,这样可以使中端与后端完全解耦。 在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。 目标代码生成 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 2022 上例中,.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 | 'do' statement 'while' '(' expression ')' ';' | '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 连快速排序都写不了。 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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] 这样的索引运算表达式,因此同学们可能需要仔细考虑一下如何处理赋值时对值类别的检查。 Python 框架 frontend/type/array.py 里实现了数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。 有能力的同学可以考虑将原先 Namer 中类型检查的部分,以及 stage 5 需要增加的类型检查重构进 Typer 中,使实现更加模块化。 C++ 框架 type/type.hpp 中的 ArrayType 表示数组类型,同学们可以使用它完成实验,也可以自行对其进行修改。 中间代码生成 数组和普通变量类似,可以分为局部数组和全局数组。 全局数组的处理与全局变量类似,由于是升级关卡,我们留给同学自行思考(和全局变量究竟有什么不同,是不是需要的内存空间更大?提示: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 时,同学们需要自行将数组下标转换成地址计算指令。这个步骤并不困难,但可能比较繁琐,同学们在实现时要注意细节,避免错误。 在 step9 之后,C++ 框架中出现了新的三地址码指令(PARAM、CALL等),因此你需要参考 tac/dataflow.cpp 文件开始的注释修改相应指令的数据流信息,具体的修改方式取决于你定义的三地址码指令的输入和输出特点。 目标代码生成 同中间代码生成,全局数组自行思考实现。 对于局部数组的内存分配,推荐在栈上为局部数组分配所需的空间,实际上,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 | 'do' statement 'while' '(' expression ')' ';' | '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']')*)?)*)? 你需要: 改进你的编译器,支持本节引入的新特性,通过相关测试。 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括: 你的学号姓名 简要叙述,为了完成这个 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 这样的函数来实现数组数组的清零,我们的运行时库中也提供了 fill_n 函数用来给数组批量赋值,你可以按照 RISC-V 标准调用约定来使用这个函数,因此数组清零不是一件难事。你可以查看 runtime.h 和 runtime.c 来了解 fill_n 函数的实现,其使用方式和功能同 C++ 标准库中的 std::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/C++ 中即使标明了第一维的大小,类型检查依然会当作第一维是空的情况处理。如何理解这一设计? "},"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 | 'do' statement 'while' '(' expression ')' ';' | '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[]) 是被支持的,由于传参不需要申请完整的数组的空间,不会产生需要计算数组空间的问题 "},"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