“编译器”简介;架构风格与设计模式的区别?(架构和设计模式)

一、“编译器”是一种非常重要的基础软件,其核心功能是对源代码形态的单个或一组源程序依次进行预处理、词法分析、语法分析、语义分析、代码生成、代码优化等处理,最终生成目标机器的可执行代码。考虑以下与编译器相关的软件架构设计场景:传统的编译器设计中,上述处理过程都以独立功能模块的形式存在,程序源代码作为一个整体,依次在不同模块中进行传递,最终完成编译过程。针对这种设计思路,传统的编译器采用顺序批处理架构风格比较合适。

随着编译、链接、调试、执行等开发过程的一体化趋势发展,集成开发环境(IDE)随之出现。IDE 集成了编译器、连接器、调试器等多种工具,支持代码的增量修改与处理,能够实现不同工具之间的信息交互,覆盖整个软件开发生命周期。针对这种需求,IDE 采用数据共享架构风格比较合适。IDE 强调交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现,针对这种需求,通常采用隐式调用架构风格比较合适。

某公司已经开发了一款针对某种嵌入式操作系统专用编程语言的 IDE,随着一种新的嵌入式操作系统上市并迅速占领市场,公司决定对 IDE 进行适应性改造,支持采用现有编程语言进行编程,生成符合新操作系统要求的运行代码,并能够在现有操作系统上模拟出新操作系统的运行环境,以支持代码调试工作。针对上述要求,为了使 IDE 能够生成符合新操作系统要求的运行代码,采用基于适配的架构设计策略比较合适;为了模拟新操作系统的运行环境,通常采用虚拟机架构风格比较合适。

分析:传统的编译器一般采用数据流架构风格,在这种架构中,每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。编译处理过程中,会分步将源代码一次一次的处理,最终形成目标代码,这与数据流架构风格相当吻合。但选项中有两个数据流风格的架构供选择,即:“管道-过滤器”和“顺序批处理”,这就需要进一步分析哪个更合适,由于题目中提到“程序源代码作为一个整体,依次在不同模块中进行传递”,而顺序批处理是强调把数据整体处理的,所以应选用顺序批处理风格。

IDE 是一种集成式的开发环境,在这种环境中,多种工具是围绕同一数据进行处理,这种情况适合用数据共享架构风格。

IDE 环境是一种交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现。在做一件事情时,同时触发一系列的行为,这是典型的隐式调用风格(事件驱动系统)。“使 IDE 能够生成符合新操作系统要求的运行代码”,这一要求是可以通过适配策略满足的,像设计模式中的适配器模式便是采用适配的方式,形成一致的接口。“模拟新操作系统的运行环境”是典型的虚拟机架构风格的特长。

二、以下关于软件架构风格与系统性能关系的叙述

1. 对于采用层次化架构风格的系统,划分的层次越多,系统的性能越差

2. 对于采用管道-过滤器架构风格的系统,可以通过引入过滤器的数据并发处理提高系统性能

3. 对于采用面向对象架构风格的系统,可以通过减少功能调用层次提高系统性能

4.对于采用过程调用架构风格的系统,将显式调用策略替换为隐式调用策略能够提高

系统的灵活性,但会降低系统的性能。

三、架构风格描述了一类软件架构的特征,它独立于实际问题,强调软件系统中通用的组织结构选择。垃圾回收机制是 Java 语言管理内存资源时常用的一种分析模式

架构风格往往是从全局的角度来考虑问题,他是一种独立于实际问题的通用组织结构。例如,常用的 B/S架构,在很多不同的系统中,都有应用。而设计模式着眼于解决某一特定局部问题,是一种局部解决方案的应用。例如,在很多的软件系统中,创建对象时,希望有统一的机制对这些对象的创建进行管理,所以出现了工厂模式,创建者模式等设计模式。而内存垃圾的回收机制也做成了一种设计模式。

四、编译器的主要工作过程是将以文本形式输入的代码逐步转化为各种形式,最终生成可执行代码。现代编译器主要关注编译过程和程序的中间表示,围绕程序的各种形态进行转化与处理。针对这种特征,现代编译器应该采用数据共享架构风格最为合适。

现代编译器主要关注编译过程和程序的中间表示,围绕程序的各种形态进行转化与处理。这种情况下,可以针对程序的各种形态构建数据库,通过中心数据库进行转换与处理。根据上述分析,数据共享风格最符合要求。

五、分布式系统开发中,通常需要将任务分配到不同的逻辑计算层。业务数据的综合计算分析任务属于应用逻辑层。

分布式系统开发分为五个逻辑计算层表示层实现用户界面;表示逻辑层为了生成数据表示而必须进行的处理任务,如输入数据编辑等;应用逻辑层包括为支持实际业务应用和规则所需的应用逻辑和处理过程,如信用检查、数据计算和分析等;数据处理层包括存储和访问数据库中的数据所需的应用逻辑和命令,如查询语句和存储过程等;数据层是数据库中实际存储的业务数据。

六、在客户机/服务器系统开发中,采用分布式数据结构时,应将数据层和数据处理层放置于服务器,应用逻辑层、表示逻辑层和表示层放置于客户机。

客户机/服务器(C/S)系统开发时可以采用不同的分布式计算架构:分布式表示架构是将表示层和表示逻辑层迁移到客户机,应用逻辑层、数据处理层和数据层仍保留在服务器上;分布式数据架构是将数据层和数据处理层放置于服务器,应用逻辑层、表示逻辑层和表示层放置于客户机;分布式数据和应用架构数据层和数据处理层放置在数据服务器上,应用逻辑层放置在应用服务器上,表示逻辑层和表示层放置在客户机。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年3月11日 上午8:00
下一篇 2023年3月11日 上午8:10

相关推荐

  • 无纸化办公会议设备

    无纸化办公会议设备:让会议变得更加高效、便捷和实时 随着科技的不断发展,无纸化办公会议设备已经成为了现代办公中不可或缺的一部分。无纸化办公会议设备不仅可以让人们避免纸张的使用,减少…

    科研百科 2024年8月30日
    35
  • 智能网联新生态巡礼|软件定义汽车!重庆造汽车如何“添智”(重庆智能汽车有限公司)

    开栏语 智汇八方,博采众长。一年一度“智博会”时间即将来临。 这是分享“智慧”成果、探索前沿科技、展望未来趋势的世界级盛会,这是提升产业能级、引领经济创新突围的中国方案。 制造业是…

    科研百科 2023年8月22日
    211
  • 项目管理经验

    项目管理经验:从入门到精通 作为一名项目经理,我深知项目管理经验的重要性。项目管理经验不仅是成功项目管理的基础,也是企业成功的关键因素之一。因此,我花了很多时间学习和研究项目管理经…

    科研百科 2024年9月4日
    36
  • 合同管理资格证

    合同管理资格证 随着商业竞争的加剧,合同管理变得越来越重要。合同管理资格证书是一种认证,表明具备合同管理经验和技能,能够更好地管理和执行合同。本文将介绍合同管理资格证的相关信息,并…

    科研百科 2024年8月26日
    39
  • 宿迁项目管理

    宿迁项目管理:城市化进程的引擎 近年来,宿迁市在推进城市化进程方面取得了显著的进展。作为江苏省的一个重要城市,宿迁市在经济发展、基础设施建设、城市发展等方面都具有较高的实力和潜力。…

    科研百科 2024年7月16日
    68
  • 考核中的笼统抽象、印象打分、平衡照顾,怎么破?(抽象和笼统的区别)

    来源:陕西网 考核中的笼统抽象、印象打分、平衡照顾,怎么破? ——安康高新区以高质量考核助推高质量发展 汪光林 安康国家高新区,作为全国14个连片特困地区和秦巴山区唯一的国家高新区…

    科研百科 2023年6月13日
    289
  • 总工会财务管理

    总工会财务管理 工会是中国共产党领导的职工群众组织,是维护职工合法权益、促进职工身心健康的重要力量。工会财务管理是工会工作的重要组成部分,其目的在于保证工会经费的合理使用,发挥工会…

    科研百科 2024年10月8日
    18
  • 殷跃平

    殷跃平是一个充满活力和激情的年轻人,他出生在一个普通的家庭,但是他从小就展现出非凡的天赋和才华。他在高中时期就表现出了对音乐和体育的热爱,并积极参加各种比赛和活动,成为了学校里的知…

    科研百科 2024年11月9日
    0
  • 2022工作计划进度管理表:自带甘特图进度显示,日历日期自动更新(甘特图进度计划时间怎么调整)

    很多人都会通过各种计划表格来管理日常工作生活,有的人通过手写、有的人通过电子表格,因为借助计划的工作方式可以最大程度的提高效率,减少盲目性…… 甘特图进度显示 因为甘特图的右侧是时…

    科研百科 2022年7月2日
    494
  • 用友U8+乐健科技 产业转型 管理转型

    【亿格用友U8 】 企业简介 乐健科技成立于1992年,拥有超过20年的PCB设计和制造经验,专注于研发,设计,试验和开发全 系列面向LED应用的热管理方案,成为行业中的佼佼者,世…

    科研百科 2022年7月18日
    239