目录
23 关系: 名字修饰,一次编写,到处编译,一次编写,到处运行,交叉編譯器,异常处理,刺猬大作战,Delphi,Dev-Pascal,DOS扩展器,部件工具箱,Java虚拟机,Kylix,Lazarus,Micro Bit,Object Pascal,Pascal (程式語言),Peazip,Turbo Pascal,Windows Embedded Compact,Xcode,梅森旋转算法,泛型,整合開發環境列表。
名字修饰
名字修饰,又译作名字粉碎、名字重整,译自英文name mangling或name decoration,是现代计算机程序设计语言的编译器用于解决由于程序实体的名字必须唯一而导致的问题的一种技术。 它提供了在函数、结构体、类或其它的数据类型的名字中编码附加信息一种方法,用于从编译器中向链接器传递更多语义信息。 该需求产生于程序设计语言允许不同的条目使用相同的标识符,包括它们占据不同的命名空间(典型的命名空间是由一个模块、一个类或显式的namespace指示来定义的)或者有不同的签名(例如函数重载)。 任何由编译器产生的目标代码通常与另一部分的目标代码(产生于同一款或不同款的编译器)通过链接器把它们链接起来。链接器需要一大堆每个程序实体信息。例如正确链接一个函数需要它的名字、参数个数和它们的类型,等等。.
一次编写,到处编译
“一次编写,到处编译”(Write once, compile anywhere,简写为WOCA)是一种编写跨平台计算机程序的哲学,旨在让计算机程序能够在不同的系统平台上编译而不必修改其源代码。和太阳微系统公司的“一次编写,到处运行”口号不同,这种跨平台特性体现在源码层面上,而非字节码层面。 许多编程语言都遵循“一次编写,到处编译”的准则,如C++、Pascal (参见Free Pascal)、Ada和C语言(只要不使用标准库以外的函数)。计算机程序也可以使用可以提供抽象层来遮盖不同平台间差别的跨平台来保证代码的可移植性,如套接字、图形用户界面库。比如Lazarus和它的LCL及其窗口组件。.
一次编写,到处运行
“一次编写,到处运行”(Write once, run anywhere、WORA,有时也作“write once, run everywhere”、WORE)是太阳计算机系统公司用来展示Java程序设计语言的跨平台特性的口号。在理想中,这意味着Java可以在任何设备上开发,然后编译成一段标准的字节码,就可以在任何安装有Java虚拟机(JVM)的设备上运行。在芯片、设备和软件包中安装Java已经成为一种工业实践的标准。 它意味着开发者可以在一台PC上进行Java开发,并能在安装有Java的手机、路由器、大型计算机上运行其代码而无需经过调整。这将使开发者能更容易地在不同的平台或操作系统上部署软件,而不必开发不同的版本来面向不同平台。 该想法可以追溯到20世纪70年代,UCSD Pascal系统在p-code上开发、运行。James Gosling提到UCSD Pascal(以及Smalltalk虚拟机)对Java虚拟机的设计有关键性的影响。 美中不足的是,Java虚拟机在各种操作系统(Windows、Linux、Solaris、NetWare、HP-UX以及Mac OS)上有多种不同的实现,导致Java程序在不同的JVM虚拟机和操作系统上执行时有微妙的差别,所以一种应用可能需要在许多平台上进行测试才能确保正确性和稳定性,这造就了一个程序员间的笑话:“一次编译,到处调试”(“Write Once, Debug Everywhere”)。.
交叉編譯器
交叉编译器(Cross compiler)是指一个在某个系统平台下可以产生另一个系统平台的--的编译器。交叉编译器在目标系统平台(开发出来的应用程--序所--的平台)难以或不容易编译时非常有用。 交叉编译器的存在对于从一个开发主机为多个平台编译代码是非常有必要的。直接在平台上编译有时行不通,例如在一个embedded system的microcontroller ,因为它们没有操作系统,所以直接编译行不通。 交叉编译器和源代码至源代码编译器不同,交叉编译器用于二进制代码的跨平台软件开发,而源到源编译器是将某种编程语言的程序源代码作为输入,生成以另一种编程语言构成的等效源代码的编译器,但两者都是编程工具。.
异常处理
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。 各种编程语言在处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。例如,C语言中的atoi函数(ASCII串到整数的转换)在输入非法时可以返回0。在这种情况下编程者需要另外进行错误检测(可能通过某些辅助全局变量如C的errno),或进行输入检验(如通过正则表达式),或者共同使用这两种方法。 通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。 从进程的视角,硬件中断相当于可恢复异常,虽然中断一般与程序流本身无关。 从子程序编程者的视角,异常是很有用的一种机制,用于通知外界该子程序不能正常执行。如输入的数据无效(例如除数是0),或所需资源不可用(例如文件丢失)。如果系统没有异常机制,则编程者需要用返回值来标示发生了哪些错误。.
刺猬大作战
刺猬大作战(Hedgewars)是一個2D版本百战天虫模式的回合制策略游戏。Hedgewars被苹果电脑官方网站收录。这个游戏是使用GPL协议的自由软件。.
Delphi
Delphi,是Windows平台下著名的快速應用程式開發(Rapid Application Development,简称RAD)。它的前身,即是DOS時代盛行一時的「Borland Turbo Pascal」,最早的版本由美国Borland(宝兰)公司於1995年开发。主创者為安德斯·海尔斯伯格。經過數年的發展,此產品也轉移至Embarcadero公司旗下。 从产品名称上就可以知道,Turbo Pascal使用的是Pascal语言。从Turbo Pascal 5.5版开始,Borland公司在传统Pascal的基础上加入了物件導向的功能。 Delphi是一个整合開發環境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面(Graphical User Interface,简称GUI)为开发环境,透過IDE、VCL工具與編譯器,配合連結資料庫的功能,構成一個以物件導向程式設計為中心的應用程式開發工具。Delphi所編譯的可執行檔,雖然容量較大,但因為產生的是真正的原生機器碼,效能上比較快速。除了使用資料庫的程式之外,不需安裝即可執行,在使用上相當方便。 Delphi在本质上應該歸類為軟體開發工具,而並非是程式语言,但由于Delphi几乎是目前市场上唯一使用Pascal,並持續推出新版本的商业产品。因此,有時人们會把Delphi視為Object Pascal的代名词。Borland公司因而把Object Pascal改称为Delphi。2006年,Borland把开发工具产品线独立出来,成立了一家新的公司CodeGear,並把產品線交由此公司负责。原本的Delphi,亦曾一度因此被命名为Turbo Delphi。但是在新的版本中,除了Delphi for Win32(原有的Delphi版本)之外,还有一个新产品「Delphi for PHP」。在CodeGear的发展规划中,或许“Delphi”不再是Object Pascal的专屬IDE名稱,而是将之提升到通用IDE品牌的層次。2008年5月7日,Embarcadero Technologies(易博龙)公司宣布以2300万美元的价格收购CodeGear公司,从而把Delphi收入囊中。2009年5月6日,Micro Focus宣布以7500万美元收购Borland。 Delphi目前的最新版本是Delphi 10.2 Tokyo。.
Dev-Pascal
Dev-Pascal是個Pascal的开发环境(IDE, integrated development environment),使用Free Pascal作为编译系统与调试系统。Dev-Pascal采用GNU通用公共许可证。.
DOS扩展器
DOS扩展器是一个电脑软件程序,令须保护模式环境的软件能够在实模式运行,即使其所处的操作系统衹能在实模式下运作。 DOS扩展器起初在1980年代诞生,目的是要通过Intel 80286芯片(稍後扩展到Intel 80386)的指令,以应付MS-DOS及其它同类型操作系统的内存限制。.
部件工具箱
部件工具箱(widget toolkits)亦称为GUI工具箱(GUI toolkits),在程序设计中指的某些基本的GUI的构件元素的集合。他们一般以库或者应用程序框架的形式出现。.
Java虚拟机
Java虛擬機(Java Virtual Machine,縮寫為JVM),一種能夠執行Java bytecode的虛擬機器,以堆疊結構機器來進行實做。最早由昇陽電腦所研發并实现第一个实现版本,是Java平臺的一部份,能夠執行以Java語言寫作的軟體程式。 Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。通过对中央处理器(CPU)所执行的软件實作,实现能执行编译过的Java程序码(Applet与应用程式)。 作为一种编程语言的虚拟机,实际上不只是专用于Java语言,只要生成的编译文件符合JVM对载入编译文件格式要求,任何语言都可以由JVM编译运行。此外,除了甲骨文,也有其他开源或闭源的实现。.
Kylix
Kylix是Borland公司推出的GNU/Linux版的开发环境,相对于Windows下的Delphi以及C++ Builder。通过Kylix,程序员可以在GNU/Linux下使用Object Pascal、C++或者C语言,进行软件开发。 目前这个工具的前景不明朗,没有推出新版(Kylix 4)的迹象。对于Delphi 2005,也没有升级的途径,Delphi 2005可能不包含CLX(跨平台元件库)的支持。此外,对其最新的GNU/Linux官方支持包括:RedHat 7.2、SUSE 7.3以及Mandrake 8.2。在更新版的GNU/Linux中,应该也能用,但可能需要搜索一下网络,看看如何对默认配置进行相应的调整,比如保留旧版的glibc等。.
Lazarus
Lazarus是一个用于快速应用程序开发(RAD)的自由、跨平台的可视化集成开发环境(IDE)。使用Free Pascal的编译器,支持Object Pascal语言,与Delphi高度兼容,并被视作后者的自由软件替代品。Lazarus目前支持多种语言,包括中文。软件开发者可使用Lazarus创建原生的命令行与带有图形用户界面的应用程序,以及移动设备,Web应用,Web服务,可视化组件和各种函数库。Lazarus集成开发环境和Free Pascal编译器支持多种操作系统,包括 Windows、GNU/Linux和Mac。.
Micro Bit
Micro Bit(也叫做BBC Micro Bit,或风格化为micro:bit)是基于ARM结构的嵌入式系统,由BBC设计用于英国的计算机教育。 电路板大小为,拥有1个ARM Cortex-M0处理器,加速度传感器和磁力传感器,蓝牙通信和USB连接编程能力,由25个LED组成的显示屏,2个可编程按钮,可以用USB或者外部电池包来供电。设备输入和输出包括环孔连接器和边缘连接器。.
Object Pascal
Object Pascal指Pascal的面向对象的衍生分支,以Delphi的主要编程语言著称。Pascal编译器,包括那些Object Pascal的编译器,在生成高优化代码同时,一般运行非常快。.
Pascal (程式語言)
Pascal是一个有影响的面向对象和面向过程编程语言,由尼克劳斯·维尔特在1968年9月设计,在1970年发行,作为一个小型的和高效的语言,意图鼓励使用结构化编程和数据结构进行良好的编程实践。 称作Object Pascal的一个衍生是为面向对象编程设计的。.
Peazip
PeaZip是可以在Microsoft Windows或Linux作業系統中執行的檔案管理器及壓縮程式。它除了支援自己原生的PEA壓縮格式(主要功能為壓縮、分檔、彈性地認證加密、整合式檢查架構)外,還有支援其他的主流壓縮格式。不過有特別著重在處理開放授權的壓縮格式上。這套壓縮軟體主要使用Lazarus開發工具以Free Pascal語言進行撰寫。是以GNU宽通用公共许可证發布的自由軟體。.
Turbo Pascal
Turbo Pascal是Borland公司一个很有代表性的软件开发产品。从语言角度说Turbo Pascal是Pascal语言的一个扩展。它扩展了标准Pascal的功能特性。在语法上,Turbo Pascal吸取了其他语言如C等的特性,简化了标准Pascal的语法;在功能上,Turbo Pascal提供了包括屏幕控制、图形处理、系统调用等有用的函数库(Turbo Pascal中称为单元)。 Turbo Pascal包括CP/M、MS-DOS、Windows等不同操作系统上的版本。 1983年,Borland公司发布了Turbo Pascal的第一个版本。该版本的编译器核心部分由安德斯·海尔斯伯格授权给Borland公司。同时,安德斯·海尔斯伯格也作为雇员加入了Borland公司,并且是后来所有Turbo Pascal版本与Delphi前3个版本的架构师。在第一个版本的Turbo Pascal中,Borland公司的创始人Philippe Kahn为该版本的Turbo Pascal添加了用户界面与编辑器。第一版本Turbo Pascal是个人电脑上编译器发展的一个里程碑。 1989年发布的Turbo Pascal 5.5版是一个重要的版本,从这一版本起,Borland公司把面向对象程序设计(OOP)引入Pascal语言,这就是大家所知道的Object Pascal的开端。 Turbo Pascal 6.0推出一个用OOP思想封装的Dos下的应用程序框架(Framework),叫做TurboVision,这个版本的IDE据信即是使用该Framework开发的。 Turbo Pascal的最后一个版本叫做Borland Pascal 7,它包含一个增强的Dos下的IDE和编译器,可以创建Dos和Windows3.x程序,后来为Delphi1.0代替。.
Windows Embedded Compact
Windows Embedded Compact(曾被稱為Microsoft Windows CE),為微軟研發的嵌入式作業系統,可以應用在各種嵌入式系統,或是硬體規格較低的電腦系統(例如很少的記憶體,較慢的中央處理器等)。微軟並未定義CE縮寫由來,一般解釋則有Compact Edition、Customer Embedded、Consumer Electronics等等。在2008年4月15日舉行的嵌入式系统大会上,微軟宣布將Windows CE更名為Windows Embedded Compact,與Windows Embedded Enterprise、Windows Embedded Standard和Windows Embedded POSReady組成Windows Embedded系列產品。.
查看 Free Pascal和Windows Embedded Compact
Xcode
Xcode是蘋果公司向開發人員提供的集成開發環境,用於開發macOS、iOS、WatchOS和tvOS的應用程序。.
梅森旋转算法
梅森旋转演算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士在1997年开发,基于有限二进制字段上的矩阵线性递归F_。可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。 Mersenne Twister这个名字来自周期长度取自梅森素数的这样一个事实。这个算法通常使用两个相近的变体,不同之处在于使用了不同的梅森素数。一个更新的和更常用的是MT19937, 32位字长。还有一个变种是64位版的MT19937-64。对于一个k位的长度,Mersenne Twister会在的区间之间生成离散型均匀分布的随机数。.
泛型
泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。Ada、Delphi、Eiffel、Java、C#、F#、Swift 和 Visual Basic.NET 称之为泛型(generics);ML、Scala 和 Haskell 称之为参数多态(parametric polymorphism);C++ 和 D称之为模板。具有广泛影响的1994年版的《Design Patterns》一书称之为参数化类型(parameterized type)。.
整合開發環境列表
以下為(程式語言撰寫開發)整合開發環境的列表:.
亦称为 FPC。