我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 语言描述语言 >

什么是语言描述方法?有哪些分类?急!请以荷塘月色234段为例说

归档日期:08-11       文本归类:语言描述语言      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  关于程序设计的指导性原则没有唯一的标准,这里显示已被应用的一种可选方案。

  设计、编码、调试可被明确定义,在实际开发中不能严格在时间和空间上独立,彼此是相联系,互相作用的。

  避免“瀑布式”的开发模型,在目标明确的情况下,整体性地关注并适当进入细节,不应彼此脱节。

  制定有效的命名法,文档格式,注释,调试等指导性原则,在适当的地方更灵活地完成,而在一些地方按照基本法则行事。

  内部改制可能是不被允许的,但在原规范上的、基于某种具备前瞻性的实现手段的扩充可能总是可行的,前者形如已编译链接库中的代码片断,后者可基于类和模板的实现。或者实现为一类组件对象模型的用户,向下派生出具备扩充能力的兼容接口。

  设计通用的组件不一定是最高效的,但应该具备广泛的兼容性,以便在各种场合均能派上用场。为此局部系统在实现的时候将可能作一些妥协。

  一个系统应建立于多个抽象层次之上,并使每个层次有着类似的应用规范,即它们都具有:

  任一种程序设计范性的最一般表述层:引导对象和行为的呈现,应基于可被良好理解的一般性的逻辑结构上,过于追求“拟真”的效果和“华丽”的语法修饰可能为项目带来效率、维护等方面不可预知的额外开销。

  2)函数对象是一种拟函式,仿照函数语法,操控符是带有参数和函数指针的特殊类,通过流的输入、输出运算符的重载,影响流的行为

  3)附带类“特征”、“分类”信息的继承结构,使得使用者可根据其特性选择不同动作,通过重载 / RTTI 及其他簿记机制等

  4)用例(use case)是一个系统在一次特定使用的描述,发现更多的用例,且不能指望得到所有的用例(排除部分使用情况有限的系统功能),了解哪些是主要的,哪些是次要的。以完成当前这一轮的设计和实现工作

  上述操作相互之间可能是互相覆盖:迭代器被解引用将查询数据,被执行偏移将可能引起数据的读出或者写入;更新的操作可以返回旧值以备用;行为、生成操作可能引起状态更新,如文件读写,或者导致不支持再读取 / 写入状态,如关闭一个文件。

  3、更新:static 静态数据成员是对象间共享的,任何一个对象对该成员的更改将影响其他对象;private 数据仅由当前对象的成员方法或者友元访问,外部访问通过指定方法修改更新而不涉及过多的细节,使用虚函数形成界面规范;protected 则向派生类公开数据访问的权限

  5、迭代器、切割器:迭代器将当前对象的数据索引形成包装在一种类似指针行为的对象中,由其代为迭代元素;切割器接受有关规则描述,以及宿主对象的数据索引形式(如数据区指针)

  不应试图让一个类作所有的事情,有一些局部性工作的类或者过程完成这些操作。

  为新项目的实施选择可参照的已有模型,使设计者可以立即将注意力投入到一些精确的描述细节。

  从模型可选方案中去考察应用到当前项目的可行性,并从其获得帮助,而不是一种纯粹的模仿,“设计的重用”。

  为设计中的一般性元素,设计针对问题、使用条件等的描述的建档,称为“模式”。

  原型可以忽视内部实现技巧、效率,并因此近于产品的外在特性,而可能被改良作为产品发布,并由此再在不良设计之上进行投入,并试图在下一个版本进行性能优化,但这是违背原型在设计中的作用。

  测试时,尝试设计一些特定数据结构用于记载程序运行状态和调试数据,并可能在适当的时候请求假定用户的帮助。

  assert 断言分析一段代码的状态码真值,该断言在发布版本中被自动忽略,使用 exception 异常类的抛出以便总是产生程序中断。

  1)一个组织指望一个可互换的团队,意味着不允许他们利用自己更加擅长的技能高于实现所需的能力进行更好的工作

  2)管理者应具备相当的技能和教育以便评估小组和项目的完成进度和小组成员的完成质量,而不是简单地依靠:

  管理者需要他们以及最新的相关技术知识。关键技术人员也需要胜任的管理者支持以及非技术环境的最低程度的理解。

  4)不希望改变的人应适从于不需过多改变的领域而不是在一个显著改变了成功条件的地方

  描述语言特性的材料的选择可能影响到设计本身,设计者需要熟知语言的特性,避免在特定语言中表现不佳的应用方式。

  在其他语言环境中的“不适当”的经验用于当前语言可能引入歧途,“错误、生硬、低效率”。

  在其他语言环境中的“过时”的经验将不能发挥当前语言界已实现的更高抽象能力,而产生冗长乏味的重复代码片断。

  在实现一种设计中,设计师优先从语言支持的特性中寻找直接对应的语法工具,而后才考虑更“笨拙”的实现。

  明确在当前语言中能可用的,但被广泛描述为“不建议使用”的语法特性,了解这么做的原因。

  在语言特征上支持依赖关系,使得显式声明彼此相关 / 无关的部分成为可行的、有帮助的。并给其他用户提供良好的规范用法以及为帮助程序提供产生依赖图的参考。

  2)虚函数为继承依赖关系维护一张调用表,以便总是访问正确的方法,如虚析构函数

  4)异常借助异常类的组织和堆栈回退对象析构机制来更好地管理和处理运行时异常

  所有这些不适当的使用都可能导致并不是很良好的设计并可能带来不必要的负担。

  4)不同的实现者可能不能协调,为了进行并行开发可能需要关注彼此更多的实现

  1)原因可能是“继承”破坏了信息隐藏,任何有心者可能会继承一个已有类型,并暴露出内部信息

  3)什么时候使用继承:集合处理(接受基类指针的集合)、扩展描述一种设计概念

  编译器的静态类型检查要求更良好的类型传递和使用,通过精确描述和强类型界面为编译时提供良好的参考。

  * 为访问到共同基类界面的集合操作使用基类指针传递,为访问到明文一致的不同基类的操作使用模板函数。

  1)不论在哪个领域十分成功的应用框架,都不能消除程序设计的工作。应用框架在涉及更为精细的实践中,其有效性会迅速降低

  2)有优势的规范系统应在代码结构、外观、基本思想与直接语言环境能够良好融合

  一般认为派生类总是依赖于基类。同时,基类也可能依赖于派生类,如虚函数和保护成员。故基类可能在不知情的情况下访问派生类的此类实现,其派生类应是可预期的行为。尽管基类对派生类的依赖不表现在明文上定义的先后顺序。

  五、虚函数在基类被声明为 private 访问权限,派生类并不能直接访问,但可以在派生类重载为公有的或者保护权限的

  通过私有、保护派生的类型将无法隐式和静态转换到其基类 / 引用 / 指针,即使静态类型转换、基类复制构造是可行的。

  和“实现继承”相对立的是公有继承中的“多态”,作为不同基类型的指针,对象具备不同的行为界面。

  十、为设计概念找到一种到程序设计的一一映射关系,并总是贯彻它,以支持语言不直接具有的特性

  3)利用异常类,限定条件枚举,检查函数等在执行状态更新时维护“不变式”逻辑

  标准库函数 cassert 在不设置 NDEBUG 预处理器符号的情况下,输出错误文件名、行号,并执行 abort()。

  虚基类和模板分别支持对象化的和参数化的通用算法技巧。前者基于统一基类的虚函数表提供一致界面,后者基于提供明文一致的函数形式以及。虚方法占用运行时时间,模板占用编译时时间。

  1)使用包含类型的指针,引用以避免界面上的依赖,并在实现上使用此类指针 / 引用数据的成员,称为类定义界面和实现的分离

  2)界面上包含成员定义将使实现向编译单元透明,以便在线化,其中涉及的细节应避免过于依赖的外部类型的成员访问

  4)交集不明显,但因错误 / 不良的设计指导风格而制定兼容多种界面的基类的形式易产生“肥大的界面”

  4)具体类借助模板算法提供编译时类型检查,以提供灵活的 / 不损失性能的处理机制。为此为近似的操作提供明文一致的界面,或者使用辅助类型暴露通用的界面,如迭代器

  2)依赖于抽象基类的用户代码在实际构造时使用的派生类发生修改时(派生类的定义和实例化位于和使用基类的用户代码不同的编译单元),不引起重新编译

  有意的概念描述类的实现称为“结点”,结点使用基类服务,并具有一定的构造策略和实现,但并不被推荐构造最终的对象,而是作为该对象的局部实现。

  1)实现的动作需要在不同的场合携带有效数据并以一种预期的格式传递,则该动作并不能由纯粹的函数实现,如算法中的仿函式和输入 / 输出流的操控符

  2)仿函式使用 operator() 作为动作识别,规范操控符分别将可能格式登记到 operator 或 operator 运算符的重载列表中,并利用打包对象对输入 / 输出流状态执行更改

  1)类型检查、异常处理在界面类中进行处理,并将实现交给其基类或者包含的类对象 / 指针 / 引用

  2)多重继承的同名现象,使用包装界面类提供新的可覆盖虚函数间接访问原有同名虚函数的实现,原虚函数将通过私有继承而限制后续派生类的访问

  1)为利用虚函数机制,需要使用指针、引用操作,这需要用户参与管理。句柄是一种替为管理资源的类对象,并尽可能维护一组系统化的句柄类型

  正面描写,侧面描写,视觉,听觉,嗅觉相结合。。(通感)分层次描写景物等等。。。

  展开全部比如说计算机内部都是用数字0和1来表示的,不管是计算机的声音,图像,数字都是由0.1构成的

  这样看来计算机都是数字的。但是从宏观来看的话,我们的确可以用计算机调节声音的大小

  为什么会是这样呢,那是因为这些连续变化的模拟量,只要我们把它分的足够的细,它就是

  一个一个的点,也就变成了离散量。所以在计算机里面要使用离散的0.1来表示模拟的连续

本文链接:http://beforelasik.com/yuyanmiaoshuyuyan/776.html