转载一篇关于ADA的文章

转载一篇关于ADA的文章

因为看ocarina的源码,所以转载了一篇ADA文章,也是第一篇博客,刚开始还不怎么会用,但是以后慢慢学吧。
【转载部分】为什么要写关于这么古老的语言(1980年左右)的文章呢?因为我想既然mainframe用的cobol这么恶劣的语言都写了那么多了,为何不写一点我比较喜欢的语言呢?虽然除了高安全级控制和仿真领域之外ADA是不怎么用的。

首先说两句我个人对ADA语言的态度:

从编写大型程序的OO语言而言(我基本主要用的也就是这类语言),ADA在我评价中的排名是和C#和C++一个级别上的。ADA很大程度上是Java的前驱,而且在演进过程中相互影响。但不知什么原因,我个人向来不太喜欢Java。其他Smalltalk,Eiffel,Ruby,Python之类没接触过(没时间,关于Python德德是行家),而这些面向对象语言和C++和ADA之类相比还是有很大区别的。

ADA是受Pascal直接影响产生的(其他还有ALGOL之类)。Pascal被称为教学语言,以严谨著称。而在我看来Pascal有很多方面是不错,但有些地方“严谨”得有点傻掉了,隐约记得它里面有一套类型相容性规则,简直有点胡闹了(所幸应该被Delphi给剔除掉了)。再说了,通常编程语言总是想要严谨的,比如我就不认为有任何理由认为C不严谨;某种意义上讲,凡是能让计算机正确解释的东西都能说严谨的(当然像BASIC这样的语言设计随意了些,C++铺展得太开让人感觉过于狂躁,而动态类型语言可能是可以说成不太严谨)。所以Pascal只应当说是教学和学习思维上的严谨,语法上比较清晰,类型检查和控制比较严格(由此也引致冗长性,因为比如C/C++一个符号能做的事它要用一个完整语句来做)。但因为ADA完全秉承并极大发扬了这点,我在ADA看到了从上到下的高度一致性和严谨性加上其潜在的强大性,这点却是Pascal望尘莫及的。Pascal的另一些面向对象扩展有如Objective Pascal和Delphi,Delphi是不错,相比ADA具有易用性(因为是Java和C#这条路子的),但是深入研究却反衬出ADA的严谨和强大。当然这强大不是我说了算的,我也说不清楚。反正只要知道这个语言有这么几个令人敬畏的特性:

  • 美国军方设计用来替代各种过往语言,用于统一开发高安全稳定性程序用的语言,多数用于军事(武器装备和系统)和航天的控制和设计、关键单位(火车、航空、电站等)的系统管理和控制等。有人这样描述,ADA是一种一旦编译通过后能很放心使用的语言,可能不尽恰当,但说明一些问题。

  • 设计用来开发极大规模的系统。这说明强大性(至少有可维护性和可扩展性吧)。

  • 广泛用于嵌入式系统开发,而它的一个衍生品VHDL是硬件开发语言。所以往往这个语言的性能是不太令人担心的(当然我还是不很理解如何程度依赖于编译器和运行环境)。

  • 具有内在的并发支持(这个也很玄,我不知道一个语言的这些内在特性如何程度上依赖于系统并实现,可能还是有很大的负荷)。

  • 还在不断发展,83,95版,最近的是2005年标准。

最后用一个Hello World作为本篇结尾,引自wikipedia。

with Ada.Text_IO; – 表示使用这个package的内容
use Ada.Text_IO; – 表示展开这个package的命名空间
procedure Hello is – 定义过程,注意这个is就显得很严谨
begin
Put_Line(“Hello, world!”); – 打印
end Hello; – end后必须跟名称
和一些资源:

  1. Windows下的开源开发环境:ADA Gide http://adagide.martincarlisle.com/ 其实这个不太好。

  2. 最权威的开发环境是ADACORE的GNAT:http://libre.adacore.com/libre/ 这个的免费版就已经很不错,至少可以用用(下载链接:http://libre.adacore.com/libre/download/),虽然已经遇到一些问题和bug。(Linux环境往往会附带ADA编译器)

  3. ADA 95标准和参考: http://www.adahome.com/rm95/

  4. ADA 2005标准和参考:http://www.adaic.org/ada-resources/standards/ada05/

  5. ADA的wiki books:http://en.wikibooks.org/wiki/Ada_Programming

  6. 谁在用ADA:http://www.seas.gwu.edu/~mfeldman/ada-project-summary.html

  7. ADA也有不少问题,一些ADA的比较研究:http://archive.adaic.com/intro/c.html

  8. Most recommendable book for learning ADA 2005: Rationale for ADA 2005, PDF download
    ————————————————
    版权声明:本文为CSDN博主「quanben」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/quanben/article/details/6961047

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值