❶ 把编译程序设计原理(第二版)高等教育出版社的课后答案给我发一份 可以吗
目录
第1章编译器概述
1.1为什么要学习编译技术
1.2编译器和解释器
1.3编译器的功能分解和组织结构
1.4编译器的伙伴
1.5编译器的复杂性
1.6编译器的设计与实现
1.7编译器的测试与维护
第2章一个微型编译器
2.1基础知识
2.2ToyL语言
2.3ToyL语言词法分析器
2.4ToyL语言语法分析器
2.5ToyL语言解释器
2.6ToyL语言编译器
第3章有穷自动机与词法分析
3.1词法分析基础
3.1.1词法分析器的功能
3.1.2单词识别
3.1.3词法分析的复杂性
3.1.4字符串
3.1.5保留字处理
3.1.6空格符、回车符、换行符
3.1.7括号类配对预检
3.1.8词法错误修正
3.1.9词法分析独立化的意义
3.2有穷自动机
3.2.1确定有穷自动机的定义
3.2.2确定有穷自动机的实现
3.2.3非确定有穷自动机
3.2.4NFA到DFA的转换
3.2.5确定有穷自动机的极小化
3.2.6自动机状态转换表的实现
3.3正则表达式
3.3.1正则符号串集
3.3.2正则表达式的定义
3.3.3正则表达式的局限性
3.3.4正则定义
3.3.5正则表达式到有穷自动机的转换
3.4词法分析器的构造
3.4.1用DFA人工构造词法分析器
3.4.2词法分析器的生成器Lex
练习
第4章文法与语法分析
4.1语法分析
4.1.1语法分析器的输入
4.1.2语法分析的任务
4.1.3语法分析方法分类
4.2文法和文法分析
4.2.1上下文无关文法和语言
4.2.2最左推导和最右推导
4.2.3语法分析树与二义性
4.2.4文法分析算法
4.2.5自顶向下方法概述
4.2.6自底向上方法概述
4.3递归下降法——自顶向下分析
4.3.1递归下降法原理
4.3.2消除公共前缀
4.3.3代入
4.3.4消除左递归
4.4LL分析方法——自顶向下分析
4.4.1LL(1)文法
4.4.2LL(1)分析表
4.4.3LL(1)分析的驱动器
4.4.4LL(1)中的If-Then-Else问题
4.4.5LL(1)分析器的自动生成器LLGen
4.4.6LL(1)分析法与递归下降法的比较
4.4.7正则文法
4.5LR方法——自底向上分析
4.5.1句柄
4.5.2活前缀
4.5.3归约活前缀识别器——LR(0)自动机
4.5.4LR(0)文法及其分析算法
4.5.5SLR(1)文法及其分析算法
4.5.6LR(1)文法
4.5.7LALR(1)文法
4.5.8二义性文法的处理
4.5.9另一种Shift-Rece分析技术:简单优先法
4.5.10LL(1)和LALR(1)方法比较
4.6LR分析器的生成器
4.6.1LALR分析器的生成器YACC
4.6.2LALR分析器的生成器LALRGen
4.7语法错误处理
4.7.1错误恢复和修复
4.7.2递归下降分析的错误恢复
4.7.3LL分析的错误恢复
4.7.4LR分析的错误恢复
练习
第5章语义分析
5.1语义分析基础
5.1.1语义分析内容
5.1.2标识符信息的内部表示
5.1.3类型信息的内部表示
5.1.4运行时值的表示
5.2符号表
5.2.1符号表查找技术
5.2.2符号表的局部化
5.2.3二叉式局部符号表
5.2.4散列式全局符号表
5.2.5嵌套式全局符号表
5.2.6符号表界面函数
5.3类型分析
5.3.1类型的等价性和相容性
5.3.2类型分析的总控算法
5.3.3类型名分析
5.3.4枚举类型分析
5.3.5数组类型分析
5.3.6记录类型分析
5.3.7联合类型分析
5.3.8指针类型分析
5.3.9递归类型分析
5.4声明的语义分析
5.4.1声明的语法结构
5.4.2标号声明部分的语义分析
5.4.3常量声明部分的语义分析
5.4.4类型声明部分的语义分析
5.4.5变量声明部分的语义分析
5.4.6过程、函数声明的语义分析
5.5执行体的语义分析
5.5.1执行体的语义分析
5.5.2带标号语句和转向语句的语义分析
5.5.3赋值语句的语义分析
5.5.4条件语句的语义分析
5.5.5while循环语句的语义分析
5.5.6for循环语句的语义分析
5.5.7过程调用语句的语义分析
5.5.8表达式的语义分析
5.5.9变量的语义分析
练习
第6章运行时的存储环境
6.1运行时的存储空间结构与分配
6.1.1运行时的存储空间基本结构
6.1.2静态区的存储分配
6.1.3栈区的存储分配
6.1.4堆区的存储分配
6.1.5堆区空间管理
6.2过程活动记录与栈区组织结构
6.2.1过程活动记录
6.2.2活动记录的填写
6.2.3栈区组织结构——AR链
6.3运行时的变量访问环境
6.3.1可访问活动记录
6.3.2局部Display表方法
6.3.3静态链方法
6.3.4全局Display表方法和寄存器方法
6.3.5无嵌套时的AR及访问环境
6.4分程序和动态数组空间
6.4.1无动态数组时的分程序空间
6.4.2动态数组空间
练习
第7章面向语法的语义描述
7.1动作文法
7.1.1动作文法定义
7.1.2动作文法的递归实现
7.1.3动作文法的LL实现
7.1.4动作文法的LR实现
7.2动作文法应用
7.2.1用动作文法描述表达式计算
7.2.2用动作文法描述表达式抽象树的构造
7.2.3用动作文法描述语句抽象树的构造
7.3抽象动作文法及其应用
7.3.1抽象变量
7.3.2抽象动作文法
7.3.3栈式LL动作文法驱动器
7.3.4抽象动作文法到栈式LL动作文法的转换
7.3.5栈式LR动作文法驱动器
7.3.6抽象动作文法到栈式LR动作文法的转换
7.4属性文法
7.4.1属性文法定义
7.4.2属性语法树和属性依赖图
7.4.3计算顺序
7.4.4属性值的计算方法
7.4.5拷贝型属性文法
7.5属性文法在编译器设计中的应用
7.5.1类型树的属性文法描述
7.5.2表达式中间代码的属性文法描述
7.5.3变量中间代码的属性文法描述
7.5.4语句中间代码的属性文法描述
7.5.5正则表达式到自动机转换的属性文法描述
7.6S-属性文法及其属性计算
7.6.1S-属性文法
7.6.2S-属性文法的递归实现
7.6.3S-属性文法的LR实现
7.7L-属性文法及其属性计算
7.7.1L-属性文法
7.7.2L-属性文法的递归实现
7.7.3L-属性文法的LR(1)实现
7.8语义分析器的自动生成系统
7.8.1YACC
7.8.2LALRGen
7.8.3Accent系统
练习
第8章中间代码生成
8.1中间代码
8.1.1中间代码的种类
8.1.2后缀式中间代码
8.1.3三地址中间代码
8.1.4抽象语法树和无环有向图
8.1.5多元式中间代码
8.1.6中间代码分量ARG结构
8.2表达式的中间代码生成
8.2.1表达式的语义信息
8.2.2表达式的中间代码
8.2.3变量的中间代码
8.2.4表达式的中间代码生成
8.2.5变量的中间代码生成
8.2.6布尔表达式的短路中间代码
8.3原子语句的中间代码生成
8.3.1输入/输出语句的中间代码生成
8.3.2goto语句和标号定位语句的中间代码生成
8.3.3return语句的中间代码生成
8.3.4赋值语句的中间代码生成
8.3.5函数(过程)调用的中间代码生成
8.4结构语句的中间代码生成
8.4.1条件语句的中间代码生成
8.4.2while语句的中间代码生成
8.4.3repeat语句的中间代码生成
8.4.4for语句的中间代码生成
8.4.5case语句的中间代码生成
8.4.6函数声明的中间代码生成
练习
第9章中间代码优化
9.1引言
9.1.1优化的目标和要求
9.1.2优化的必要性
9.1.3优化的内容
9.1.4局部优化和全局优化
9.1.5基本块和程序流图
9.2常表达式优化
9.2.1常表达式的局部优化
9.2.2基于常量定值分析的常表达式全局优化
9.2.3常量定值分析
9.3公共表达式优化
9.3.1基于相似性的公共表达式局部优化
9.3.2基于值编码的公共表达式局部优化
9.3.3基于活跃代码分析的公共表达式全局优化
9.3.4活跃运算代码分析
9.4程序流图循环
9.4.1循环的基本概念
9.4.2支撑结点
9.4.3自然循环
9.4.4可归约程序流图
9.4.5基于文本的循环及其处理
9.5循环不变代码外提
9.5.1代码外提的基本概念
9.5.2循环不变代码的判定
9.5.3循环不变代码外提的条件
9.5.4基于文本循环和定值表的不变代码外提
9.5.5一种简单的外提优化方案
9.5.6别名分析
9.5.7过程与函数的副作用分析
9.6循环内归纳表达式的优化
9.6.1归纳变量
9.6.2归纳变量计算的优化算法原理
练习
第10章目标代码生成
10.1目标代码
10.1.1虚拟机代码
10.1.2目标机代码
10.1.3窥孔优化
10.2临时变量
10.2.1临时变量的特点
10.2.2临时变量的存储空间
10.2.3临时变量的存储分配
10.2.4变量状态描述
10.3寄存器
10.3.1寄存器分类及其使用准则
10.3.2寄存器分配单位
10.3.3寄存器状态描述
10.3.4寄存器分配算法
10.4基于三地址中间代码的目标代码生成
10.4.1目标地址生成
10.4.2间接目标地址的转换
10.4.3表达式中间代码的目标代码生成
10.4.4赋值中间代码的目标代码生成
10.4.5其他寄存器分配法
10.4.6标号和goto语句中间代码的目标代码生成
10.4.7return中间代码的目标代码生成
10.4.8变量中间代码的目标代码生成
10.4.9函数调用中间代码的目标代码生成
10.5基于AST的代码生成
10.5.1三地址中间代码到AST的转换
10.5.2标记需用寄存器个数
10.5.3从带寄存器个数标记的AST生成代码
10.6基于DAG的代码生成
10.6.1从AST到DAG的转换
10.6.2DAG排序和虚寄存器
10.6.3从带序号和虚寄存器标记的DAG生成代码
10.7代码生成器的自动生成
10.7.1代码生成器的自动化
10.7.2基于指令模板匹配的代码生成技术
10.7.3基于语法分析的代码生成技术
练习
第11章对象式语言的实现
11.1引言
11.2SOOL语法
11.2.1程序
11.2.2分程序
11.2.3类声明
11.2.4类型
11.2.5变量声明
11.2.6函数声明和方法声明
11.2.7语句
11.2.8变量
11.2.9表达式
11.2.10程序示例
11.3SOOL语义
11.3.1声明的作用域
11.3.2Class声明的语义
11.3.3语句的语义
11.4SOOL语义分析
11.4.1标识符的符号表项
11.4.2符号表结构
11.4.3符号表的局部化
11.5SOOL目标代码
11.5.1对象空间
11.5.2当前对象——self
11.5.3活动记录
11.5.4成员变量的目标地址
11.5.5表达式的目标代码
11.5.6Offset原理
11.5.7类的多态性
11.5.8目标代码区
11.5.9方法的动态绑定
11.5.10快速动态绑定目标代码
主要参考文献
❷ 求微软公司的历史,谢谢
微软
微软公司是世界PC机软件开发的先导,比尔·盖茨是它的核心。微软公司1981年为IBM-PC机开发的操作系统软件MS-DOS曾用在数以亿计的IBM-PC机及其兼容机上。但随着微软公司的日益壮大,Microsoft与IBM已在许多方面成为竞争对手。1991年,IBM公司和苹果公司解除了与微软公司的合作关系,但IBM与微软的合作关系从未间断过,两个公司保持着既竞争又合作的复杂关系。微软公司的产品包括文件系统软件(MS-DOS和Xenix)、操作环境软件(窗口系统Windows系列)、应用软件MS-Office等、多媒体及计算机游戏、有关计算机的书籍以及CDROM产品。1992年,公司买进Fox公司,迈进了数据库软件市场。
1975年,19岁的比尔·盖茨从哈佛大学退学,和他的高中校友保罗·艾伦一起卖BASIC语言程序编写本。当盖茨还在哈佛大学读书时,他们曾为MITS公司的Altair编制语言。后来,盖茨和艾伦搬到阿尔伯克基,并在当地一家旅馆房间里创建了微软公司。1979年,MITS公司关闭,微软公司以修改BASIC程序为主要业务继续发展。
1977年,微软公司搬到西雅图的贝尔维尤(雷德蒙德),在那里开发PC机编程软件。1980年,IBM公司选中微软公司为其新PC机编写关键的操作系统软件,这是公司发展中的一个重大转折点。由于时间紧迫,程序复杂,微软公司以5万美元的价格从西雅图的一位程序编制者帕特森手中买下了一个操作系统的使用权,再把它改写为磁盘操作系统软件(MS-DOS)。公司目前在60多个国家设有分支办公室,全世界雇员人数接近44,000人。
IBM-PC机的普及使MS-DOS取得了巨大的成功,因为其他PC制造者都希望与IBM兼容。MS-DOS在很多家公司被特许使用,因此80年代,它成了PC机的标准操作系统。到1984年,微软公司的销售额超过1亿美元。随后,微软公司继续为IBM、苹果公司以及无线电器材公司的计算机开发软件,但在91年后,由于利益的冲突,IBM、苹果公司已经与Microsoft反目。1983年,保罗·艾伦患霍奇金氏病离开微软公司,后来成立了自己的公司。艾伦拥有微软公司15%的股份,至今仍列席董事会。1986年,公司转为公营。盖茨保留公司45%的股权,这使其成为1987年PC产业中的第一位亿万富翁。1996年,他的个人资产总值已超过180亿美元。1997年,则达到了340亿美元,98年超过了500亿大关,成为理所当然的全球首富。
微软的拳头产品Windows98/NT/2000/Me/XP/Server2003成功地占有了从PC机到商用工作站甚至服务器的广阔市场,为微软公司带来了丰厚的利润:公司在Internet软件方面也是后来居上,抢占了大量的市场份额。在IT软件行业流传着这样一句告戒:“永远不要去做微软想做的事情”。可见,微软的巨大潜力已经渗透到了软件界的方方面面,简直是无孔不入,而且是所向披靡。微软的巨大影响已经对软件同行构成了极大的压力,也把自己推上了反垄断法的被告位置。连多年来可靠的合作伙伴Intel也与之反目,对薄公堂。2001年9月,鉴于经济低迷,美国政府有意重振美国信息产业,拒绝拆分微软。至此,诉微软反垄断法案告一段落。
微软的组织结构支持公司包括以下核心业务组:
个人服务组(PSG):由集团副总裁 Bob Muglia 领导, 致力于为个人用户和商业用户提供更容易的在线连接,并且为各种各样的设备提供软件服务。PSG 包含了微软的个人.NET倡议、服务平台部、移 动组、MSN的互联网访问服务、用户设备组以及用户界面平台部。
MSN 和个人服务业务组:由副总裁Yusuf Mehdi 领导,负责网络程序开发、业务发展以及MSN和微软其它服务世界范围内的市场和销售,包括:MSN eShop, MSN Carpoint, MSN HomeAdvisor, the MSNBC venture, Slate 和 MSNTV平台组,由集团副总裁Jim Allchin 领导,负责在各个方面不断对Windows平台做出改进 –例如把存储、通讯、消息通知、共享图象及听音乐等变为Windows经历的自然扩展。此外,本组包括.NET企业服务器组、开发工具部和Windows数字媒体部。
办公和商务服务组:由集团副总裁Jeff Raikes 领导,负责开发提高生产力和商业流程的应用和服务。工作包括将功能完善且性能强大的Microsoft Office逐步演化为以服务于基础的产品。除Office部门之外,商用工具部门,包括bCentral和Great Plains的商用应用程序部门都将属于该部门。
全球销售、市场和服务组:由集团副总裁Orlando Ayala 领导,集成了微软的销售和服务伙伴,以满足世界范围内微软用户的需要。这些用户包括:企业用户、中小型组织、教育机构、程序开发人员和个人用户。此外,本组包括微软产品支持服务、网络解决方案组、企业伙伴组、市场营销组织和微软全球三大地区的业务组织。
微软研究院 (MSR):由资深副总裁Rick Rashid 领导,负责对今天或明天的计算课题提出创造性的建议和解决方案,使计算机变得更加易于使用。同时负责为下一代的硬件产品设计软件,改进软件设计流程和研究计算机科学的数学基础。关于MSR更详细的信息可参见 Microsoft Research Web page。
运营组:由总裁和首席运营官Rick Belluzzo 领导,负责管理商业运作和全部的商业计划。包括公司的财政、行政管理、人力资源和信息技术部门。
微软公司(NASDAQ:MSFT, HKEx: 4338) 是全球最大的电脑软件提供商,总部设在华盛顿州的雷德蒙市(Redmond,大西雅图的市郊)。公司于1975年由比尔·盖茨和保罗·艾伦成立。公司最初以“Micro-soft”的名称(意思为“微型软件”)发展和销售BASIC解释器。最初的总部是新墨西哥州的阿尔伯克基。史蒂夫·巴尔默(Steve Ballmer)是现在的首席执行官。
使得微软如此令人瞩目的原因有以下一些:
它是全球最大的电脑软件公司
在经济学,它是一个惊人的网络外部性的例子
它在操作系统和办公软件方面扮演着事实上的垄断者地位
它使得它的创立者跻身于世界上最富有的人之列;特别是掌门人比尔·盖茨多年来位居世界首富
任何公开买卖公司中,它有最大的公司市值
多年来它官司不断,和业界其他公司的明争暗斗已经成为IT文化的一部分。
微软的产品
微软生产的软件产品包括了很多的种类:
Windows - 称为“视窗”的图形操作系统;它有很多版本。目前桌上版最新版本是Windows XP,服务器最新版本是Windows Server 2003。Windows几乎预装在所有的IBM兼容的个人电脑上。请参看Microsoft Windows的历史获取更多详细资料。
MS-DOS - 微软公司的早期产品,它是一个命令行界面。早期的Windows版本要在MS-DOS下运行,但是到了Windows NT以及以后的产品已经可以脱离MS-DOS运行了,但基于用户因软硬件在 Windows NT 不能正常运作,微软同时间继续推出Windows 95, Windows 98, Windows Me 在MS-DOS下运行的过渡产品。
Microsoft Office - 它是微软公司的办公软件套件,根据版本不同可能包括Word(文字处理)、Excel(试算表)、Access(桌面数据库)、PowerPoint(幻灯片制作)、Outlook(个人邮件和日程管理)、Project(项目管理)和Publisher(电子排版)等软件。微软也为Apple Macintosh生产使用于苹果电脑的版本。
Internet Explorer - 它是微软的网页浏览器。它是目前世界上使用最广泛的一种浏览器,从Windows 95开始,被设置为微软各版本的Windows的默认浏览器。它在Apple Macintosh上也可以使用。微软投资了四亿美元来把这种浏览器预装在苹果机上。
Microsoft FrontPage - 它是一款所见即所得的网页编辑软件。
Windows Media Player - 它是一个用于播放音频和视频的程序。
微软也生产一系列参考产品,例如网络全书和地图册,使用Encarta的名称。
微软还开发用于应用系统开发的集成开发环境,命名为Microsoft Visual Studio。目前已发布用于.NET环境编程的相应开发工具Visual Studio .NET。
游戏
帝国时代 (Age of Empires)
微软模拟飞行 (Microsoft Flight Simulator)
微软模拟火车
微软模拟货车
Halo(Halo)
halo2(Halo2)
注:《光环》为Microsoft旗下工作室开发.
“生态体系”
微软公司试图在其产品周围建立“生态体系”,以为其产品以及品牌增值。
网络产品
1990年代中期,微软开始将其产品线扩张到计算机网络领域。微软在1995年8月24日推出了在线服务MSN(Microsoft Network,微软网络)。MSN是美国在线的直接竞争对手,也是微软其他网络产品的主打品牌。
1996年,微软以及美国的广播业巨擎NBC(国家广播公司)联合创立了MSNBC,一个综合性的24小时新闻频道以及在线新闻服务供应商。
1997年末,微软收购了Hotmail,最早以及最受欢迎的webmail服务商。Hotmail被重新命名为MSN Hotmail,并成为.NET Passport,一个综合登入服务系统的平台。
MSN Messenger是一个即时信息客户程序,由微软在1999年推出,是美国在线的AOL Instant Messager(AIM)及ICQ的主要竞争对手。
培训
微软创立了多所培训中心,旨在训练出一批低成本、只精通微软产品的雇员。最着名的就是MCSE考核(全称“微软认证系统工程师”)。虽然MCSE确实认证对微软产品的熟悉程度,它却并不是一个工程师的考核。一些苛刻的评论人员将MCSE称作“必须咨询那些有经验的人”(“Must Consult Someone Experienced”)。
硬件产品
虽然微软总体上是一家软件公司,它也生产一些电脑硬件产品,通常用来支援其特殊的软件商品策略:
早期的一个例子是微软鼠标,用来鼓励更多用户使用微软操作系统的图形用户界面(GUI)。由于使用GUI而不用到鼠标是很罕见的,因此鼠标的流行会帮助更多用户使用Windows。微软确立了IntelliMouse(中键带滚轮的鼠标)鼠标标准,新增的滚轮方便了用户在浏览网页时上下翻页。
微软还售卖游戏杆等游戏硬件产品。
公司还购买了互联网设备公司WebTV,以支援其MSN互联网服务。
2001年公司推出的Xbox游戏机标志着公司开始进入价值上百亿美元的游戏终端市场,这个市场之前一直由索尼公司(Sony)和任天堂(Nintendo)两家公司主导。
微软历史
微软公司创立于1975年,公司创立初期以销售BASIC解译器为主。当时的计算机爱好者也常常自行开发小型的BASIC解译器,并免费分发。然而,由于微软是少数几个BASIC解译器的商业生产商,很多家庭计算机生产商在其系统中采用微软的BASIC解译器。随着微软BASIC解译器的快速成长,制造商开始采用微软BASIC的语法以及其他功能以确保与现有的微软产品兼容。正是由于这种循环,微软BASIC逐渐成为公认的市场标准,公司也逐渐占领了整个市场。此后,他们曾经(不太成功地)试图以设计MSX家庭计算机标准来进入家用计算机市场。
1983年,微软与IBM签订合同,为IBM PC提供BASIC解译器,之后微软又向IBM的机器提供操作系统。微软之后购买了Tim Patterson的QDOS使用权,在进行部分改写后通过IBM向市场发售,将其命名为Microsoft DOS。MS-DOS获得了巨大的成功。
PC硬件上运行的程序在技术上并不一定比其所取代的大型程序要好,但它有两项无法超越的优点:它为终端用户提供了更大的自由,而且价格更低廉。微软的成功也是个人电脑发展的序幕。
微软开发过多种软件产品,包括了:
操作系统
程序设计语言的编译器以及解译器
文字处理器、数据表等办公软件
互联网客户程序,例如网页浏览器和电邮客户端等
这些产品中有些十分成功,有些则不太成功。从中人们发现了一个规律:虽然微软的产品的早期版本往往漏洞百出,功能匮乏,并且要比其竞争对手的产品差,之后的版本却会快速进步,并且广受欢迎。今天,微软公司的很多产品在其不同的领域主宰市场。
微软花了大量的精力在市场营销以及产品开发中的可重用工程,并且试图将其产品进一步组合,以提供用户一贯的开发环境。
微软也试图将Windows这个着名品牌扩展到其他领域,例如用于PDA的Windows CE以及“支持Windows”的Smartphone产品。
公众看法
很长一段时间内,微软被广泛认可为一个计算机软件市场上的“乖小孩”,提供低廉的软件以取代原先价格高昂的主流UNIX产品。微软也因赚入大笔钞票而受到钦佩。
然而,即使是在早期,微软被指责故意将其MS-DOS与竞争对手生产的Lotus 1-2-3数据表无法兼容。到90年代,微软是“坏小孩”的看法日益增多。主要的批评意见是他们利用在桌上电脑市场上的优势不公平地剥削用户。
最近几年,有人指责微软涉嫌一系列合法性受怀疑的商业行为。
垄断问题
微软的Windows产品有效地垄断了桌面电脑操作系统市场。那些持上述看法的人指出,几乎所有市场上出售的个人电脑都预装有微软的Windows操作系统。
一些观察家声称,微软作为一个垄断企业令其竞争对手处境窘困:
一方面,竞争对手不愿意承认微软的垄断地位。因为在一个被垄断的市场,只有一家产品或服务的提供商。因此对竞争对手而言,将微软称为垄断者会将自己置于一个失败者的境地:这样作等于是否定了自己的存在,或否定了自己能够生存、竞争的能力。
另一方面,竞争对手又希望将微软比作垄断企业,因为这样做会给自己带来好处。首先,这有可能导致市场管理者(政府)的介入。其次,被看作是“落水狗”的微软竞争对手有可能在公共关系上取胜,以刺激销售。
无论微软是否是垄断企业,我们可以肯定的是:
在多数微型电脑软件市场,微软是主导企业。
这种主导引发很多的不满。
这种不满不仅仅只存在于竞争对手中间。
微软垄断地位的滥用
有人批评认为微软试图利用其在桌上计算机操作系统市场上的垄断地位来扩大其在其他市场上的市场份额,例如网页网页浏览器(Internet Explorer),服务器操作系统(Windows NT),办公软件(Microsoft Office),多媒体播放软件(Windows Media Player)。
在微软将Internet Explorer与Windows操作系统捆绑销售后,微软在浏览器市场获得了非常大的份额。正是部分由于这种行为,微软被美国联邦法庭裁定滥用其在美国的操作系统市场的主导优势。(详情参见微软反垄断案)。
在所有这些指控中,微软以满足客户需求为由为自己辩护。
也有人批评微软的“包围再扩展”(embrace and extend)的策略。微软试图在开放、已确立的标准之上加入专利功能,以最终达到利用其市场优势来控制“扩展”的标准。有些人将这种策略称之为“包围、扩展再毁灭”(embrace, extend and extinguish)。
安全性
2002年,微软的多项网络以及互联网相关的产品在多次出现安全漏洞后被广受讨论。一些恶意的程序员不断利用微软软件的安全漏洞搞破坏,例如通过互联网创造及发布能够消耗系统资源或破坏数据的蠕虫、病毒以及特洛伊木马。这些破坏行为一般的目标是微软的Outlook以及Outlook Express电邮客户程序,Internet Information Server(IIS)网页服务器,以及SQL Server数据库服务器软件。微软辩解说由于其在互联网软件市场上的领导地位,自然而然的微软的产品会遭到更多的攻击,因为这些微软产品被广泛使用。而有人则反驳说这些攻击也对准那些微软并不占优势的产品,显示微软的产品要比其竞争对手的产品在安全性上要低一筹。
在一些案例中,微软的产品为了让新手更容易使用、设置往往导致了这些蠕虫及病毒的散播。例如,微软的Windows操作系统自1995年起就自动隐藏文件后缀名(档案副档名),这样那些恶意攻击者往往就能够让email收信人打开一些看起来普通却十分危险的附件(最近版本的Outlook以及Outlook Express禁止接收危险的文件类型,这样用户便无法打开)。批评指出微软是在用软件的易用性交换安全性。
盖茨在2002年1月启动了可信赖计算计划(Trustworthy Computing Initiative)。他将其形容为一个长期的、全公司性的计划,以寻找并修正微软产品中的安全以及泄漏隐私方面的漏洞。在该计划下,公司会重新评估和设计原先的一些规范及过程,也延迟了Microsoft Windows Server 2003的上市时间。对可信赖计算计划的反应各不相同,有观察家表扬微软对安全问题的重视,但也提醒公司还有很多工作要做。
微软的政治影响力
微软对这些法律威胁以及公众看法的反应就是紧凑的政治游说活动以及撒入上百万美元的政治捐款。根据政治反应中心(Center for Responsive Politics, opensecrets.org)网站的数据,微软在上一次的美国联邦选举的政治捐款中,43%给了民主党,57%给了共和党。
微软产品的优点
微软产品的主要优点是它的普遍性,让用户从所谓的网络效应中得益。例如,Microsoft Office的广泛使用使得微软Office文件成为文档处理格式的标准,这样几乎所有的商业用户都离不开Microsoft Office。
微软的软件也被设计成容易设置,允许企业雇佣低廉、水准并不太高的系统管理员。微软的支持者认为这样做的结果是下降了的“拥有总成本”。
微软的软件对IT经理们在采购软件系统时也代表了“安全”的选择,因为微软软件的普遍性让他们能够说他们跟随的是被广泛接受的选择。这对那些专业知识不足的IT经理来说是一个特别吸引人的好处。
微软产品的缺点
微软的产品十分倚赖软件的重用。虽然这样做对快速软件开发是十分有效的,它却导致了不同软件包之间的复杂倚赖关系。这可能导致的后果是,举个例子,当微软的浏览器程序崩溃时,会导致操作系统的GUI同样崩溃。
同样的倚赖关系也意味着大多数微软软件的资源能够在其他微软的产品上使用。也就是说,大多数程序可以运行其他程序,即使是在不应当发生类似情况时也是如此。例如,嵌入在电子邮件的文档和HTML中的宏可以运行程序,允许攻击者控制用户的电脑。微软在安全问题上的立场就是“不是禁止就是允许”(permitted unless forbidden)。
这些问题从专门攻击微软程序的蠕虫以及病毒的泛滥中就可见一二。
上面所提到的关于允许雇佣廉价却未有良好训练的系统管理员的优点有可能导致以下问题:
更大的不可靠性,意味着你需要雇佣更多的这类管理员;
有可能导致安全漏洞,因为不管使用什么操作系统,只有受良好训练的系统管理员才可能提升系统安全性。
微软的批评者指出运行微软的产品需要花费更大代价,因为微软软件的用户事实上并不拥有他们所使用的软件:这对微软的商业模式是十分重要的。
微软与自由软件的关系
微软将自由软件看作是它可能的主要竞争对手,特别是Linux。从万圣节文件(Halloween documents)中我们可以看到,微软已经对自由软件以及开放源代码软件采取了“包围、扩展、毁灭”的策略。
为了在桌上电脑市场上建立其领导地位,微软冒着失去低廉价格以及更多自由度——这正是个人电脑快速发展以及微软自身成功的重要因素——风险。单就价格层面而言,微软很难与自由软件相抗衡。很多相信微软并没有赋予他们选择自由的用户已经从自由软件那里找到了他们所渴望的自由已经开放标准。
传统的微软策略,例如购买竞争对手,或者FUD策略,对于自由软件而言毫无作用。因为自由软件无法被收购或控制,自由软件即使失去了创造它的公司也依然能够生存。
微软首席行政执行官史蒂夫·巴尔默已经将Linux称作一个“坚强的竞争力量……它是非传统的,自由的,而且很便宜。我们必须告诉人们,为什么他们所付(给我们的)其实物超所值。我们的产品曾经都很便宜。我们要比Novell,甲骨文都要便宜。但这次我们不能这样办。”(CRN.com报道,2002年6月17日)
巴尔默在一个微软伙伴的会议上说:“我们曾经十分自豪,自己提供最便宜的产品——我们的价格最低,提供的内容却最多,不论是Novell,Lotus还是其他任何人都比不过我们。但现在我们面临的,是一个独特的竞争对手,Linux。对我们这样的公司而言,这实在是一种新的思考方式。”(VARbusiness 2002年7月15日报道)
对于那些预装Linux的低廉个人电脑,微软的反应是他们不会降低Windows的销售价格。一些观察家指出,这种拒绝进行价格战的行为正是垄断企业的特点。
微软亚洲研究院
1998年11月5日,微软公司在北京成立微软中国研究院, 并于2001年11月1日将其正式更名为微软亚洲研究院。微软亚洲研究院是微软公司在海外开设的第二家基础科研机构,也是亚洲地区唯一的基础研究机构。
❸ 如何把两个有序链表合并为一个有序链表(递增)
设链表结点结构为Node(int data, Node *next),typedef Node List,链表均带表头结点。
思路是:把list1中的元素看成是集合1,把list2中的元素看成是集合2,把list1头结点(即list1结点)从集合1中脱离下来看成是目标集合的头结点,目标集合开始时是空集,并用last指针始终指向该集合的尾部,然后每次从集合1和集合2中取各自的第一个元素进行比较,较小者从相应集合里脱离,插入到目标集合list1的尾部即last的末尾,并将刚插入的元素作为目标集合list1的新的last,直到集合1为空或集合2为空时结束,最后将未空的集合中的剩余元素链接到last后面即可。
❹ 计算机分为哪两大类它们各自的作用是什么
计算机按照其用途分为通用计算机和专用计算机。
按照1989年由IEEE科学巨型机委员会提出的运算速度分类法,可分为巨型机、大型机、小型机、工作站和微型计算机。
按照所处理的数据类型可分为模拟计算机、数字计算机和混合型计算机等等。
1.大型通用机
这类计算机具有极强的综合处理能力和极大的性能覆盖面。在一台大型机中可以使用几十台微机或微机芯片,用以完成特定的操作。可同时支持上万个用户,可支持几十个大型数据库。主要应用在政府部门、银行、大公司、大企业等。
2.巨型机
巨型机有极高的速度、极大的容量。用于国防尖端技术、空间技术、大范围长期性天气预报、石油勘探等方面。目前这类机器的运算速度可达每秒百亿次。这类计算机在技术上朝两个方向发展:一是开发高性能器件,特别是缩短时钟周期,提高单机性能。
二是采用多处理器结构,构成超并行计算机,通常由100台以上的处理器组成超并行巨型计算机系统,它们同时解算一个课题,来达到高速运算的目的。
3.小型机
小型机的机器规模小、结构简单、设计试制周期短,便于及时采用先进工艺技术,软件开发成本低,易于操作维护。它们己广泛应用于工业自动控制、大型分析仪器、测量设备、企业管理、大学和科研机构等,也可以作为大型与巨型计算机系统的辅助计算机。近年来,小型机的发展也引人注目。特别是RISC (Reced Instruction Set Computer缩减指令系统计算机)体系结构,顾名思义是指令系统简化、缩小了的计算机,而过去的计算机则统属于CISC (复杂指令系统计算机)。
RISC的思想是把那些很少使用的复杂指令用子程序来取代,将整个指令系统限制在数量甚少的基本指令范围内,并且绝大多数指令的执行都只占一个时钟周期,甚至更少,优化编译器,从而提高机器的整体性能。
4.微型机
微型机技术在近10年内发展速度迅猛,平均每2~3个月就有新产品出现,1~2年产品就更新换代一次。平均每两年芯片的集成度可提高一倍,性能提高一倍,价格降低一半。
目前还有加快的趋势。微型机已经应用于办公自动化、数据库管理、图像识别、语音识别、专家系统,多媒体技术等领域,并且开始成为城镇家庭的一种常规电器。
❺ 计算机最初是什么样的
1946年2月14日,世界上第一台电脑ENIAC在美国宾夕法尼亚大学诞生。
第二次世界大战期间,美国军方要求宾州大学莫奇来(Mauchly)博士和他的
学生爱克特(Eckert)设计以真空管取代继电器的"电子化"电脑--ENIAC
(),电子数字积分器与计
算器),目的是用来计算炮弹弹道。这部机器使用了18800个真空管,长50英
尺,宽30英尺,占地1500平方英尺,重达30吨(大约是一间半的教室大,六只大
象重)。它的计算速度快,每秒可从事5000次的加法运算,运作了九年之久。由
于吃电很凶,据传ENIAC每次一开机,整个费城西区的电灯都为之黯然失色。
另外,真空管的损耗率相当高,几乎每15分钟就可能烧掉一支真空管,操作
人员须花15分钟以上的时间才能找出坏掉的管子,使用上极不方便。曾有人调侃
道:“只要那部机器可以连续运转五天,而没有一只真空管烧掉,发明人就要额
手称庆了。
两位发明人莫奇来和爱克特
ENIAC使用的电子管
❻ 谁有小型编译器的源代码,要求见里面
好像有个叫做lex和yacc的东西,可以实现一个编译器的功能。
应该能找到开源的
❼ C语言中的“%6.2f ”是什么意思
C语言中的“%6.2f ”的意思是:
%6.2f的格式含义是,数字整体长度包括小数点为6位,保留两位小数。但当实际长度大于格式定义的位数时以实际为准,因此输出是12345678.12;
%f用来输入实数,可以用小数形式或指数形式输入。
❽ 购买毕业设计关于VC++制作的小型编译器的设计与实现。能制作的大侠们联系我。QQ60524717
我发, hi联系,email?
❾ 计算机大类包括哪些专业
1.信息科学—信息科学是指以信息为主要研究对象,以信息的运动规律和应用方法为主要研究内容,以计算机等技术为主要研究工具,以扩展人类的信息功能为主要目标的一门新兴的综合性学科。信息科学由信息论、控制论、计算机科学、仿生学、系统工程与人工智能等学科互相渗透、互相结合而形成的。
2.软件工程 –(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏,app等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
3.信息系统–所谓MIS(信息系统--Management Information System)系统 ,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。
它是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,
建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。目前,企业的计算机网络已成为企业进行技术改造及提高企业管理水平的重要手段。
4.计算机工程–(也称为电子和计算机工程或计算机系统工程)是一门学科,结合内容都电气工程和计算机科学。计算机工程师正电气工程师有更多的培训领域的软件设计和硬件,软件一体化。反过来,他们注重减少对电力电子学和物理学。
电脑工程师都参与了许多方面的计算,从设计的个别处理器,个人电脑,和超级计算机,以电路设计。这一工程的许多子系统监控机动车辆。
5.信息安全 –本专业是计算机、通信、数学、物理、法律、管理等学科的交叉学科,主要研究确保信息安全的科学与技术。
❿ 编译原理实践:小型编译器实现。带程序设计实验报告。 谢谢啊。 邮箱:[email protected]!!
11婶。。。