无论是在实际生活中还是在学术问题上,复杂的问题比比皆是,当我们对此类问题毫无头绪的时候,自顶向下(top down)为我们提供了一种可靠的解决方法。
自顶向下法将复杂的大问题分解为相对简单的小问题,能找出每个问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。

其核心本质是”分解”。

自顶向下(top-down)的分析算法通过在最左推导中描述出各个步骤来分析记号串输入。之所以称这样的算法为自顶向下是由于分析树隐含的编号是一个前序编号,而且其顺序是由根到叶自顶向下的分析程序有两类:回溯分析程序(backtracking parser)和预测分析程序(predictive parser)。预测分析程序试图利用一个或多个先行记号来预测出输入串中的下一个构造,而回溯分析程序则试着分析其他可能的输入,当一种可能失败时就要求输入中备份任意数量的字符。虽然回溯分析程序比预测分析程序强大许多,但它们都非常慢,一般都在指数的数量级上,

所以对于实际的编译器并不合适。

递归下降程序分析和LL(1)分析一般地都要求计算先行集合,它们分别称作First集合和Follow集合。由于无需显式地构造出这些集合就可以构造出简单的自顶向下的分析程序。
我们可以自下而上设计一个装配体,或自上而下进行设计,或两种方法结合使用。

自顶向下(top down)简介相关推荐

  1. iOS GitHub Top 100 简介

    GitHub Top 100 简介 主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况. Android 版 ...

  2. 《Android开源库 ~ 1》 GitHub Android Libraries Top 100 简介

    转载自GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitH ...

  3. GitHub Android Librarys Top 100 简介

    GitHub Android Librarys Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索J ...

  4. mysql top 语句简介

    错误: [SQL] select u.* from `user` u,score s where u.username=s.Name and s.Score=(select top 5 n.Score ...

  5. linux top命令简介

    top 命令是最流行的性能监视工具之一,我们必需了解.它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处.top 命令交互界面如下图所视: top 界面 ...

  6. GitHub Android Libraries Top 100 简介

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过 ...

  7. GitHub Top 100 简介

    主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况. 若有任何疑问可通过微博@李锦发联系我 项目名称 项目信 ...

  8. linux+top+常用参数,linux的top命令参数详细说明

    Linux中的top命令是个常用的命令之一,下面由学习啦小编为大家整理了Linux的top命令参数详细说明,希望对大家有帮助! linux的top命令简介 top命令是Linux下常用的性能分析工具, ...

  9. linux top 上次更新到现在的cpu时间占用百分比,使用top命令分析linux系统性能的详解...

    linux的top命令简介 top命令是linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示 ...

  10. GitHub 排名前 100 的安卓、iOS项目简介

    GitHub Android Libraries Top 100 简介 转自:http://www.devstore.cn/essay/essayInfo/6485.html 排名完全是根据 GitH ...

最新文章

  1. Spring Boot + Mybatis 多模块(module)项目的完整搭建教程
  2. KafKa-----acks参数对消息持久化的影响
  3. php邮件发送失败,php服务器发送邮件失败问题解析
  4. shell-sed命令详解(转)
  5. 摄像头光圈大小对景深的影响
  6. php post get content-type,content-type - java访问php接口问题,$_POST默认接收的contentType是?...
  7. pb string最大长度_跑马备赛训练计划大盘点,助你跑出PB
  8. 第章量子计算机产业,第章量子计算机.ppt
  9. 基于共享内存的聊天室服务程序
  10. Gratipay如何帮助解决“搭便车”问题
  11. window下用主机名登录MySQL数据库出现报错解决方案
  12. 深度学习与NLP简单应用
  13. 详解iOS开发之自定义View
  14. 每日一题--字符串数组重排(Google推荐面试书--Cracking the Coding Interview)
  15. 【安卓手机驱动无法安装则无法连接电脑,终极100%解决方法】ADB interfacm与 Andriod安装出现黄色感叹号
  16. 通过collect埋点_通过Collect UI查找每日界面设计灵感
  17. Python(初学者):调用函数输出
  18. mysql数据类型内存_MySQL数据库基本功-常用数据类型介绍和优化技巧
  19. JVM成神之路(一)---咱们为什么要学习JVM
  20. Unity3D for Android 纹理压缩支持

热门文章

  1. “Kindle App中文字体9MB下载失败”解决办法
  2. 硬件编码相关知识(H264,H265)
  3. java sqlldr_sqlldr详解
  4. 蓝牙技术|蓝牙音频LE Audio的技术特点
  5. ROS2中的行为树 BehaviorTree
  6. Mugeda(木疙瘩)H5案例课—换装小游戏-岑远科-专题视频课程
  7. C# 获取电脑CPU序列号
  8. 鲁班H5页面生成工具源码
  9. Dell 服务器阵列扩容【经验分享(转)】
  10. [解疑][TI]TI毫米波雷达系列(五):恒虚警算法(CFAR)原理