:: wikimiki.org ::
| 程序 |
程序
计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。 通常,计算机程序要经过编译和链接而成为一种人们不易理解而计算机理解的格式,然后运行。未经编译就可运行的程序通常称之为脚本程序。
程序的运行
为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个引导序列开始的。
在大多数计算机中,操作系统例如Windows等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。
冯诺依曼体系结构
在一台基于最常见的冯诺依曼体系结构(又称Harvard Architecture)的计算机上,程序从某种外部设备,通常是硬盘,被加载到计算机里。 如果计算机选择冯诺依曼体系结构,那么程序就被加载入内存。 指令序列顺序执行,直到一条跳转或转移指令被执行,或者一个中断出现。所有这些指令都会改变指令寄存器的内容。
基于这种体系计算机如果没有程序的支持将无法工作。一个计算机程序是一系列指令的集合。
程序里的指令都是基于机器语言;程序通常首先用一种计算机程序设计语言编写,然后用编译程序或者解释执行程序翻译成机器语言。 有时,程序也可以用汇编语言编写,汇编语言实质就是表示机器语言的一组记号-在这种情况下,用于翻译的程序叫做汇编程序(Assembler)。
程序和数据
程序已经被定义了。如何定义数据呢?数据可以被定义为被程序处理的信息。当我们考虑到整个计算机系统时,有时程序和数据的区别就不是那么明显了。中央处理器有时有一组微指令控制硬件,数据可以是一个有待执行的程序(参见脚本编程语言),程序可以编写成去编写其它的程序;所有这些例子都使程序和数据的比较成为一种视角的选择。有人甚至断言程序和数据没有区别。
编写一个程序去生成另外一个程序的过程被称之为原编程()。它可以被应用于让程序根据给定数据生成代码。单一一个程序可能不足以表示给定数据的所有方面。让一个程序去分析这个数据并生成新的程序去处理数据所有的方面可能会容易一些。就是一例支持这种编程模式的程序语言。
在神经网络里储存的权重是一种数据。正是这些权重数据,跟网路的拓扑结构一起,定义了网络的行为。人们通常很难界定这些数据到底表示什么或者它们是否可以由程序来代替。这个例子以及跟人工智能相关的其它一些问题进一步考验程序和数据的区别。
算法
算法指解决某个问题的严格方法,通常还需辅以某种程度上的运行性能分析。算法可以是纯理论的,也可以由一个计算机程序实现。理论算法通常根据复杂性分为不同类别;实现的算法通常经过颇析()以测试其性能。请注意虽然一个算法在理论上有效可行,但是一个糟糕的实现仍会浪费宝贵的计算机资源。(更详细信息,参见算法信息论,)
开发
编写程序是以下步骤的一个往复过程:编写新的源代码,测试、分析和提高新编写的代码以找出语法和语义错误。从事这种工作的人叫做程序设计员。由于计算机的飞速发展,编程的要求和种类也日趋多样,由此产生了不同种类的程序设计员,每一种都有更细致的分工和任务。软件工程师和系统分析员就是两个例子。现在,编程的长时间过程被称之为“软件开发”或者软件工程。后者也由于这一学科的日益成熟而逐渐流行。
因此,如今程序设计员可以指某一领域的编程专家,也可以泛指软件公司里编写一个复杂软件系统里某一块的一般程序员。一组为某一软件公司工作的程序员有时会被指定一个程序组长或者项目经理,用以监督项目进度和完成日期。大型软件通常经历由系统设计师的掌握的一个长时间的设计阶段,然后才交付给开发人员。牛仔式的编程(未经详细设计)是不为人所齿的。
两种当今常见的程序开发方式之一是项目组开发方式。使用这种方式项目组里每一个成员都能对项目的进行发表意见,而由其中的某一个人协调不同意见。这样的项目组通常有10个左右的成员,这样做是为了便于管理。第二种开发方式是结对开发。
参见
- 程序员
- 卸载程序
- 源代码
- 電子計算機
- 计算机软件
- 程序设计语言
- 編程典範
- 固件
- 操作系统
- 图灵机
- 系统需求
外部链接
- [http://www.webopedia.com/TERM/P/program.html Definition of Computer program @ Webopedia]
参考文献
#Eric Baum What is Thought MIT Press 2004 ISBN 0-262-02548-5
#- Chapter Two: The Mind is a Computer Program
Category:计算机软件
Category:程序设计
ja:プログラム
ko:프로그램
simple:Computer program
程序设计语言程序设计语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
程序设计语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读。
设计语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为在当今所有的计算都需要程序设计语言才能完成。
在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而有许多语言并对新手来说太难学;还有,不同程序之间的运行成本()各不相同。
有许多用于特殊用途的语言,只在特殊情况下使用。例如,PHP专门用来显示网页;Perl更适合文本处理;C语言被广泛用于操作系统和编译器的开发(所谓的系统编程)。
高级程序设计语言(也称高级语言)的出现使得计算机程序设计语言不再过度地倚赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平台独立。
虽然大多数的语言可以既被编译()又被解译(),但大多数只在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,虽然在很多时候,中间过渡的代码往往是解译,而不是编译的。
如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就被成为编译。因此,一个编译器是一个将人可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件()。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。
如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作解译。经解译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。参见解译语言。
特点
每一种程序设计语言可以被看作是一套包含语法、词汇和含义的正式规范。
这些规范通常包括:
- 数据和数据结构
- 指令及流程控制
- 引用机制和重用
- 设计哲学
大多数被广泛使用或经久不衰的语言,拥有负责标准化的组织,经常会晤来创造及发布该语言的正式定义,并讨论扩展或贯彻现有的定义。
数据和数据结构
现代计算机内部的数据都只以二元方式储存,即开-关模式()。现实世界中代表信息的各种数据,例如名字、银行账号、度量以及同样低端的二元数据,都经由程序设计语言整理,成为高端的概念。
一个程序中专门处理数据的那个系统被称为程序语言的型态系统();对型态系统的研究和设计被称为型态理论()。语言可以被分为静态型态系统(),例如C++和Java,和动态型态系统(),例如Lisp,JavaScript,Tcl和Prolog。前者可被进一步分为包含宣告型态()的语言,即每一个变量和函数的型态都清楚地宣告,或type-inferred语言(例如MUMPS,ML)。
大多数语言还能够在内置的型态基础上组合出复杂的数据结构型态(使用数组,列表,堆栈,文件等等)。面向对象语言(,又译作“物件导向语言”)允许程序员定义新的数据型态,即“对象”或“物件”(),以及运行于该对象的函数()和方法()。
除了何时以及如何确定表达式和型态的联系,另外一个重要的问题就是语言到底定义了哪些型态,以及允许哪些型态作为表达式的值。诸如C编程语言之类的低端语言允许程序命名内存位置、内存区域以及编译时的常量;ANSI C甚至允许表达式返回结构值()。功能性的语言一般允许变量直接使用运行时计算出的值,而不是指出该值可能储存的内存地址。
指令及流程控制
一旦数据被确定,机器必须被告知如何对这些数据进行处理。较简单的指令可以使用关键字或定义好的语法结构来完成。不同的语言利用序列系统来取得或组合这些语句。除此之外,一个语言中的其他指令也可以用来控制处理的过程(例如分支、循环等)。
引用机制和重用
引用的中心思想是必须有一种间接设计储存空间的方法。最常见的方法是通过命名变量。根据不同的语言,进一步的引用可以包括指向其他储存空间的指针。还有一种类似的方法就是命名一组指令。大多数程序设计语言使用宏调用、过程调用或函数调用。使用这些代替的名字能让程序更灵活,并更具重用性。
程序设计语言的历史
二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽()。
几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。
于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。
常见的程序设计语言
- APL、A+和J
- Ada
- 汇编语言
- AWK
- Basic、Fortran
- VBScript
- Brainfuck
- C、C++
- C#
- Clipper
- COBOL
- dBase
- PASCAL、Delphi
- Forth
- FoxPro
- F#
- Fava
- IDL
- Java
- JavaScript
- J#
- LISP
- LOGO
- Modula
- Perl
- PHP
- PL/I
- Prolog
- Python
- Ruby
- Scheme
- Smalltalk
- SQL
- Tcl/Tk
- Visual Basic
- Visual FoxPro
- XML
参见
- 计算机科学课程列表
- 程序设计语言列表
- 编译器
- Hello World程序
- 脚本语言
- 維基程序員
category:人工語言
ja:プログラミング言語
操作系统操作系统(Operating System,简称OS)
是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件,同时也是计算机系统的核心与基石。
它的职责通常(但并非绝对)包括对硬件的直接监管、对各种计算资源(如内存、处理器时间等)的管理、以及提供诸如作业管理之类的面向应用程序的服务等等。
操作系统的理论是计算机科学中一个古老而又活跃的分支,而操作系统的设计与实现则是软件工业的基础与核心。
今天的操作系统
到2005年6月为止,用于通用计算机上的分布的操作系统主要两个家族:类Unix家族和微软Windows家族。
主机系统和嵌入式操作系统使用多样的系统,并且很多和Windows和Unix都没有直接的联系。
类Unix家族包括多个组织的操作系统,其中有几个主要的子类包括System V,BSD和Linux。这里'Unix'是一个商标,开发组织允许使用操作系统在一个定义前提下自由地开发。这名字是通用大型设置操作系统类似组织Unix。Unix系统运行在从巨型机到嵌入式系统的多种机器架构上。Unix 主要使用于重要的商务服务器系统以及学院和工程环境中的工作站之上。和Unix不同,自由软件比如Linux 和 BSD 逐步开始流行,并且开始进入桌面操作系统领域。和一些Unix操作系统不同,像惠普公司的HPUX和IBM公司的AIX是设计仅运行在客户购买的设备上,其中有一些特殊的(比如SUN公司的Solaris)可以运行在客户购买设备和基于工业标准的PC上。APPLE公司的Mac OS X是一个BSD特例,以取代早期小型市场上的苹果公司Mac OS,众多流行的Unix操作系统正在走向一体。
微软公司的Windows操作系统家族起源于早期的IBM PC环境中的MS-DOS,现在版本是基于新的Windows NT内核,第一次是在OS/2中制定。和Unix不同,Windows只能运行在32位和64位的x86 CPU(如Intel或者AMD的芯片)上,尽管早期有版本运行于DEC Alpha,MIPS 和 PowerPC体系结构。今天Windows是一个流行的操作系统,在全球桌面市场中占有90%左右的份额,同时在中低端服务器市场也有广泛的应用,如Web服务器和数据库服务器。
译者提示:NT是 New Technology 而不是 Network Technology,这点很多人都出现过误解.
大型机系统,比如IBM公司的Z/OS,和嵌入式操作系统比如QNX , eCOs 和 PalmOS都是和Unix和Windows无关的操作系统,而Windows CE ,Windows NT Embedded 4.0 和 Windows XP Embedded 都是和Windows相关的。
老的操作系统停留在市场包括类似IBM Windows的OS/2;来自惠普的VMS(以前的DEC);苹果公司的Mac OS操作系统,非Unix先驱苹果公司Mac OS X;和AmigaOS,第一个图形用户界面的操作系统,包括对于普通用户的高级的多媒体能力.
功能
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。
结构
操作系统理论研究者有时把操作系统分成四大部分:
- 驱动程序 - 最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
- 内核 - 操作系统之最核心部分,通常运行在最高特权级,负责提供基础性、结构性的功能。
- 支承库 - (亦作“接口库”)是一系列特殊的程序库,它们指责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类,它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。
- 外围 - 所谓外围,是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/Linux中各种守护进程都通常被划归此列。
当然,本节所提出的四部结构观也绝非放之四海皆准。
例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。
而在使用外核结构的操作系统中,则根本没有驱动程序的概念。
因而,本节的讨论只适用于一般情况,具体特例需具体分析。
操作系统中四大部分的不同布局,也就形成了几种整体结构的分野。
常见的结构包括:简单结构、层结构、微内核结构、垂直结构、和虚拟机(虛擬機器Virtual Machine)结构。
简单结构
很多商用操作系统都没有清晰的整体结构,系统中的各个部件混杂在一起。
这些操作系统往往是由很小的实验性的项目逐步演化而来的,因而宏观结构非常模糊。
MS-DOS就是一个很好的例子,在设计之初,MS-DOS的设计目标是在比较有限的硬件资源上运行比较有限的应用程序,开发人员很可能都没有预料到它日后在市场上的巨大成功,因而模块之间的相对独立性几乎被忽略。
相似的情况也发生在UNIX家族之中。
早期的UNIX因为受限于当时的硬件能力,也一直都是采用非常简单的、
随着UNIX的不断发展这样结构也很快成为了UNIX演进的瓶颈。
其他采用这种简单结构的操作系统还包括PalmOS 5以前的PalmOS,以及很多其他的小型的嵌入式操作系统。
层结构
微内核结构
垂直结构
虚拟机结构
分类
内核结构
:主条目: 内核
内核是操作系统最核心最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。
尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准。
内核的结构可以分为
单内核(monolithic kernel),
微内核(microkernel),
超微内核(nanokernel),
以及外核(exokernel)等。
详情参见操作系统内核。
单内核结构是操作系统中各核心部件杂然混居的形态,该结构于二十世纪六十年代(亦有二十世纪五十年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。
微内核结构是二十世纪八十年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。
二十世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。
尽管自二十世纪八十年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。
在众多常用操作系统之中,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单内核结构,例如Linux,大部分的Unix,以及Windows(微软声称Windows NT是基于改良的微内核架构的,尽管理论界对此存有异议)。
微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核。
基于单内核的操作系统通常有着较长的历史渊源。
例如,绝大部分UNIX的家族史都可上溯至二十世纪六十年代。
该类操作系统多数有着相对古老的设计和实现
(例如某些UNIX中存在着大量七、八十年代的代码)。
另外,往往在性能方面略优于同一应用领域中采用其他内核结构的操作系统
(但通常认为此种性能优势不能完全归功于单内核结构)。
通用与专用、嵌入式去
实时与非实时
“实时操作系统”(Real Time OS)泛指所有据有一定实时资源调度以及通讯能力的操作系统。而所谓“实时”,不同语境中往往有着非常不同的意义。某些时候仅仅用作“高性能”的同义词。但在操作系统理论中“实时性”所指的通常是特定操作所消耗的时间(以及空间)的上限是可预知的。比如,如果说某个操作系统提供实时内存分配操作,那也就是说一个内存分配操作所用时间(及空间)无论如何也不会超出操作系统所承诺的上限。实时性在某些领域非常重要,比如在工业控制、医疗器材、影音频合成、以及军事领域,实时性都是无可或缺的特性。
常用实时操作系统有QNX、VxWorks、RTLinux等等,而Linux、多数UNIX、以及多数Windows家族成员等都属于非实时操作系统。操作系统整体的实时性通常依仗内核的实时能力,但有时也可在非实时内核上建立实时操作系统,很多在Windows上建立的实时操作系统就属于此类。
在POSIX标准中专有一系用于规范实时操作系统的API,其中包括POSIX.4、POSIX.4a、POSIX.4b(合称POSIX.4)
以及POSIX.13等等。符合POSIX.4的操作系统通常被认可为实时操作系统(但实时操作系统并不需要符合POSIX.4标准)。
多任务与单任务
16位、32位、64位
所谓16位、32位、64位等术语有时指总线宽度,有时指指令宽度(在定长指令集中),而在操作系统理论中主要是指内存寻址的宽度。如果内存的寻址宽度是16位,那么每一个内存地址可以用16个二进制位来表示,也就是说可以在64KB的范围内寻址。同样道理32位的宽度对应4GB的寻址范围,64位的宽度对应16 Exabyte的寻址范围。内存寻址范围并非仅仅是对操作系统而言的,其他类型的软件的设计有时也会被寻址范围而影响。但是在操作系统的设计与实现中,寻址范围却有着更为重要的意义。
在早期的16位操作系统中,由于64KB的寻址范围太小,大都都采用“段”加“线性地址”的二维平面地址空间的设计。分配内存时通常需要考虑“段置换”的问题,同时,应用程序所能够使用的地址空间也往往有比较小的上限。
在32位操作系统中,
4GB的寻址范围对于一般应用程序来说是绰绰有余的,
因而,通常使用一维的线性地址空间,而不使用“段”。
参看
- 操作系统内核
- 实时操作系统-分时系统-多任务-嵌入式系统-单一用户-多用户
- 对称多处理并行计算(SMP)-集群(Cluster)-分布式计算
- 操作系统列表
- 64位操作系统
- 计算机科学课程列表
部分操作系统
- FreeBSD
- MS-DOS
- GNU/Linux
- Mac OS
- Windows
- Windows NT
- UNIX
- 其他操作系统
外部链接
-
als:Betriebssystem
ja:オペレーティングシステム
ko:운영 체제
ms:Sistem pengoperasian
simple:Operating system
th:ระบบปฏิบัติการ
zh-min-nan:Chok-gia̍p hē-thóng
Windows
Microsoft Windows(微软视窗)是一个为个人电脑和服务器用户设计的操作系统。它的第一个版本由微软公司发行--1985年,并最终获得了世界个人电脑操作系统软件的垄断地位。所有最近的Windows都是完全独立的操作系统。
Windows家族
1985年
1985年
Windows这个词用于一系列不同的产品,它们可以划分为一些四个类别:
- 16位操作环境:这些产品只是提供了一个图形用户界面或桌面,还要有一个独立的操作系统提供必要的服务,例如读取磁盘服务、显示器和键盘的输入等等。这个系列的产品包括Windows 1.0(1985年)、Windows 2.0(1987年)以及它的近似产品Windows 286和Windows 386、Windows 3.0和Windows 3.1。它们都不能脱离DOS运行。
- 混合的16/32位操作环境:这个系列的Windows是16位的Windows的升级版本,仍然需要DOS操作系统才能运行,但是由于和微软的MS-DOS组件整合在一起作为一个整体来发售,这样就不用再单独购买MS-DOS以运行Windows了。这个系列包括Windows 95(第一版发行于1995年,后来的改进版本发行于1996年和1997年),以及三个版本的Windows 98(1998年、1999年和2000年)。这三个版本最终发展成为Windows ME。但是它作为Windows 98家族的资格并没有在广告上出现。
- 32位操作系统环境:起初是为更高性能的商业市场设计而编写的独立的32位操作系统。这个系列包括Windows NT 3.1(1992年)、NT 3.5、NT 3.51、NT 4.0、Windows 2000和Windows XP等。
- 64位操作系统环境:最新的Windows版本开始采用64位操作系统环境,虽然不管是Intel的EM64T还是AMD的x86-64在本质上都是一种32位扩展指令集,兼容英特尔的EM64T扩展指令集和AMD的x86-64指令集(Intel的EM64T其实是其兼容指令集)。这个系列的产品包括Windows XP 64位版和Windows Server 2003 64位版。IA-64是Intel的安腾处理器使用的完全不同的纯64位RISC指令集,在32位兼容模式下性能极为低下而且基本不兼容现有的x86软件,故和现有桌面平台所谓的64bit指令集是完全不同的概念,Microsoft仅仅有Windows 2000 Advanced Server Limited Edition这个限量版的基于IA-64指令集的系统和一个非常罕见的Windows2003Sever for IA-64版本。
Windows的發展史
Windows起源可以追溯到Xerox公司所進行的研發工作。1970年,美國Xerox公司成立了著名的研究機構Palo Alto Research Center(PARC),從事區域網路、雷射印表機、圖形使用者介面(Graphic User Interface,縮寫:GUI)和物件導向(Object-Oriented)技術的研究,並於1981年宣佈推出世界上第一個商用的GUI系統:Star 8010工作站。但由於種種原因,此技術上的領先並未得到充份的重視,也沒有進一步做商業化的應用。
然而Apple Computer公司的創始人之一Steve Jobs在參觀Xerox公司的PARC研究中心後,認識到了GUI的重要性以及廣闊的市場前景,於是開始著手進行自己的GUI系統研發工作,並於1983年研發成功第一個GUI系統:Lisa。不久,Apple又推出第二個GUI系統:Macintosh,這是世界上第一個成功的商用GUI系統。Apple公司在開發Macintosh時,出於市場戰略上的考量,只開發了能於Apple公司自己的電腦上作運作的GUI系統,但當時,基於Intel x86微處理器晶片的IBM兼容電腦已漸露頭角,因此就給了Microsoft公司所開發的Windows生存空間和市場。
Intel x86Microsoft公司早就意識到建立業界標準的重要性,在1983年春季就宣佈開始研究開發Windows,希望它能夠成為基於Intel x86微處理晶片電腦上的標準GUI操作系統。它在1985年和1987年分別推出Windows 1.03版和Windows2.0版。但是,由於當時硬體和DOS操作系統的限制,這兩個版本並沒有取得很大的成功。此後,Microsoft公司對Windows的RAM管理、GUI做了重大改進,使GUI更加美觀並支持虛擬記憶體。Microsoft於1990年5月份推出Windows 3.0並一炮而紅。這個「千呼萬喚始出來」的操作系統一面世便在商業上取得驚人的成功:不到6周,Microsoft公司銷出了50萬份Windows 3.0,打破了任何軟體產品的6周銷售記錄,從而一舉奠定了Microsoft在操作系統上的壟斷地位。後來更因此在1994年時被Apple公司控告侵權,展開了著名的“look and feel”訴訟官司。
自Windows 95和Windows NT4.0以來,這個系統最明顯的特徵是桌面。微軟設計的桌面大大改變了人機交流的界面,使得更多普通的任務只需要少量的電腦知識就可以勝任了,甚至一些比較複雜的任務。但是Windows界面也使得用戶和計算機的內部工作隔離開來,使得用戶控制和設置計算機變得更加困難(這或多或少是由於現代操作系統功能和復雜性不斷增長以及不斷有大量低水平的電腦人員的增長所帶來的必然)。
Windows獲得了巨大的市場成功。估計現在有90%的個人電腦使用這個系統。但是用戶也很難選擇其它的操作系統,因為在他們花錢購買電腦的時候他們的電腦已經有了Windows系統,而他們必須刪除了Windows之後纔能安裝別的系統(通常是免費的系統)。因此,無論是它的市場佔有率或為了實現保持市場主導位置的活動都是極富爭議性的。
Windows XP和Windows Server 2003是現在最新的Windows版本。Windows Server 2003有四個版本:Windows Server 2003 Web服務器版本(Web Edition)、 Windows Server 2003標准版(Standard Edition)、 Windows Server 2003企業版(Enterprise Edition)以及Windows Server 2003數據中心版(Datacenter Edition)。Web Edition主要是為網頁服務器(web hosting)設計的,而Datacenter是一個為極高端系統使用的。標准和企業版本則介於兩者中間。
Windows CE系統是1996年開始設計的一款專門針對嵌入式設備設計的操作系統,最開始的時候微軟打算在Windows 98和Windows NT的基礎上修改,但是項目進行不順利,後來經過全新設計產生了Windows CE系列產品其中包括後來的PocketPC以及Smartphone,嚴格的說Windows CE只是一個操作系統的核心,在這個核心的基礎上發展了針對不通設備的不同版本的操作系統。
微軟有一系列主動的計劃:.NET,Palladium以及Windows Vista(开发代号Longhorn)操作系統。有人認為.NET和Windows Vista是微軟希望從Windows中轉移開來。有人推想這樣將可能幫助微軟避免遭到像反托拉斯那樣的後果。也可以宣稱微軟的下一代產品將是全新的產品,而不是Windows的後續版本。
为特殊设备设计的版本
- 为个人数字助理设计的Pocket PC。
- 为移动电话设计的Smartphone。
- 为笔记本电脑及触摸式屏幕设计的Tablet PC。
- 为DEC Alpha、IBM PowerPC和MIPS systems设计的Windows NT。(在2000年后都废止了)
- 为掌上电脑设计的Windows CE。
- 为家庭媒体中心设计的Windows XP Media Center Edition
- 為XBOX遊戲機設計的版本,名為 Dashboard,但實為 Windows 2000修改而成。
参看
- 微软
- Microsoft Windows的历史
- Windows API
- Windows XP 常用快速鍵列表
- .NET Framework
- 硬件:WinHEC
- 操作系统列表
- Linux
- Unix
- Mac OS X
- ReactOS
Category:操作系统
Category:視窗系統
ja:Microsoft Windows
ko:마이크로소프트 윈도우즈
ms:Microsoft Windows
simple:Microsoft Windows
th:ไมโครซอฟท์วินโดวส์
zh-min-nan:Microsoft Windows
硬盘
硬盘是电脑上使用使用坚硬的旋转盘片为基础的存储设备。它在平整的磁性表面存储和检索数字数据。信息通过离磁性表面很近的写头,由电磁流来改变极性方式被电磁流写到磁盘上。信息可以通过相反的方式回读,例如磁场导致线圈中电气的改变或读头经过它的上方。
硬盘按数据接口不同,大致分为ATA和SATA以及SCSI。
ATA全称Advanced Technology Attachment,是用传统的 40-pin 并口数据线连接主板与硬盘的,外部接口速度最大为133MB/s,因为并口线的抗干扰性太差,且排線佔空間,不利電腦散熱,將逐漸被 SATA 所取代。
SATA,全称Serial ATA,也就是使用串口的ATA接口,因抗干扰性强,且对数据线的长度要求比ATA低很多,支持热插拔等功能,已越来越为人所接受。SATA-I的外部接口速度已达到150MB/s,SATA-II更将为是300MB/s,SATA的前景很广阔。
SCSI,全稱為Small Computer System Interface,歷經多世代的發展,從早期的 SCSI-II,到目前的 Ultra320 SCSI 以及 Fiber-Channel (光纖通道),接頭型式也有多種。SCSI 硬碟廣為工作站級個人電腦以及伺服器所使用,因為它的轉速快,可達 15000 rpm,且資料傳輸時佔用 CPU 運算資源較低,但是單價也比同樣容量的 ATA 及 SATA 硬碟昂貴。
发展史
- 1956年IBM的IBM 350 RAMAC是现代硬盘的雏形,它相当于两个冰箱的体积,不过其存储容量只有5MB。1973年IBM 3340问世他拥有“温彻斯特”这个绰号,来源于他两个30MB的存储单元,恰是当时出名的“温彻斯特来复枪”的口径和填弹量。至此,硬盘的基本机构被确立。
- 1980年,两位前IBM员工创立的公司开发出5.25英寸规格的5MB硬盘,这是首款面向台式机的产品,而该公司正是先进的希捷(SEAGATE)公司。
- 80年代末,IBM公司推出MR(Magneto Resistive磁阻)技术令磁头灵敏度大大提升,使盘片的存储密度较之前的20Mbpsi(bit/每平方英寸)提高了数十倍,该技术为硬盘容量的巨大提升奠定了基础。1991年,IBM应用该技术推出了首款3.5英寸的1GB硬盘
- 1995年,为了配合Intel的LX芯片组,昆腾与Intel携手发布UDMA 33接口——EIDE标准将原来接口数据传输率从16.6MB/s提升到了33MB/s 同年,希捷开发出液态轴承(FDB,Filuid Dynamic Bearing)马达。所谓的FDB就是指将陀螺仪上的技术引进到硬盘生产中,用厚度相当于头发丝直径十分之一的油膜取代金属轴承,减轻了硬盘噪音与发热量
- 1970年到1991年,硬盘盘片的存储密度以每年25%~30%的速度增长;从1991年开始增长到60%~80%;至今,速度提升到100%甚至是200%从1997年开始的惊人速度提升得益于IBM的GMR(Giant Magneto Resistive,巨磁阻)技术,它使磁头灵敏度进一步提升,进而提高了存储密度
- 1998年2月,UDMA 66规格面世但是IBM与昆腾并未抓住UDMA 66接口换代的良机,自此,希捷、迈拓、西部数据走向了光明,而IBM、昆腾走向了独木桥
- 在昆腾被收购后,IBM于2002年6月将硬盘部转手给日立(HITACHI)
- 2004年希捷开创了磁盘垂直记录技术,实现了存储密度100Gbpsi的惊人纪录,该原理是将平行于盘片的磁场方向改变90度变为垂直,更充分的利用的存储空间
SCSI
外部連結
硬盤製造商
- [http://www.seagate.com/ Seagate Technology] 提供桌上型之 IDE 及 SCSI 硬盤。
- [http://www.wdc.com Western Digital] (簡稱 WD) 提供桌上型及筆記本 IDE 介面硬盤。
- [http://www.fujitsu.com/global FUJITSU] 提供桌上型 SCSI 介面及筆記本 IDE 介面硬盤。
- [http://www.hitachi.com/ HITACHI] 提供桌上型 SCSI 及 IDE 介面硬盤,以及筆記本 IDE 介面硬盤;之前收購 IBM 硬盤部門。
- [http://www.maxtor.com/ Maxtor] 提供桌上型 IDE 介面硬盤。
- [http://www.samsung.com/ SAMSUNG] 提供筆記本 IDE 介面硬盤。
Category:電腦儲存
ja:ハードディスクドライブ
ko:하드 디스크
ms:Cakera keras
th:ฮาร์ดดิสก์
机器语言机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了。
- 机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
- 8086到PENTIUM的机器语言指令长度可以从1字节到13字节。
- 尽管机器语言好像复杂的,然而它是有规律的。
- 存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。
以下是一些範例 :
- 指令部份的範例
- #0000 代表 載入(LOAD)
- #0001 代表 儲存(SET)
...
- 暫存器部份的範例
- #0000 代表暫存器 A
- #0001 代表暫存器 B
...
- 記憶體部份的範例
- #000000000000 代表位址為 0 的記憶體
- #000000000001 代表位址為 1 的記憶體
- #000000001000 代表位址為 16 的記憶體
- #100000000000 代表位址為 2^11 的記憶體
- 整合範例
- #0000,0000,000000001000 代表 LOAD A, 16
- #0000,0000,000000000001 代表 LOAD B, 1
- #0000,0001,000000001000 代表 STORE B, 16
- #0000,0001,000000000001 代表 STORE B, 1
Category:计算机语言
ja:機械語
ko:기계어
simple:Machine code
汇编语言彙編語言(Assembly language),又叫組合語言,是一種與硬體緊密相關的程式設計語言,是一種低階語言。組合語言是機器語言的便於記憶和理解的符號化形式。
組合語言的語句與機器語言操作碼存在一一對應的關係,但這並不意味著組合語言語句與機器操作一一對應。在CISC(複雜指令集)結構的CPU上,組合語言(或一個機器語言操作碼)可能被組譯器翻譯成多個「微指令」給CPU執行。
参见
- 计算机科学课程列表
category:程序设计语言
ja:アセンブリ言語
中央处理器]]
中央處理器,英文縮寫為CPU,即Central Processing Unit,是電子計算機的主要設備之一。它的結構如下:
- 運算器:算數、邏輯(部件:算數邏輯單元、累加器、暫存器組、路徑轉換器、數據匯流排)
- 控制器:復位、使能(部件:計數器、指令暫存器、指令解碼器、狀態暫存器、時序產生器、微操作信號發生器)
參見
- 微處理機—微控制器—單晶片
- CPU鎖頻
外部連結
- [http://www.blogchina.com/new/source/156.html CPU简史]
- [http://www.cnpedia.com/Result/Eword.Asp?Eword=Central%20Processing%20Unit%20(CPU)%20 CPU封裝]
- [http://www.cfan.com.cn/pages/20050825/2477.htm CPU历史上的十个第一]
Category:微處理器
ja:CPU
ko:중앙처리장치
ms:Unit Pemproses Pusat
th:หน่วยประมวลผลกลาง
神经网络神经网络可分为生物神经网络和人工神经网络两大类。
生物神经网络一般指生物的大脑神经元,细胞,触点等组成的网络,用于产生生物的意识,帮助生物进行思考和行动。
人工神经网络一般是指用计算机 模拟 人脑的结构,用许多小的处理单元模拟生物的神经元,用算法实现人脑的识别、记忆、思考过程。应用于图像、语言、声音等的识别,复杂的计算,以及趋势预测等领域。
Category:解剖学
人工智能本条目是关于计算机科学中的人工智能,如果你想了解斯蒂芬·斯皮尔伯格导演的一部电影,请参见人工智能 (电影)
人工智能(Artificial Intelligence或简称AI)有时也称作机器智能,是指由人工制造出来的系统所表现出来的智能。这里,“人”也可以广义理解为任何生命体,比如说外星人,如果它们真的存在的话。通常人工智能是指通过普通计算机实现的智能。该词同时也指研究这样的智能系统是否能够实现,以及如何实现的科学领域。
概论
人工智能的定义可以分为两部分,即“人工”和“智能”。“人工”比较好理解,争议性也不大。有时我们会要考虑什么是人力所能及制造的,或着人自身的智能程度有没有高到可以创造人工智能的地步,等等。但总的来说,“人工系统”就是通常意义下的人工系统。
关于什么是“智能”,就问题多多了。这涉及到其它诸如意识(:en:consciousness)、自我(:en:self)、思维(:en:mind)(包括无意识的思维(:en:unconscious_mind)等等问题。人唯一了解的智能是人本身的智能,这是普遍认同的观点。但是我们对我们自身智能的理解都非常有限,对构成人的智能的必要元素也了解有限,所以就很难定义什么是“人工”制造的“智能”了。因此人工智能的研究往往涉及对人的智能本身的研究。其它关于动物或其它人造系统的智能也普遍被认为是人工智能相关的研究课题。
人工智能目前在计算机领域内,得到了愈加广泛的重视。并在机器人,经济政治决策,控制系统,仿真系统中得到应用。
强人工智能和弱人工智能
人工智能的一个比较流行的定义,也是该领域较早的定义,是由约翰·麦卡锡(John McCarthy)在1956年的达特矛斯会议(:en:Dartmouth Conference)上提出的:人工智能就是要让机器的行为看起来就象是人所表现出的智能行为一样。但是这个定义似乎忽略了强人工智能的可能性(见下)。另一个定义指人工智能是人造机器所表现出来的智能性。总体来讲,目前对人工智能的定义大多可划分为四类,即机器“象人一样思考”、“象人一样行动”、“理性地思考”和“理性地行动”。这里“行动”应广义地理解为采取行动,或制定行动的决策,而不是肢体动作。
强人工智能
强人工智能观点认为有可能制造出真正能推理(:en:Reasoning)和解决问题(:en:Problem_solving)的智能机器,并且,这样的机器能将被认为是有知觉的,有自我意识的。强人工智能可以有两类:
- 类人的人工智能,即机器的思考和推理就象人的思维一样。
- 非类人的人工智能,即机器产生了和人完全不一样的知觉和意识,使用和人完全不一样的推理方式。
弱人工智能
弱人工智能观点认为不可能制造出能真正地推理(:en:Reasoning)和解决问题(:en:Problem_solving)的智能机器,这些机器只不过看起来象是智能的,但是并不真正拥有智能,也不会有自主意识。
目前的主流科研集中在弱人工智能上,并且一般认为这一研究领域已经取得可观的成就。强人工智能的研究则出于停滞不前的状态下。
对强人工智能的哲学争论
“强人工智能”一词最初是约翰·罗杰斯·希尔勒针对计算机和其它信息处理机器创造的,其定义为:
“强人工智能观点认为计算机不仅是用来研究人的思维的一种工具;相反,只要运行适当的程序,计算机本身就是有思维的。”(J Searle in Minds Brains and Programs. The Behavioral and Brain Sciences, vol. 3, 1980)
关于强人工智能的争论不同于更广义的一元论和二元论(:en:dualism)的争论。其争论要点是:如果一台机器的唯一工作原理就是对编码数据进行转换,那么这台机器是不是有思维的?希尔勒认为这是不可能的。他举了个中文房间的例子来说明,如果机器仅仅是对数据进行转换,而数据本身是对某些事情的一种编码表现,那么在不理解这一编码和这实际事情之间的对应关系的前提下,机器不可能对其处理的数据有任何理解。基于这一论点,希尔勒认为即使有机器通过了图灵测试,也不一定说明机器就真的象人一样有思维和意识。
也有哲学家持不同的观点。Daniel C. Dennett 在其著作 Consciousness Explained 里认为,人也不过是一台有灵魂的机器而已,为什么我们认为人可以有智能而普通机器就不能呢?他认为象上述的数据转换机器是有可能有思维和意识的。
有的哲学家认为如果弱人工智能是可实现的,那么强人工智能也是可实现的。比如:en:Simon Blackburn在其哲学入门教材 Think 里说道,一个人的看起来是“智能”的行动并不能真正说明这个人就真的是智能的。我永远不可能知道另一个人是否真的象我一样是智能的,还是说她/他仅仅是看起来是智能的。基于这个论点,既然弱人工智能认为可以令机器看起来象是智能的,那就不能完全否定这机器是真的有智能的。Blackburn 认为这是一个主观认定的问题。
需要要指出的是,弱人工智能并非和强人工智能完全对立,也就是说,即使强人工智能是可能的,弱人工智能仍然是有意义的。至少,今日的计算机能做的事,象算术运算等,在百多年前是被认为很需要智能的。
实际应用
机器视觉:指纹识别,人脸识别,视网膜识别,虹膜识别和掌纹识别等。
神经网络。
遗传算法。
专家系统。
可能后果
robot wordcup
学科范畴
人工智能是一门边沿学科,属于自然科学和社会科学的交叉。
涉及学科
- 哲学和认知科学
- 数学
- 心理学
- 计算机科学
- 控制论
- 不定性论
研究范畴
- 自然语言处理
- 知识表现
- 智能搜索
- 推理
- 规划
- 机器学习
- 知识获取
- 感知问题
- 模式识别
- 逻辑程序设计
- 软计算
- 不精确和不确定的管理
应用领域
- 智能控制
- 机器人学
- 语言和图像理解
- 遗传编程
参见
- 艾伦·图灵
- 恐怖谷理论
- Artificial intelligence projects
- 计算机科学
- 计算机科学课程列表
- cognitive science
- consciousness
- 约翰·希尔勒的中国房间
- semantics
- The Singularity
- collective intelligence
- 控制论
- 心理学
站外链接
- [http://bbs.matwav.com/ 研学论坛]关于人工智能,模式识别,科学交流的学术论坛
- [http://www.ChinaAI.org/ ChinaAI.org]-- 中国人工智能网-人工智能|模式识别|数字图像处理
- [http://ai-depot.com/ AI Depot] -- community discussion, news, and articles
- [http://www.loebner.net/Prizef/loebner-prize.html Loebner Prize website]
- [http://www.gameai.com GameAI] -- 关于计算机游戏方面的AI资源
- [http://www.kurzweilcyberart.com/ Kurzweil CyberArt Technologies]-- 关于人工智能艺术的网站,里面有著名的人工智能绘画程序AARON
- [http://cdtzx.swiki.net/ 关于人工智能,专家系统prolog语言全介绍的wiki网站]
ja:人工知能
ko:인공 지능
th:ปัญญาประดิษฐ์
资源资源是一个县的名字,与名词“资源”无关。
----
资源是中国广西壮族自治区桂林市辖县,位于桂林北部。资源县是全区林业重点县,面积1961.14平方公里,总人口16.7万人(2002年)其中苗、瑶等少数民族人口约3.5万人,是广西著名的苗乡。邮政编码541400。县人民政府驻资源镇。
行政区划
下辖1镇,4乡、3民族乡:
- 镇:资源镇。
- 乡:中峰乡、延东乡、梅溪乡、瓜里乡、
- 民族乡:车田苗族乡、两水苗族乡、河口瑶族乡。
外部链接
[http://www.ziyuan.gov.cn 资源县人民政府]
Category:广西行政区划
Category:桂林
算法信息论算法信息论是使用理论计算机科学的工具,研究复杂性概念的学科领域。
category:计算机科学
语法语法是语言表达的规则。各种语言都有不同的语法,包括人类语言和计算机语言等。語法學是語言學的一部分。
現代語法學包括語音學、音系學(見音韻學)、形态学(词法)、句法學、語義學。
分類
- 規定性語法
- 描寫性語法
- 教學用語法
- 形式文法
- 生成語法(衍生語法)
参阅
- 文字
- 语言
category:語法
als:Grammatik
ja:文法
simple:Grammar
th:ไวยากรณ์
语义语义学又称作词义学(Semantics,来自于希腊语 semantikos),研究对象是词语,是词汇学的一个分支。主要研究词义。
词和词之间的各种关系是语义学研究的一个主要方面,例如同义词、反义词,同音词等,找出词语之间的细微差别,让人们更准确地使用词语。
参看
- 词典
- 词典学
- 语文
Category:语言学
ja:意味論
ko:의미론
ms:Semantik
软件工程师软件工程师一般指从事软件开发职业的人。软件工程师跟一般程序员的分別,在于一个程序员的工作是按照指定的specification來做coding,而软件工程师的工作则需要规划。不过,由于现时社会的分工愈來愈模糊,软件工程师跟程序员的分工也愈不明顯。但对于嚴格執行CMM的機構來說,各人的工作分野比較清晰,這有助于了解软件工程师跟一般程序员的分別。
相关内容
- 软件
- 软件工程
- 计算机
category:人物
Category:软件工程
软件工程软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。人们也常常用程序员来泛指各种软件工程师。
软件工程与计算机程序设计
软件工程存在于各种应用中,存在于软件开发的各个方面。而程序设计通常包含了程序设计和编码的反复迭代的过程,它是软件开发的一个阶段。
软件工程力图对软件项目的各个方面作出指导,从软件的可行性分析直到软件完成以后的维护工作。软件工程认为软件开发与各种市场活动密切相关。比如软件的销售,用户培训,与之相关的软件和硬件安装等。软件工程的方法学认为一个独立的程序员不应当脱离团队而进行开发,同时程序的编写不能够脱离软件的需求,设计,以及工程,这是一个被争论了很久的问题。实际上,软件开发兼有两者的特点。但是这并不意味着它们可以被互相混淆。
很多人认为软件工程之于计算机科学和信息科学就如传统意义上的工程学之于物理和化学一样。
在美国,大约40%的软件工程师具有计算机科学的学位。在世界其他地方,这个比例也差不多。他们并不一定会每天使用计算机科学方面的知识,但是他们每天都会使用软件工程方面的知识。
软件危机
请参考:软件危机
软件工程的兴起要根源于20世纪60,70和80年代的软件危机。在那个时代,很多的软件最后都得到了一个悲惨的结局。很多的软件项目开发时间大大超出了规划的时间表。一些项目导致了财产的流失,甚至某些软件导致了人员伤亡。同时软件开发人员也发现软件开发的难度越来越大。
OS 360操作系统被认为是一个典型的案例。到现在为止,它仍然被使用在IBM360系列主机中。这个经历了数十年,极度复杂的软件项目甚至产生了一套不包括在原始设计方案之中的工作系统。OS 360是第一个超大型的软件项目,它使用了1000人左右的程序员。Fred Brooks在随后他的大作《人月神话》(The Mythical Man-Month)中曾经承认,在他管理这个项目的时候,他犯了一个价值数百万美元的错误。
财产的损失:软件的错误可能导致巨大的财产损失。欧洲阿里亚娜火箭的爆炸就是一个最为惨痛的教训。
人员伤亡:由于计算机软件被广泛应用于包括医院等与生命息息相关的行业。这也使得软件的错误导致人员伤亡成为了可能。
在軟體工程界被大量引用的案例是Therac-25的意外. 在1985年六月到1987年一月之間, 六個已知的醫療事故來自於Therac-25錯誤地超過劑量, 導致患者死亡或嚴重輻射灼傷[http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Therac_1.html]。
在工业上,某些嵌入式系统导致机器的不正常运转,从而将一些人推入了险境。
最近的相关报道可以参见[http://catless.ncl.ac.uk/Risks]。
银弹与没有银弹
从软件危机被提出以来。人们一直在寻找解决它的方法。于是一系列的方法被提出并且加以应用。比如结构化的程序设计,面向对象的开发,CMM,UML等等。
在1986年,IBM大型电脑之父Fred Brooks发表了他的著名论文《没有银弹》(No Silver Bullet:Essence and Accidents of Software Engineering)。
在这篇著名的论文中他断言:“在10年内无法找到解决软件危机的银弹”(There will be no silver bullet within ten years)。 这篇论文在其后引起了巨大的反响。关于这本论文及其引起的反响,可以参考银弹与没有银弹。
Fred Brooks的著名作品还有《人月神话》
方法学
软件工程的方法有很多方面的意义。包括项目管理,分析,设计,程序的编写,测试和质量控制。
软件设计方法可以区别为重量级的方法和轻量级的方法。重量级的方法中产生大量的正式文档。
著名的重量级开发方法包括ISO 9000,CMM,和统一软件开发过程(RUP)。
轻量级的开发过过程没有对大量正式文档的要求。著名的轻量级开发方法包括极限编程(XP)和敏捷流程(Agile Processes)。
根据《新方法学》这篇文章的说法,重量级方法呈现的是一种“防御型”的姿态。在应用“重量级方法”的软件组织中,由于软件项目经理不参与或者很少参与程序设计,无法从细节上把握项目进度,因而会对项目产生“恐惧感”,不得不要求程序员不断撰写很多“软件开发文档”。而轻量级方法则呈现“进攻型”的姿态,这一点从XP方法特别强调的四个准则—“沟通、简单、反馈和勇气”上有所体现。目前有一些人认为,“重量级方法”适合于大型的软件团队(数十人以上)使用,而“轻量级方法”适合小型的软件团队(几人、十几人)使用。当然,关于重量级方法和轻量级方法的优劣存在很多争论,而各种方法也在不断进化中。
一些方法论者认为人们在开发中应当严格遵循并且实施这些方法。但是一些人并不具有实施这些方法的条件。实际上,采用何种方法开发软件取决于很多因素,同时受到环境的制约。
软件开发过程
请参考软件开发过程
软件开发过程是随着开发技术的演化而随之改进的。从早期的瀑布式(Waterfall)的开发模型到后来出现的螺旋式的迭代(Spiral)开发,以致最近开始兴起的敏捷开发方法(Agile),他们展示出了在不同的时代软件产业对于开发过程的不同的认识,以及对于不同类型项目的理解方法。
注意区分软件开发过程和软件过程改进之间的重要区别。诸如像ISO 15504, ISO 9000, CMM, CMMI这样的名词阐述的是一些软件过程改进框架,他们提供了一系列的标准和策略来指导软件组织如何提升软件开发过程的质量、软件组织的能力,而不是给出具体的开发过程的定义。
软件工程的发展方向
“敏捷开发”(Agile Development)被认为是软件工程的一个重要的发展。它强调软件开发应当是能够对未来可能出现的变化和不确定性作出全面反应的。
敏捷开发被认为是一种“轻量级”的方法。在轻量级方法中最负盛名的应该是“极限编程”(Extreme Programming,简称为XP)。而与轻量级方法相对应的是“重量级方法”的存在。重量级方法强调以开发过程为中心,而不是以人为中心。重量级方法的例子比如CMM/PSP/TSP。
面向方面的编程(Aspect Oriented Programming,简称AOP)被认为是近年来软件工程的另外一个重要发展。这里的方面指的是完成一个功能的对象和函数的集合。在这一方面相关的内容有泛型编程(Generic Programming)和模板。
软件工程师
请参考软件工程师以及IT工程师认证
相关内容
- 软件工程相关条目列表
- 计算机科学
- 计算机科学课程列表
- 计算机软件
- 软件开发过程
- 软件项目分析
- 软件项目设计
- 软件测试
- 程序设计语言
- IT工程师认证
- 中国计算机产业
- 软件危机
參考
# 胡崑山,《中国软件产业发展现状与人才需求》,2003年9月1日,http://software.ccidnet.com/pub/article/c372_a62973_p1.html
外部链接
Category:软件工程
ja:ソフトウェア工学
th:วิศวกรรมซอฟต์แวร์
Bajo sajón
Variedad del dialecto bajo alemán conocida por 10 millones de alemanes; lengua regional cooficial de 8 estados federales. Es la lengua de la población sajona de la zona del norte de Alemania: Baja Sajonia, Westfalia, Hamburgo, Schleswig-Holstein, Bremen, Mecklemburgo-Pomerania Occidental, Sajonia-Anhalt y Brandeburgo. (La población de estado federado de Sajonia de hoy no es realmente de la pendiente sajona. El área recibió este nombre en el siglo XVI debido al intermatrimonio aristocrático, al disgusto de los sajones verdaderos.)
El Bajo sajón también se habla entre aproximadamente un millón y medio de personas en las provincias norestes de los Países Bajos.
Los enclaves no europeos más grandes del Bajo sajón se encuentran en Norteamérica, sobre todo en los estados del medio oeste de los Estados Unidos. Numerosos enclaves del idioma Bajo sajón (Plautdietsch) de los Menonitas pueden encontrarse en muchas partes de Norteamérica y América Latina, también en Rusia y en Asia Central. Antes del final de la Segunda Guerra Mundial, el Bajo sajón se hablaba también en las partes del norte de Polonia y en áreas más lejos al este.
El Bajo sajón es el descendiente del Viejo sajón, que es también una de las lenguas ancestrales del inglés y del idioma escocés.
Después de la cristianización y de la subyugación por Carlomagno encontró la nación sajona la riqueza y el poder por comercio, sobre todo por comercio marítimo. La extensión comercial de la Liga Hanseática sajona alrededor del Mar Báltico y en la costa noruega, con representaciones diplomáticas en Inglaterra, en los Países Bajos, en Bélgica y en Rusia, causó una extensión de la lengua sajona a lo largo de la mayor parte de la Edad Media. El sajón medio se usaba como una lengua franca internacional durante aquel período, y sus influencias transformaron las lenguas escandinavas. Además, durante y después de aquel período influyó el sajón medio en el casubio, el estonio y las lenguas bálticas.
El Bajo sajón es una lengua fuertemente fragmentada, y desde 1994 está reconocida y protegida por la Unión Europea. Actualmente, incluso se puede utilizar como lengua administrativa en varios de los estados federales en los que goza de mayor difusión. Su código ISO según la norma ISO 639-2 es nds.
A pesar de la oficialidad y debido a la fuerte dominancia del idioma alto alemán, el bajo sajón está extinguiéndose y hoy en día sobrevive casi principalmente en el entorno rural.
Enlace exterior
- [http://www.lenguasgermanicas.tk Gramática e historia del bajo alemán y demás lenguas germánicas]
Categoría:Lenguas germánicas
low cost car hire warsaw hotels elitarne.info mieszne filmy last minute egipt
|
|
|
| :: RELATED NEWS :: |
Vertical tail
The vertical stabilizer of an aircraft is found on its tail, generally pointing straight upward. It is also known as the vertical tail, and is part of an aircraft's empennage. The trailing end of the stabilizer is typically movable, and called the rudder; this allows the aircraft to yaw. Often navigational radios have their
|
Married pair
On railroads, a married pair is a set of two railroad cars which are permanently coupled and treated as if they were a single unit. On passenger railroads, light rail, and monorail services, married pairs may have machinery neccesary for full operation of the cars split between them. (For example, one car may contain a propulsion system, while the other contains an HVAC system.)
For many models of Mihiramon is an Ultimate Level Animal Digimon and a member of the Devas.
Abilities
Attacks
- Samurai Tiger Tail
- Armored Tiger Tail
- Tiger Wing Blades
- Tiger Rod
Important Events
Digimon Tamers
When Mitsuo Yamaki activated the Juggernaut Program, Mihiramon took advantage of it and used it t
|
Siamese Fighting Fish
The Siamese Fighting Fish (Betta splendens) is one of the most popular species of freshwater aquarium fish. It is a member of the gourami family (family Osphronemidae) of order comic fantasy novel by Terry Pratchett. Published in 1987, it is the third novel in the Discworld series and the first where the main character is not Rincewind. It introduces the character of Granny Weatherwax who reappears in several later Discworld novels.
|
The Twisted World of Marge Simpson
Introduction
"The Twisted World of Marge Simpson" is an episode from the eighth season of The Simpsons.
Plot
Marge is a member of the Springfield Investorettes, along with other prominent Springfield ladies Edna Krabappel, Helen Lovejoy,
|
Edmund W. Pettus
Edmund Winston Pettus (July 6 1821–July 27 1907), for whom the civil rights landmark Edmund Pettus Bridge was named, was born in Limestone County, Alabama. He earned h
|
|
John Gall (baseball player)
Disambiguation
For John Gall the author, please see: John Gall
Biography
John Gall (born April 2, 1978) is a first baseman for the Memphis Redbirds, AAA affiliate of the St. Louis Cardinals.
Gall was a successful collegiate player for Read More... |
|