目录
17 关系: ARM架構,反射 (计算机科学),元编程,面向对象程序设计,類型系統,跨平台,过程式编程,邏輯編程,GNU宽通用公共许可证,LISP,MIPS架構,PowerPC,SPARC,Ubuntu,WxWidgets,X86,模組 (程式設計)。
- 1995年建立的程式語言
- LISP程式語言家族
- Scheme实现
- Scheme直譯器
- Scheme编译器
- Scheme語言
- 函数式编程语言
- 学术的编程语言
- 模式匹配编程语言
- 自由編譯器與直譯器
- 软件开发
- 面向对象的编程语言
ARM架構
ARM架構,過去稱作進階精簡指令集機器(Advanced RISC Machine,更早稱作:Acorn RISC Machine),是一個32位元精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。但在其他領域上也有很多作為,由於節能的特點,ARM處理器非常適用於行動通訊領域,符合其主要設計目標為低成本、高效能、低耗電的特性。另一方面,超级计算机消耗大量电能,ARM同样被视作更高效的选择。 至2009年為止,ARM架構處理器佔市面上所有32位元嵌入式RISC處理器90%的比例,使它成為占全世界最多數的32位元架構之一。ARM處理器可以在很多消費性電子產品上看到,從可攜式裝置(PDA、行動電話、多媒體播放器、掌上型電玩和計算機)到電腦週邊設備(硬碟、桌上型路由器),甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的衍伸产品,重要產品還包括Marvell的XScale架構和德州儀器的OMAP系列。 2011年,ARM的客户报告79亿ARM处理器出货量,占有95%的智能手机、90%的硬盘驱动器、40%的数字电视和机上盒、15%的微控制器、和20%的移动电脑。在2012年,微软与ARM科技生产新的Surface平板电脑,AMD宣布它将于2014年开始生产基于ARM核心的64位元服务器芯片,2016年,日本富士通公司宣布下一代“京”超级计算机将采用ARM架构。 2016年7月18日,日本软银集团斥资3.3万亿日元(约合311亿美元)将设计ARM的公司ARM Holdings收购。。.
查看 Racket和ARM架構
反射 (计算机科学)
在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。见。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。 要注意术语“反射”和“内省”(type introspection)的关系。内省(或称“自省”)机制仅指程序在运行时对自身信息(称为元数据)的检测;反射机制不仅包括要能在运行时对程序自身信息进行检测,还要求程序能进一步根据这些信息改变程序状态或结构。.
元编程
元編程(英語:Metaprogramming),又譯超編程,是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的資料,或者在运行时完成部分本应在编译时完成的工作。多数情况下,与手工编写全部代码相比,程序员可以获得更高的工作效率,或者给与程序更大的灵活度去处理新的情形而无需重新编译。 编写元程序的语言称之为元语言。被操纵的程序的语言称之为「目标语言」。一门编程语言同时也是自身的元语言的能力称之为「反射」或者「自反」。 反射是促进元编程的一种很有价值的语言特性。把编程语言自身作为一級資料類型(如LISP、Forth或Rebol)也很有用。支持泛型编程的语言也使用元编程能力。 元编程通常通过两种方式实现。一种是通过应用程序编程接口(APIs)将运行时引擎的内部信息暴露于编程代码。另一种是动态执行包含编程命令的字符串表达式。因此,“程序能够编写程序”。虽然两种方式都能用于同一种语言,但大多数语言趋向于偏向其中一种。.
查看 Racket和元编程
面向对象程序设计
面向对象程序设计(Object-oriented programming,缩写:OOP)是種具有物件概念的程式編程典範,同时也是一种程序开发的抽象方针。它可能包含資料、、程式碼與方法。对象則指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,物件裡的程序可以訪問及經常修改物件相關連的資料。在物件導向程式編程裡,電腦程式會被設計成彼此相關的物件。 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。目前已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用。此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它能够让人们更简单地设计并维护程序,使得程序更加便于分析、设计、理解。反对者在某些领域对此予以否认。 当我们提到面向对象的时候,它不仅指一种程序设计方法。它更多意义上是一种程序开发方式。在这一方面,我们必须了解更多关于面向对象系统分析和面向对象设计(Object Oriented Design,简称OOD)方面的知识。許多流行的程式語言是物件導向的,它們的風格就是會透由物件來創出實例。 重要的物件導向程式語言包含Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift、C#、Perl、Ruby 與 PHP等。.
類型系統
在计算机科学中,--系統用于定義如何將程式語言中的數值和zh:運算式;zh-tw:運算式;zh-cn:表达式-归類为许多不同的型別,如何操作这些型別,这些型別如何互相作用。型別可以确认一个值或者一组值具有特定的意义和目的(雖然某些型別,如抽象型別和--型別,在----中,可能不表示為值)。型別系統在各種語言之間有非常大的不同,也許,最主要的差異存在於編譯時期的語法,以及執行時期的操作实现方式。 編譯器可能使用值的靜態型別以最佳化所需的儲存區,並選取對值運算時的較佳演算法。例如,在許多C編譯器中,「浮點數」資料型別是以32 位元表示,與IEEE 754規格一致的單精度浮點數。因此,在數值運算上,C應用了浮點數規範(浮點數加法、乘法等等)。 型別的約束程度以及評估方法,影響了語言的型別。更進一步,程式語言可能就型別多態性部分,對每一個型別都對應了一個極度個別的演算法的運算。型別理論研究型別系統,儘管實際的程式語言型別系統,起源於電腦架構的實際問題、編譯器實作,以及語言設計。.
查看 Racket和類型系統
跨平台
跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.
查看 Racket和跨平台
过程式编程
过程式程序设计(Procedural programming),又稱程序式編程、程序化編程,一種編程典範,有時會被視為是指令式編程的同義語。衍生自結構化編程(Structured programming),主要採取程序呼叫(procedure call)或函式呼叫(function call)的方式來進行流程控制。流程則由包涵一系列運算步驟的程序(Procedures),常式(routines),子程序(subroutines), 方法(methods),或函式(functions)來控制。在程式執行的任何一個時間點,都可以呼叫某個特定的程序。任何一個特定的程序,也能被任意一個程序或是它自己本身呼叫。 著名的例子有Linux內核,git,以及Apache HTTP Server等。 Category:編程典範.
查看 Racket和过程式编程
邏輯編程
邏輯編程(逻辑程--序设计)是種編程典範,它設定答案須符合的規則來解決問題,而非設定步驟來解決問題。過程是 不同的方法,可以看Inductive logic programming。 邏輯編程的要點是將正規的邏輯風格帶入電腦程式設計之中。數學家和哲學家發現邏輯是有效的理論分析工具。很多問題可以自然地表示成一個理論。說需要解答一個問題,通常與解答一個新的假設是否跟現在的理論無衝突等價。邏輯提供了一個證明問題是真還是假的方法。建立證明的方法是人所皆知的,故邏輯是解答問題的可靠方法。邏輯編程系統則自動化了這個程序。人工智能在邏輯編程的發展中發揮了重要的影響。 猴子和香蕉問題是邏輯編程社群的著名問題。電腦須自行找出令猴子接觸香蕉的可行方法,取代程式設計師指定猴子接觸香蕉的路徑和方法。 邏輯編程建立了描述一個問題裏的世界的邏輯模型。邏輯編程的目標是對它的模型建立新的陳述。世界上知識不斷澎漲。傳統來說,我們會將一個問題陳述成單一的假設。邏輯編程的程式透過證明這個假設在模型裏是否為真來解決問題。 一些經常用到邏輯編程工具的範疇:.
查看 Racket和邏輯編程
GNU宽通用公共许可证
GNU宽通用公共许可证(GNU Lesser General Public License)简称LGPL,是由自由软件基金会公布的自由软件授权条款。它允许企业与软件开发者使用,或将LGPL授权的软件整合至他们自己的软件内(即使该软件是私有软件也被允许),同时不会受到Copyleft特性的许可证强制对软件开源的限制。该许可证常被用于一些(但不是全部)的GNU程序库。 这个许可证以前被称为GNU程式库通用公共许可证(GNU Library General Public License)。此许可证最新版本为“第3版”,2007年6月29日发布,较早的版本有2.0和2.1版。此種授權之出現,是為了在GPL與許可式授權(如MIT许可证及柏克萊大學的BSD许可证)間取得折衷。 採用LGPL之計畫本身雖然仍有“Copyleft”之限制條件,但這些限制不感染僅僅只--到本計畫的軟體。不過此等軟體仍會受到其他限制。 LGPL主要使用之標的為軟體函式庫(Software Libraries),但是其亦可使用於獨立存在的應用程式。比較有名的例子為Mozilla跟OpenOffice.Org。.
LISP
LISP是具有悠久歷史的計算機編程語言家族,有獨特和完全括號的前綴符號表示法。起源於西元1958年,是現今第二悠久而仍廣泛使用的高階編程語言。只有FORTRAN編程語言比它更早一年。LISP編程語族已經演變出許多種方言。現代最著名的通用編程語種是Common Lisp和Scheme。 LISP最初創建時受到阿隆佐·邱奇的lambda演算的影響,用來作為計算機程序實用的數學表達。因為是早期的高階編程語言之一,它很快成為人工智能研究中最受歡迎的編程語言。在計算機科學領域,LISP開創了許多先驅概念,包括:.
查看 Racket和LISP
MIPS架構
MIPS架構(MIPS architecture,為Microprocessor without Interlocked Pipeline Stages的縮寫,亦為Millions of Instructions Per Second的頭字語),是一種採取精簡指令集(RISC)的處理器架構,1981年出現,由MIPS科技公司開發並授權,廣泛被使用在許多電子產品、網路設備、個人娛樂裝置與商業裝置上。最早的MIPS架構是32位元,最新的版本已經變成64位元。.
PowerPC
PowerPC(,有時簡稱PPC)是一種精簡指令集(RISC)架構的中央處理器(CPU),其基本的設計源自IBM的POWER(Performance Optimized With Enhanced RISC;《IBM Connect電子報》2007年8月號譯為「增強RISC性能優化」)架構。POWER是1991年,Apple、IBM、Motorola組成的AIM联盟所發展出的微處理器架構。PowerPC是整个AIM联盟平台的一部分,并且是到目前为止唯一的一部分。但蘋果電腦自2005年起,將旗下電腦產品轉用Intel CPU。 PowerPC的历史可以追溯到早在1990年随RISC System/6000一起被介绍的IBM POWER架構。该设计是从早期的RISC架构(比如IBM 801)与MIPS架构的处理器得到灵感的。 1990年代,IBM、Apple和Motorola开发PowerPC晶片成功,并制造出基于PowerPC的多处理器计算机。PowerPC架构的特点是可伸缩性好、方便灵活。第一代PowerPC采用0.6微米製程,電晶體达到单芯片300万个。 1998年,铜芯片问世,开创了一个新的历史纪元。 2000年,IBM开始大批推出采用铜芯片的产品,如RS/6000的X80系列产品。铜製程取代了已经沿用了30年的铝製程,使矽芯片多CPU的生产工艺达到了0.2微米的水平,单芯片整合了2亿个電晶体,大大提高了运算性能;而1.8V的低电压操作(原为2.5V)大大降低了芯片的耗能,容易散热,从而大大提高了系统的稳定性。 2005年10月,IBM发布System p5产品线,采用基于POWER5处理器的增强版——POWER5+处理器,提供一系列更优化功能。产品一经推出,就打破15项计算领域的世界纪录。新的POWER5+处理器被称为“片上服务器”(server on a chip),它包括2个处理器,一个高带宽系统交换器,一个更大高速缓存和I/O界面。最新的POWER5+有1.5和1.9GHz两个主频选择,最大72MB板上高速缓存,支持逻辑分区技术,可使System p5为用户提供更强大性能,而占用面积更小。.
SPARC
SPARC,名稱源自於可擴充處理器架構(Scalable Processor ARChitecture)的縮寫,是一種RISC指令集架構,最早於1985年由昇陽電腦所設計,也是SPARC國際公司的注冊商標之一。這家公司於1989年成立,其目的是向外界推廣SPARC,以及為該架構進行符合性測試。此外該公司為了擴闊SPARC設計的生態系統,SPARC國際也把標準開放,並授權予多間生產商採用,包括德州儀器、Cypress半導體、富士通等。由於SPARC架構也對外完全開放,因此也出現了完全開放原始碼的LEON處理器,這款處理器以VHDL語言寫成,並採用LGPL授權。 SPARC架構原設計給工作站使用,及後應用在昇陽、富士通等製造的大型SMP伺服器上。而昇陽開發的Solaris作業系統也是為SPARC設計的系統之一,除Solaris外,NeXTSTEP、Linux、FreeBSD、OpenBSD及NetBSD系統也提供SPARC版本。 現時最新版本的SPARC為第8及第9版,在2005年12月,昇陽方面宣佈其UltraSPARC T1處理器將採用開放原始碼方式。2007年,昇陽電腦宣佈UltraSPARC T2處理器已經加入OpenSPARC開放原始碼計劃。.
查看 Racket和SPARC
Ubuntu
Ubuntu(國際音標:,)是以桌面應用為主的Linux發行版,Ubuntu由Canonical公司發布,他們提供商業支持。它是基於自由軟件,其名稱來自非洲南部祖魯語或科薩語的「ubuntu」一詞(譯為烏班圖),意思是「人性」、「我的存在是因為大家的存在」,是非洲傳統的一種價值觀。 Ubuntu的開發由英國Canonical有限公司主導,南非企業家Mark Shuttleworth所創立。Canonical通過銷售與Ubuntu相關的技術支持和其他服務來產生收益。Ubuntu項目公開承諾開源軟件開發的原則;鼓勵人們使用自由軟件,研究它的運作原理,改進和分發。 Ubuntu是著名的Linux發行版之一,它也是目前最多使用者的Linux版本,用戶數超過10億人(含伺服器、手機與其分支版本)。.
WxWidgets
wxWidgets(,原名wxWindows )是一個開放原始碼且跨平台的物件工具集(widget toolkit),其函式庫可用來建立基本的圖形使用者介面(GUI)。wxWidgets由Julian Smart於1992年首先開發。 wxWidgets標榜使用其函式庫所開發的軟體只需要對原始碼做少量更改(或者完全不用更改),就能在各種不同的作業平台上編譯並執行。目前可支援Windows、Apple Macintosh、Linux/Unix(轉譯成X11、GTK+、Motif等函式庫)、OpenVMS、以及OS/2。嵌入式的版本也正在開發中 。 函式庫本身使用C++語言開發,但也有其它不同程式語言的綁紮,例如:Python(wxPython)、Lua(wxlua)、Perl(wxPerl)、Ruby(wxRuby)、Smalltalk(wxSmalltalk)、Java(wx4j)、甚至是JavaScript(wxjs)等。 使用wxWidgets開發的軟體不需經過諸如虛擬機器的技術就能執行,雖然在不同平台可使用相近甚至相同的原始碼,但其最終轉譯並生成的執行檔是完全基於作業平台的。 另外,wxWidgets不只可以用來建立GUI,它也內建了基於ODBC的資料庫函式、行程間通訊以及網路socket函式等的支援。 wxWidgets的授權許可證是經過開放原始碼促進會認證,其本質等同於GNU宽通用公共许可证(LGPL)。然而一個例外是wxWidgets授權允許修改者以自己的許可證發佈。.
X86
x86泛指一系列由英特爾公司開發處理器的架構,這類處理器最早為1978年面市的「Intel 8086」CPU。 該系列較早期的處理器名稱是以數字來表示80x86。由於以“86”作為結尾,包括Intel 8086、80186、80286、80386以及80486,因此其架構被稱為“x86”。由於數字並不能作為註冊商標,因此Intel及其競爭者均在新一代處理器使用可註冊的名稱,如Pentium。現時英特爾將其稱為IA-32,全名為“Intel Architecture, 32-bit”,一般情形下指代32位元的架構。.
查看 Racket和X86
模組 (程式設計)
軟體模塊(Module)是一套一致而互相有緊密關連的軟體組織。它分別包含了程式和資料結構兩部份。 現代軟體開發往往利用模塊作合成的單位。 模塊的介面表達了由該模塊提供的功能和調用它時所需的元素。 模塊是可能分開地被編寫的單位。這使他們可再用和允許廣泛人員同時協作、編寫及研究不同的模塊。.
另见
1995年建立的程式語言
- Java
- JavaScript
- PHP
- Racket
- Ruby
LISP程式語言家族
Scheme实现
- Chez Scheme
- GNU Guile
- Racket
Scheme直譯器
- Chez Scheme
- GNU Guile
- Racket
Scheme编译器
- Chez Scheme
- Racket
Scheme語言
- GNU Guile
- Racket
- Scheme
- 尾调用
- 程序设计方法
- 计算机程序的构造和解释
函数式编程语言
- APL語言
- Agda
- Arc
- BBN LISP
- Caml
- Clojure
- Common Lisp
- Coq
- Curl语言
- C♯
- Erlang
- F*
- F♯
- Haskell
- Haxe
- ISWIM
- Idris
- JavaScript
- J语言
- LISP
- ML语言
- Maple
- Nemerle
- Nim
- OCaml
- REBOL
- Racket
- Ruby
- Rust
- R语言
- Scala
- Standard ML
- Swift語言
- Wolfram语言
- XSLT
学术的编程语言
模式匹配编程语言
- AWK
- Agda
- Erlang
- F♯
- Haskell
- Haxe
- Idris
- ML语言
- OCaml
- Prolog
- Python
- Racket
- Rust
- Scala
- Sed
- Swift語言
- 編譯器編譯程式
自由編譯器與直譯器
- ANTLR
- AWK
- Agda
- BOO
- CPython
- Clang
- Cygwin
- D語言
- Emacs Lisp
- Flex詞法分析器
- Free Pascal
- FreeBASIC
- GCC
- GCJ
- GFORTRAN
- GNU Binutils
- GNU Guile
- GNU汇编器
- Go
- HHVM
- HipHop for PHP
- Idris
- LLVM
- Lua
- MinGW
- Netwide Assembler
- OCaml
- Open64
- PHP
- Parrot虚拟机
- Perl
- Pharo
- Pike
- Racket
- Ruby
- Rust
- Scala
- Self
- Smalltalk
- Tcl
- Tiny C Compiler
- V8 (JavaScript引擎)
- 可移植C編譯器
- 貝姆垃圾收集器
软件开发
面向对象的编程语言
- ABAP
- BOO
- C++
- COBOL
- Common Lisp
- Dart
- D語言
- Eiffel
- E语言
- Fortran
- Free Pascal
- FreeBASIC
- Gambas
- Groovy
- Io语言
- JRuby
- Java
- Jython
- J语言
- Kotlin
- Lua
- Mixin
- Modula-3
- Nemerle
- OCaml
- OTcl
- Object Pascal
- Objective-C
- PHP
- Perl
- Pharo
- Pike
- PowerShell
- Processing
- Python
- Racket
- Ruby
- Scala
- Self
- Smalltalk
- SuperCollider
- Swift語言
- Tcl
- Turbo Pascal
- Vala
- Visual Basic
- Visual Basic .NET
- Visual FoxPro
- Visual Prolog