目录
20 关系: 可计算性理论,专家系统,人工智能,程序设计,编程语言,计算机安全,计算机图形学,计算机科学,计算机系统结构,计算机网络,计算机辅助设计,软件,软件工程,自动机理论,自然语言处理,模式识别,机器翻译,操作系统,数据库,数据结构。
可计算性理论
在计算机科学中,可计算性理论(Computability theory)作为计算理论的一个分支,研究在不同的计算模型下哪些算法问题能够被解决。相对应的,计算理论的另一块主要内容,计算复杂性理论考虑一个问题怎样才能被有效的解决。.
专家系统
专家系统是早期人工智能的一个重要分支,它可以看作是一类具有专门知识和经验的计算机智能程序系统,一般采用人工智能中的知识表示和知识推理技术来模拟通常由领域专家才能解决的复杂问题。 一般来说,专家系统.
人工智能
人工智能(Artificial Intelligence, AI)亦稱機器智能,是指由人製造出來的機器所表現出來的智能。通常人工智能是指通過普通電腦程式的手段實現的人類智能技術。該詞也指出研究這樣的智能系統是否能夠實現,以及如何實現科學領域。同時如此,人類的數量開始收斂及功能逐漸被其取代。 一般教材中的定义领域是“智能主体(intelligent agent)的研究与设计”,智能主体是指一个可以观察周遭环境并作出行动以达致目标的系统。约翰·麦卡锡于1955年的定义是「制造智能机器的科学与工程。」 人工智能的研究是高度技术性和专业的,各分支领域都是深入且各不相通的,因而涉及範圍極廣。人工智能的研究可以分为几个技术问题。其分支领域主要集中在解决具体问题,其中之一是,如何使用各种不同的工具完成特定的应用程序。 AI的核心问题包括建構能夠跟人類似甚至超越的推理、知识、规划、学习、交流、感知、移动和操作物体的能力等。強人工智能目前仍然是该领域的长远目标。目前強人工智慧已經有初步成果,甚至在一些影像辨識、語言分析、棋類遊戲等等單方面的能力達到了超越人類的水平,而且人工智慧的通用性代表著,能解決上述的問題的是一樣的AI程式,無須重新開發算法就可以直接使用現有的AI完成任務,與人類的處理能力相同,但達到具備思考能力的統合強人工智慧還需要時間研究,比较流行的方法包括统计方法,计算智能和传统意义的AI。目前有大量的工具应用了人工智能,其中包括搜索和数学优化、逻辑推演。而基於仿生學、認知心理學,以及基于概率论和经济学的演算法等等也在逐步探索當中。.
程序设计
电脑程序设计(Computer programming),或稱程式設計(programming),是给出解决特定问题程序的过程,軟體開發過程中的重要步驟。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应包括分析、设计、编碼、测试、除错等不同阶段。 在计算机技术发展的早期,軟體開發主要就是程序设计。但随着技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如操作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的系統環境的一部分。这种情况下軟體開發的内容越来越丰富,不再只是纯粹的程序设计,还包括数据库设计、用户界面设计、通信协议设计和复杂的系统配置过程。 专业的程序设计人员被称为程序员。某种意思上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿愛達·勒芙蕾絲曾设计了巴贝奇分析机上計算伯努利數的一个程序。她甚至还建立了循环和子程序的概念。由于她在程序设计上的突破性創新,愛達·勒芙蕾絲被称为世界上第一位程序员。 任何设计工作都是在各种条件限制和相互矛盾的需求之间寻求一种平衡。這種觀點反映在程式設計上,就是硬體儲存空間與程式執行時間的限制。 空間方面,在计算机技术发展的早期,由于机器资源比较昂贵,如何縮小儲存空間往往是设计关心的首要重點;而随着硬件技术的飞速发展,電腦上資料儲存媒體的價格降低,空間不再是考慮的第一要點,一些較耗時的運算也漸漸發展出以空間換取時間的模式。 時間方面,在早期,如何加強程式效率、縮短程式執行時間是程式設計師的共同目標;而在硬體效能進步、效率差距縮小,软件规模與複雜度卻日益增加的現在,程序的结构、可维护性、重複使用性、彈性等因素更顯得重要。在多人合作的程式設計專案裡,程式設計師們會加上各種註解以協助其他參與者理解程式碼,,但卻因能達到較好的溝通並提高程式碼的可維護性,而成為目前的主流。 然而,隨著智慧型手機等攜帶裝置的興起,執行時間的縮短與儲存空間的有效運用再次成為焦點,形成與主機伺服器類型應用程式不同的重點考慮方向。.
编程语言
编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.
计算机安全
计算机安全(computer security)是计算机与网络领域的信息安全(information security)的一个分支。其目的是在保证信息和财产可被受权用户正常获取和使用的情况下,保护此信息和财产不受偷窃,污染,自然灾害等的损坏。计算机系统安全是指一系列包含敏感和有价值的信息和服务的进程和机制,不被未得到授权和不被信任的个人,团体或事件公开,修改或损坏。由于它的目的在于防止不需要的行为发生而非使得某些行为发生,其策略和方法常常与其他大多数的计算机技术不同。.
计算机图形学
计算机图形学(computer graphics,縮寫为CG)是研究计算机在硬件和软件的帮助下创建计算机图形的科学学科,是计算机科学的一個分支領域,主要關注數位合成與操作視覺的圖形內容。雖然這個詞通常被認為是指三維圖形,事實上同時包括了二維圖形以及影像處理。.
计算机科学
计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.
计算机系统结构
計算機系統結構(computer architecture、電腦系统架構),抽象来說計算機系统架構是一个系统在其所处环境中最高层次的概念;它确定一台電腦硬體和軟體之间的連結。具體地說電腦系统架構'指的是電腦系統設計的觀念與架構,描述電腦在實做的設計原则。它确定一部電腦的:.
计算机网络
计算机网络(computer network),通常也简称網路,是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、軟件及资源共享和信息传递的系统。简单的说即连接两台或多台计算机进行通信的系统。.
计算机辅助设计
電腦輔助設計(Computer Aided Design, CAD)是指運用電腦軟體製作並模擬實物設計,展現新開發商品的外型、結構、彩色、質感等特色的過程。隨著技術的不斷發展電腦輔助設計不僅僅適用於工業,還被廣泛運用於平面印刷出版等諸多領域。它同時涉及到軟體和專用的硬體。 CAD有时也写作“computer-assisted”、“computer-aided drafting”,或类似的表达方式。相关的缩略语有CADD,表示计算机辅助设计和草图(computer-aided design and drafting),以及CAAD,表示计算机辅助建筑设计(computer-aided architectural design)。所有这些术语基本上同義,都指使用计算机而不是传统的绘图板来进行各种项目的设计和工程制图。通常由CAD创建的建筑和工程项目的范围很广,包括建筑设计制图,机械制图,电路图,和其他各种形式的设计交流方式。现在,它们都成为计算机辅助设计更广泛的定义的一部分。 设计者很早就开始使用计算机进行计算。有人认为Ivan Sutherland在1963年在麻省理工学院开发的Sketchpad是一个转折点。SKETCHPAD的突出特性是它允许设计者用图形方式和计算机交互:设计可以用一枝光笔在阴极射线管屏幕上绘制到计算机裡。实际上,这就是图形化用户界面的原型,而这种界面是现代CAD不可或缺的特性。 CAD最早的应用是在汽车制造、航空航天以及电子工业的大公司中。随着计算机变得更便宜,应用范围也逐渐变广。 CAD的实现技术从那个时候起经过了许多演变。这个领域刚开始的时候主要被用于产生和手绘的图纸相仿的图纸。计算机技术的发展使得计算机在设计活动中有更有技巧的应用。现今,CAD已经不仅仅用于绘图和显示,它开始进入设计者的专业知识中更“智能”的部分。 隨著電腦科技的日益發展,效能的提升和更便宜的價格,許多公司已採用立體的繪圖設計。以往,礙於電腦效能的限制,繪圖軟件只能停留在平面設計,欠了真實感。而立體繪圖則衝破了這限制,令設計藍圖更實體化。 现代CAD系统的功能包括:.
软件
軟體(software)是一系列按照特定顺序组织的電腦数据和指示,是電腦中的非有形部分。電腦中的有形部分稱為硬體,由電腦的外殼及各零件及電路所組成。電腦軟體需有硬體才能運作,反之亦然,軟體和硬體都無法在不互相配合的情形下進行實際的運作。 一般来說,计算机软件划分为程式語言、系统软件、应用软件和介于这两者之间的中介軟體。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。 软件包括所有在電腦執行的程式,和其架構無關,例如執行檔、函式庫及腳本語言都屬於软件。軟體不分架構,有其共通的特性,在執行後可以讓硬體執行依設計時要求的機能。軟體儲存在記憶體中,軟體不是可以碰觸到的實體,可以碰觸到的都只是儲存軟體的零件(記憶體)或是媒介(光碟或磁片等)。 软件并不一定只包括可以在计算机上运行的電腦程式,有些定義中,与電腦程式相关的文档,一般也被认为是软件的一部分。简单的说软件就是程式加文档的集合体。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。.
软件工程
软件工程(quote) 1968年秋季,NATO(北約)的科技委員會召集了近50名一流的編程人員、計算機科學家和工業界巨頭,討論和制定擺脫“軟體危機”的對策。在那次會議上第一次提出了軟體工程(software engineering)這個概念,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。其后的几十年里,各种有关软件工程的技术、思想、方法和概念不断被提出,软件工程逐步发展为一门独立的科学。 1993年,电气电子工程师学会(IEEE)给出了一个更加综合的定义:"将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程,即将工程化应用于软件开发中"。此后,IEEE多次给出软件工程的定义。 在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,提高人们的工作效率,同时提升了生活质量。 软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析师、系统架构师、软件设计师、程序员、测试工程师、界面与交互设计师等等。各种软件工程师人们俗称程序员。.
自动机理论
#重定向 自動機理論.
自然语言处理
自然語言處理(natural language processing,缩写作 NLP)是人工智慧和語言學領域的分支學科。此領域探討如何處理及運用自然語言;自然語言認知則是指讓電腦「懂」人類的語言。 自然語言生成系統把計算機數據轉化為自然語言。自然語言理解系統把自然語言轉化為計算機程序更易于處理的形式。.
模式识别
模式识别(Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。我们把环境与客体统称为“模式”。随着计算机技术的发展,人类有可能研究复杂的信息处理过程。信息处理过程的一个重要形式是生命体对环境及客体的识别。对人类来说,特别重要的是对光学信息(通过视觉器官来获得)和声学信息(通过听觉器官来获得)的识别。这是模式识别的两个重要方面。市场上可见到的代表性产品有光学字符识别、语音识别系统。 计算机识别的显著特点是速度快、准确性高、效率高,在将来完全可以取代人工录入。 识别过程与人类的学习过程相似。以光學字元識別之“汉字识别”为例:首先将汉字图像进行处理,抽取主要表达特征并将特征与汉字的代码存在计算机中。就像老师教我们「这个字叫什么、如何写」记在大脑中。这一过程叫做“训练”。识别过程就是将输入的汉字图像经处理后与计算机中的所有字进行比较,找出最相近的字就是识别结果。这一过程叫做“匹配”。.
机器翻译
機器翻譯(英語:Machine Translation,經常簡寫為MT,俗称机翻)屬於計算語言學的範疇,其研究藉由-zh-hant:電腦程式;zh-hans:计算机程序-將文字或演說從一種自然語言翻譯成另一種自然語言。簡單來說,機器翻譯是--將一個自然語言的字辭取代成另一個自然語言的字辭。藉由使用語料庫的技術,可達成更加複雜的自動翻譯,包含可更佳的處理不同的文法結構、辭彙辨識、慣用語的對應等。 目前的機器翻譯軟體通常可允許針對特定領域或是專業领域(例如天氣預報)來加以客製化,目的在於將辭彙的取代縮小於該特定領域的專有名詞上,以藉此改進翻譯的結果。這樣的技術适合針對一些使用較正规或是較制式化陳述方式的領域。例如政府機關公文或是法律相關文件,這類型的文句通常比一般的文句更加正式與制式化,其機器翻譯的结果通常比日常对话等非正式场合所使用语言的翻译结果更加符合语法。 目前的一些翻译机器,例如AltaVista Babelfish,有時可以得到可以理解的翻译结果,但是想要得到較有意義的翻譯結果,往往需要在輸入語句時適當地編輯,以利電腦程式分析。 但是,機器翻譯的結果好壞,往往取決於譯入及譯出語之間的詞彙、文法結構、語系甚至文化上的差異,例如英语與荷兰语同為印歐語系日耳曼語族,這兩種語言間的機器翻譯結果通常比汉语與英语間機器翻译的結果好。 因此,要改善機器翻譯的結果,人為的介入仍顯相當重要。 一般而言,大眾使用機器翻譯的目的只是為了获知原文句子或段落的要旨,而不是精確的翻譯。總的来说,機器翻譯的效果并没有达到可以取代人工翻译的程度,所以無法成為正式的翻譯。 不過現在已有越來越多的公司嘗試以機器翻譯的技術來提供其公司網站多語系支援的服務。例如微軟公司試將其 MSDN 以機器翻譯來自動翻譯成多國語言,如上文所说,知识库作为专业领域,其文法较为制式化,翻译结果亦更加符合自然语言。.
操作系统
操作系统(operating system,縮寫作 OS)是管理计算机硬件與软件資源的计算机程序,同时也是计算机系统的核心与基石。操作系统需要处理如管理與配置内存、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作网络與管理文件系统等基本事務。操作系统也提供一個讓使用者與系統互動的操作界面。 操作系统的型態非常多樣,不同機器安裝的操作系统可從簡單到複雜,可從行動電話的嵌入式系统到超級電腦的大型作業系統。許多操作系统製造者對它涵盖范畴的定义也不尽一致,例如有些操作系统整合了图形用户界面,而有些僅使用命令行界面,而將图形用户界面視為一種非必要的應用程式。 操作系统理论在计算机科学中,為歷史悠久的分支;。.
数据库
--,簡而言之可視為電子化的檔案櫃——儲存电子檔案的處所,使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作。 所謂「資料庫」係以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。.
数据结构
在计算机科学中,数据结构(data structure)是计算机中存储、组织数据的方式。 数据结构意味着介面或封装:一个数据结构可被视为两个函数之间的介面,或者是由数据类型联合组成的存储内容的访问方法封装。 大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。举例而言,可為空的引用(nullable reference)是引用与可辨识联合的结合体,而最简单的链式结构链表则是由记录与可空引用构成。 数据结构可透过程式语言所提供的数据类型、引用及其他操作加以实现。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,支援各種程式執行。 不同种类的数据结构适合不同种类的应用,部分資料結構甚至是為了解決特定問題而設計出來的。例如B树即為加快樹狀結構存取速度而設計的資料結構,常被應用在資料庫和檔案系統上。 正確的数据结构選擇可以提高演算法的效率(請參考)。在電腦程式设计的過程裡,选择适当的数据结构是一項重要工作。许多大型系统的編寫经验顯示,程式設計的困难程度与最终成果的质量与表现,取决于是否选择了最適合的数据结构。 系統架構的关键因素是数据结构而非算法的見解,导致了多种形式化的设计方法与编程语言的出现。绝大多数的语言都带有某种程度上的模块化思想,透过将数据结构的具体实现封装隐藏于使用者介面之后的方法,来让不同的应用程序能够安全地重用这些数据结构。C++、Java、Python等面向对象的编程语言可使用类 (计算机科学)来達到這個目的。 因为数据结构概念的普及,现代编程语言及其API中都包含了多种預設的数据结构,例如 C++ 标准模板库中的容器、Java集合框架以及微软的.NET Framework。.