与软件描述语言相比 vhdl有什么特点
软件是编程语言,编写出的代码叫程序,是按照一定的程式顺序执行的;而硬件则采用描述语言,描述的是硬件的结构或者信息的流向,编写出的代码不叫程序,因为一个系统中的硬件是同时工作的,是没有顺序的。
因此,通常我们把用HDL编写的叫做“描述”或者直接就叫“源代码”。
VHDL是一种硬件描述语言,是用于进行硬件描述的语言,在其结构体内的语句,都是并行语句,是没有书写顺序的。
软件体系结构描述语言与程序设计语言有什么区别
从软件体系结构研究和应用的现状来看,当前对软件体系结构的描述,在很大程度上来说还停留在非形式化的基础上,很大程度上依赖于软件设计师个人的经验和技巧。
在目前通用的软件开发方法中,其对软件体系结构的描述通常是采用非形式化的图和文本,不能描述系统期望的存在于构件之间的接口,更不能描述不同的组成系统的组合关系的意义。
这种描述方法难以被开发人员理解,难以适于进行形式化分析和模拟,缺乏相应的支持工具帮助设计师完成设计工作,更不能用来分析其一致性和完整性等特性。
因此,形式化的、规范化的体系结构描述对于体系结构的设计和理解都是非常重要的。
然而,要实现体系结构设计、描述等的形式化并不是一蹴而就的,我们必须先经历一个非形式化的过程,在非形式化的发展过程中逐步提取一些形式化的标记和符号,然后将它们标准化,从而完成体系结构设计、描述等的形式化。
本文首先简单地介绍传统的软件体系结构描述方法,然后再比较详细地讨论软件体系结构描述语言。
一、传统软件体系结构描述方法1、图形表达工具对于软件体系结构的描述和表达,一种简洁易懂且使用广泛的方法是采用由矩形框和有向线段组合而成的图形表达工具。
在这种方法中,矩形框代表抽象构件,框内标注的文字为抽象构件的名称,有向线段代表辅助各构件进行通讯、控制或关联的连接件。
例如:图1表示某软件辅助理解和测试工具的部分体系结构描述。
目前,这种图形表达工具在软件设计中占据着主导地位。
尽管由于在术语和表达语义上存在着一些不规范和不精确,而使得以矩形框与线段为基础的传统图形表达方法在不同系统和不同文档之间有着许多不一致甚至矛盾,但该方法仍然以其简洁易用的特点在实际的设计和开发工作中被广泛使用,并为工作人员传递了大量重要的体系结构思想。
为了克服传统图形表达方法中所缺乏的语义特征,有关研究人员试图通过增加含有语义的图元素的方式来开发图文法理论。
2、模块内连接语言软件体系结构的第二种描述和表达方法是采用将一种或几种传统程序设计语言的模块连接起来的模块内连接语言MIL(Module Interconnection Language)。
由于程序设计语言和模块内连接语言具有严格的语义基础,因此他们能支持对较大的软件单元进行描述,诸如定义/使用和扇入/扇出等操作。
MIL方式对模块化的程序设计和分段编译等程序设计与开发技术确实发挥了很大的作用。
但是由于这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,因此限制了他们处理和描述比程序设计语言元素更为抽象的高层次软件体系结构元素的能力
用HDL硬件描述语言能够做些什么
我也正学这个呢,简单来说就是硬件语言,通过它来完成集成电路的设计,测试,因为将芯片制造出来后再测试陈本非常高昂~硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。
利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。
然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。
接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。
目前,这种高层次(high-level-design)的方法已被广泛采用。
据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。
硬件描述语言HDL的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。
到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。
但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。
因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。
20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。
现在,随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。
传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。
硬件描述语言为适应新的情况,迅速发展,出现了很多新的硬件描述语言,像Superlog、SystemC、Cynlib C++等等。
究竟选择哪种语言进行设计,整个业界正在进行激烈的讨论。
因此,完全有必要在这方面作一些比较研究,为EDA设计做一些有意义的工作,也为发展我们未来的芯片设计技术打好基础
目前有多少种脚本语言和编程语言?
编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。
可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。
于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
那程序到底是什么呢? 程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。
没有这些特殊的指令,就不能执行预期的任务。
计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。
这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于操作系统中,因此我们不必担心它们工作,他们都是由处理器和操作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。
因此我们要通过程序的方式来让计算机为我们“效劳”。
而这个过程就是我们“编”出来的。
编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。
因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。
所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。
但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
(1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
(2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。
现在大多数的编程语言都是编译型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
这个问题其实很简单。
前面我们讲到,程序是人与计算机进行沟通的唯一方式,因此我们要让计算机为我们服务,就必须有程序,而程序从哪里来?当然是由我们编写出来了。
或许你又会问到另一个问题:现在要什么程序有什么程序,我干嘛还要编程呢?这你就错了,现在的程序虽然很多,需要什么样的程序直接到网上不需要很长时间就可以找到类似的,而且有可能就是你所需要的。
但是,就好比去买衣服,虽然卖衣服的到处都是,但是哪一件是为你“量身定做”的呢! 程序还能够做很多事情不同的程序可以完成不同的事情。
从大...
动漫人物·语言描写(高分)——用语言描述她(他)的长相——<br
爱丽丝学园 蜜柑——很简短可爱的齐刘海,双马尾总是温顺 的搭在肩上,大大的棕色眼睛充满了快乐、无论 何时,总是带着阳光的笑容——(现在) 齐腰的棕发松散的披着,拥有依然不变的阳光笑容,不过多了几分温柔,几分柔弱,使人忍不住想去保护她——(未来) 枣——总是摆出一副老K脸,不过从他的眼中流露出的一丝不易察觉的忧郁令人心疼,柔顺的黑发与枣迷人的外表格外般配——(现在) 不再老K脸,眼中不再流露忧郁,蓬松的黑发在微风中轻轻摇曳,不变的是本属于他的那一份温柔笑容——(未来) 小女神花铃 花铃:长长的齐刘海俏皮的搭在额前,金色的双马尾用可爱的发饰扎着,蓝绿色的大眼睛是那样迷人,脸上总是挂着善良的笑容——(现在) 金色卷发调皮的搭在双肩,目光是那样温柔,她依然保持着千年不变的活泼阳光的笑容,左脸颊上有黑色樱花瓣印记——(未来) 和音:柔顺的金发下垂,两根呆毛不安分的翘起来,紫蓝色的眼睛时而温柔,时而冷酷,俊秀的脸深受女生们的喜爱——(现在) 柔顺的金发齐肩,长长的刘海依然没有影响和音那迷人的紫蓝色双眸,温柔和善的笑已是他的招牌表情了——(未来) 名侦探柯南 小哀:干净利落的短卷发衬托出小哀的可爱模样,总是摆出一副成熟的表情,可爱的眼睛却拥有着令人心疼的忧郁——(现在) 依然留着干净利落的短卷发,眼睛里闪现出智慧的光芒,偶尔露出温柔的笑容,为自己又增添了几分韵味——(未来) 柯南:简短的头发,可刘海却很长,带着一副大大的眼镜,时而挂着一副认真思考的表情,时而又是不屑的表情——(现在) 发型不变,摘去了大大的眼镜,露出了帅气迷人的眼睛,总是挂着温暖的笑容,给人一种安心的感觉——(未来) (PS:米米的脑细胞用完了……等它们再生的时候把剩下几个写完……)
如何学习Verilog 语言?
如果搞FPGA开发verilog必然要精通。
如果没有数字电路基础的话建议首先学一些基本的数字电路知识。
然后看书,《Verilog HDL数字设计与综合》,一定注意只要看能够综合的代码,那些不能综合的东西可以一带而过。
实践!实践!实践!光看书绝对学不会。
如果你有开发板当然好,如果没有至少也要写程序仿真。
当时我学的时候买了个几千块的开发板。
这个东西不练绝对学不会。
总之,先看书,把基本的数电搞懂。
然后最好学一点练一点。
一个很有用的方法,就是对着书或者自己想一些代码,然后看看编出的电路是什么样子的。
FPGA和C语言等软件语言相比,非常难以调试。
一定要保证学的扎实些。
verilog是硬件描述语言,归根结底你设计的是电路,而不是软件,不能那C语言等软件语言硬套。
VHDL硬件描述语言用什么软件编写?
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
1. 机器语言 电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。
计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。
使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。
而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。
但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。
机器语言,是第一代计算机语言。
2. 汇编语言 为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。
然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。
汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。
3. 高级语言 从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。
经过努力,1 9 5 4年,第一个完全脱离机器硬件的高级语言—F O RT R A N问世了,4 0多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有F O RT R A N、A L G O L、C O B O L、B A S I C、L I S P、S N O B O L、P L / 1、P a s c a l、C、P R O L O G、A d a、C + +、V C、V B、D e l p h i、J AVA 等。
高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。
相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。
6 0年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。
这一切,极大地震动了计算机界,史称“软件危机”。
人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。
程序的设计应易于保证正确性,也便于验证正确性。
1 9 6 9年,提出了结构化程序设计方法,1 9 7 0年,第一个结构化程序设计语言—P a s c a l语言出现,标志着结构化程序设计时期的开始。
8 0年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。
在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。
这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(o b j e c t)。
其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。
对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C + +、V B、D e l p h i就是典型代表。
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。
vc++是面向对象的高级语言
可编程硬件描述语言主要包括哪俩种
硬件描述语言概述 随着半导体技术的发展,数字电路已经由中小规模的集成电路向可编程逻辑器件(PLD)及专用集成电路(ASIC)转变。
数字电路的设计手段也发生了变化,由传统的手工方式逐渐转变为以EDA工具作为设计平台的方式。
而随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。
目前最主要的硬件描述语言是VHDL和Verilog HD目录硬件描述语言概述硬件描述语言用途硬件描述语言与原理图输入法的关系硬件描述语言开发流程硬件描述语言的发展硬件描述语言概述 随着半导体技术的发展,数字电路已经由中小规模的集成电路向可编程逻辑器件(PLD)及专用集成电路(ASIC)转变。
数字电路的设计手段也发生了变化,由传统的手工方式逐渐转变为以EDA工具作为设计平台的方式。
而随着EDA技术的发展,使用硬件语言设计PLD/成为一种趋势。
目前最主要的硬件描述语言是和Verilog HDL。
VHDL发展的较早,语法严格,而Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。
VHDL和Verilog HDL两者相比,VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。
国外电子专业很多会在本科阶段教授VHDL,在研究生阶段教授verilog。
从国内来看,VHDL的参考书很多,便于查找资料,而Verilog HDL的参考书相对较少,这给学习Verilog HDL带来一些困难。
从EDA技术的发展上看,已出现用于CPLD/FPGA设计的硬件C语言编译软件,虽然还不成熟,应用极少,但它有可能会成为继VHDL和Verilog之后,设计大规模CPLD/FPGA的又一种手段。
硬件描述语言用途HDL有两种用途:系统仿真和硬件实现。
如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。
但如果我们的程序是用于硬件实现(例如:用于FPGA设计),那么我们就必须保证程序"可综合"(程序的功能可以用硬件电路实现)。
不可综合的HDL语句在软件综合时将被忽略或者报错。
我们应当牢记一点:"所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。
硬件描述语言与原理图输入法的关系HDL和传统的原理图输入方法的关系就好比是高级语言和汇编语言的关系。
HDL的可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模CPLD/FPGA时显得很烦琐,移植性差。
在真正的PLD/FPGA设计中,通常建议采用原理图和HDL结合的方法来设计,适合用原理图的地方就用原理图,适合用HDL的地方就用HDL,并没有强制的规定。
在最短的时间内,用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。
硬件描述语言开发流程用VHDL/VerilogHD语言开发PLD/FPGA的完整流程为:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。
通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。
逻辑综合软件会生成.edf(edif)的EDA工业标准文件。
4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。
(也叫后仿真)6.编程下载:确认仿真无误后,将文件下载到中硬件描述语言的发展硬件描述语言HDL的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。
到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。
但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。
因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。
20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。
现在,随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。
传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。
硬件描述语言为适应新的情况,迅速发展,出现了很多新的硬件描述语言,像Superlog、SystemC、Cynlib C++等等。
展开
JAVA语言介绍
展开全部 1995年,美国Sun Microsystems公司正式向IT业界推出了java语言,该语言具有安全、跨平台、面向对象、简单、适用于网络等显著特点,当时以web为主要形式的互联网正在迅猛发展,java语言的出现迅速引起所有程序员和软件公司的极大关注,程序员们纷纷尝试用java语言编写网络应用程序,并利用网络把程序发布到世界各地进行运行。
包括IBM、Oracle、微软、Netscape、Apple、SGI等大公司纷纷与Sun Microsystems公司签订合同,授权使用java平台技术。
微软公司总裁比尔盖茨先生在经过研究后认为"java语言是长时间以来最卓越的程序设计语言"。
目前,java语言已经成为最流行的网络编程语言,截止到2001年中,全世界大约有310万java程序员,许多大学纷纷开设java课程,java正逐步成为世界上程序员最多的编程语言。
在经历了以大型机为代表的集中计算模式和以PC机为代表的分散计算模式之后,互联网的出现使得计算模式进入了网络计算时代。
网络计算模式的一个特点是计算机是异构的,即计算机的类型和操作系统是不一样的,例如SUN工作站的硬件是SPARC体系,软件是UNIX中的Solaris操作系统,而PC机的硬件是INTEL体系,操作系统是windows或者是Linux,因此相应的编程语言基本上只是适用于单机系统,例如COBOL、FORTRAN、C、C++等等;网络计算模式的另一个特点是代码可以通过网络在各种计算机上进行迁移,这就迫切需要一种跨平台的编程语言,使得用它编写的程序能够在网络中的各种计算机上能够正常运行,java就是在这种需求下应运而生的。
正是因为java语言符合了互联网时代的发展要求,才使它获得了巨大的成功。
大家想一想,在PC下用windows编写的程序能够不做修改就直接拿到UNIX系统上运行吗?显然是不可以的,因为程序的执行最终必须转换成为计算机硬件的机器指令来执行,专门为某种计算机硬件和操作系统编写的程序是不能够直接放到另外的计算机硬件上执行的,至少要做移植工作。
要想让程序能够在不同的计算机上能够运行,就要求程序设计语言是能够跨越各种软件和硬件平台的,而java满足了这一需求。
俗话说:"有心栽花花不成,无心插柳柳成荫"。
Sun公司绝没想到本想用于消费电子产品开发的编程语言却率先在网络中得到了广泛应用,但是也可以说是"东方不亮西方亮",正是因为java语言在设计目标上的正确性使得java语言"是金字总会发光的"。
C语言是面向过程的语言,也是使用率非常高的语言;而面向对象的思想引入到编程语言之后,C语言就被改造成为面向对象的C++语言,得到了广泛的应用。
但是C++语言必须兼容C语言,因此C++语言是面向过程和面向对象混合的语言。
java语言产生于C++语言之后,是完全的面向对象的编程语言,充分吸取了C++语言的优点,采用了程序员所熟悉的C和C++语言的许多语法,同时又去掉了C语言中指针、内存申请和释放等影响程序健壮性的部分,可以说java语言是站在C++语言这个"巨人的肩膀上"前进的。
java语言的一个目标是跨平台,因此采用了解释执行而不是编译执行的运行环境,在执行过程中根据所在的不同的硬件平台把程序解释为当前的机器码,实现跨平台运行。
而动态下载程序代码的机制完全是为了适应网络计算的特点,程序可以根据需要把代码实时的从服务器中下载过来执行,在此之前还没有任何一种语言能够支持这一点。
java是印尼的一个小岛,盛产咖啡,而程序员往往喜欢喝咖啡,因此取名为java语言。
看来,目前java这杯咖啡已经飘香在世界各地。
任何事物的产生既有必然的原因也有偶然的因素,java语言的出现也验证了这一点。
1991年,美国Sun Microsystems公司的某个研究小组为了能够在消费电子产品上开发应用程序,积极寻找合适的编程语言。
消费电子产品种类繁多,包括PDA、机顶盒、手机等等,即使是同一类消费电子产品所采用的处理芯片和操作系统也不相同,也存在着跨平台的问题。
当时最流行的编程语言是C和C++语言,Sun公司的研究人员就考虑是否可以采用C++语言来编写消费电子产品的应用程序,但是研究表明,对于消费电子产品而言C++语言过于复杂和庞大,并不适用,安全性也并不令人满意。
于是,Bill Joy先生领导的研究小组就着手设计和开发出一种语言,称之为Oak。
该语言采用了许多C语言的语法,提高了安全性,并且是面向对象的语言,但是Oak语言在商业上并未获得成功。
时间转到了1995年,互联网在世界上蓬勃发展,Sun公司发现Oak语言所具有的跨平台、面向对象、安全性高等特点非常符合互联网的需要,于是改进了该语言的设计,要达到如下几个目标: ◇ 创建一种面向对象的程序设计语言,而不是面向过程的语言; ◇ 提供一个解释执行的程序运行环境,是程序代码独立于平台; ◇ 吸收C和C++的优点,使程序员容易掌握; ◇ 去掉C和C++中影响程序健壮性的部分,使程序更安全,例如指针、内存申请和释放; ◇ 实现多线程,使得程序能够同时执行多个任务; ◇ 提供动态下载程序代码的机制; ◇ 提供代码校验机制以保证安全性; 最终,Sun公司给该语言...