Electronic Joint Business

Solution for E-Business

msys

ADA 语言编程 (一)

文章评价:
在上个世纪 70 年代,美国国防部 (DoD) 发现其所属的嵌入式计算机系统项目中,使用的编程语言数量逐日增多,其中很多语言十分陈旧或者需要依赖于硬件,而且没有一种语言支持安全的模块化编程,对此 DoD 感到十分担心。为此,DoD 在 1975 年成立了高级语言工作组 (HOLWG),它的使命是就是寻找或者创造某种适合国防部需要的编程语言,以便减少现有编程语言数量。该小组最终的工作成果就是 Ada 语言。由此,这类项目中使用的高级编程语言的数量从 1983 年的 450 种编程语言,减少到 37 种(1996年)。

高级语言工作组精心设计了 Steelman 语言规范,这是一系列用来述明编程语言需要满足哪些要求的文件。许多既有的语言按次规范进行了审查,但最终(1977年) 团队得出结论:没有现有的语言符合规格。

最终 HOLWG 提出了开发一种新的编程语言的建议,并且雇佣了四个承包商分别进行有关方案开发,代号分别是红 (Benjamin Brosgol 所领导的Intermetrics)、 绿 (Jean Ichbiah 所领导的 CII Honeywell Bull)、 蓝 (John Goodenough 所领导的 SofTech) 和黄 (Jay Spitzen 所领导的SRI International。1978 年 4 月公开审查之后 红和绿这两个方案进入了下一阶段。在 1979 年 5 月,最终选择了 Jean Ichbiah 所领导的 CII Honeywell Bull 所实现的“绿”方案,并定名为 Ada — — 这是为了纪念 Augusta-Ada-Lovelace 伯爵夫人。该方案受到了上世纪 70 年代 Ichbiah 和他的小组所开发 LIS 编程语言的影响。

由于 Ada 以安全性为第一(safety-critical) 的特性 ,因而 Ada 除了在军事上得以应用,也应用到了那些软件 bug 会产生严重后果的商业项目中,例如航空和空中交通管制、 商业火箭 (例如阿丽亚娜 4 和 5),卫星和其他空间系统、 铁路运输和银行。例如,波音 777 的线传飞控系统软件就是 Ada 编写的。加拿大的自动化空中交通系统是由 100 万行的 Ada (源代码计数) 构成的。得益于 Ada 的高级分布式处理、 分布式的 Ada 数据库和面向对象的设计,Ada 也用在其他的空中交通系统,如英国的下一代 iFACTS 空中交通管制系统是用 SPARK Ada 设计和开发的, 同时它也运用于法国 TGV 高速铁路系统中的 TVM in-cab 信号系统,以及巴黎、 伦敦、 香港和纽约地铁信号系统。

标准
1983 年该语言成为了 ANSI 标准 (ANSI/MIL-STD 1815A), 该版本未做更多的修改就在 1987 年成为了 ISO 标准 (ISO-8652:1987)。该版本就是我们知道的 Ada 83,(按 ANSI 接受为标准的时间),有时也按 ISO 接受为标准的日期称为 Ada 87。

>>> 阅读全文

 

, , , ,

用MinGW64编译Readline GetText等类库

MinGW,即 Minimalist GNU For Windows。它是一些头文件和迁移库的集合,该集合允许人们在不使用其他第三方动态链接库的情况下采用 GCC(GNU Compiler C)产生 Windows32 程序。

MSYS:Minimal GNU(POSIX)system on Windows,是一个小型的 GNU 环境,提供了类似 Bourne shell 环境下要编译程式的一些工具包括基本的 bash,make 等等,是为方便进行模拟 Linux 下配置编译环境而设计的。 二者配合可以很方便的将 Linux 下的许多优秀软件迁移到 Windows 上来。

这里介绍一些常见的GNU库的编译方法,为了得到64位的二进制包,必须选用MinGW64,而不是常见的MinGW,所以需要添加–build=x86_64-w64-mingw32,您可以根据自己的实际环境进行修改。我是在YA-MinGW64中有维护一些二进制包,你可以从该站点上下载。

安装 MinGW64
MinGW64 不是 MinGW 的子项目,它是一个新的开源项目,我是 MinGW64 的开发者之一,这个项目的目的是把 MinGW 迁移到64位平台上来(MinGW官方不提供64位版本)。你可以到MinGW64站点 上下载 GCC 4.6.3 或者 GCC 4.7.0 的二进制发布,解压到 MinGW64 目录里即可。

除了 MinGW64 外,我们还需要一个类似 Bash 的开发环境,以方便运行 configure 命令,你可以下载 MinGW 的 MSYS(32位)的可执行安装文件,安装过程中会提示 MinGW的路径,这里只需要选择 MinGW64 的安装目录即可。安装好 MSYS 之后,打开安装目录下的 etc 子目录中的 fstab 文件,添加以下几行:

>>> 阅读全文

 

, , , , , , , , , ,