当人们想到阿达时,人们通常会想到航空电子设备.
我感兴趣的是Ada的其他一些应用程序?在哪里使用?是否有任何用Ada编写的应用程序?
例如,是否有写入CRUD应用程序?还是游戏?等等.
我尝试使用Google搜索并在线阅读一些代码段.为什么Ada是一种"安全关键"语言?我注意到的一些事情是
其余的语法我要么不理解,要么没有看到它如何帮助它成为'安全关键'.这些是一些观点,但我看不出大局.它是否具有我没有看到的合同设计?它是否有规则使代码编译更难(如果有的话,那么它们是什么?)为什么它是一种"安全关键"语言?
C++的一个问题是我们从密集使用模板和模板元编程的代码中获得的可怕错误消息.这些概念旨在解决这个问题,但遗憾的是它们不会出现在下一个标准中.
我想知道,这个问题是否适用于支持通用编程的所有语言?或者C++模板出了什么问题?
不幸的是,我不知道任何其他支持泛型编程的语言(Java和C#泛型太简单了,没有C++模板那么强大).
所以我问你们:D,Ada,Eiffel模板(仿制药)是否也会产生如此丑陋的错误消息?是否可以使用具有强大通用编程范例的语言,但没有丑陋的错误消息?如果是,这些语言如何解决这个问题?
编辑:为downvoters.我真的很喜欢C++和模板.我不是说模板很糟糕.实际上我是泛型编程和模板元编程的忠实粉丝.我只是问为什么我从编译器那里收到如此丑陋的错误信息.
有没有人在Ada做过严肃的网页开发?是否有可用于此类任务的库或框架?我对那些免费和开源的东西特别感兴趣.
任何相关的指针都表示赞赏.
我通过修复错误和阅读代码来学习Ada.我注意到一些if语句与"and"结合,其他语句与"然后"结合.类似地,有"或"和其他地方有"或其他".一位同事说这只是语法糖并没有区别.我想知道他是对的吗?
我们目前正在为基于Atom的航空电子设备开发一种非关键的移动地图类型navcomm解决方案.原型已经在Python/Qt中完成,现在我需要决定用于"真实"应用程序的语言.Ada或C/C++.我已经做了12年的C++开发人员并厌恶这种语言.Ada似乎很有希望,但我有点担心它支持基础设施,可用库,开发人员可用性等等.以前有人经历过这个吗?你的结论是什么?
如果我要制造机器人,你推荐我哪种语言?在我们的大学,我们可以选择几种语言.大多数学生选择Ada只是因为我们的老师使用它.
经过一番研究,我发现ada已经过时了.你的想法是什么?是值得学习的吗?
有一组通用规则/指南,可以帮助了解什么时候喜欢pragma Pure,pragma Preelaborate或别的东西完全?标准(Ada 2012)中提出的规则和定义有点沉重,我很感激阅读一些更为清晰的内容并针对普通案例.
如果我想彻底了解它的"原因",我可以简单地试试:
pragma Pure;pragma Preelaborate;pragma Elaborate单元,要么重新考虑包布局.withwith虽然这可能有效(是吗?),因为建议尽可能将包标记为Pure(同样使用Preelaborate),但它看起来有点脑损伤,我更愿意更好地理解这个过程.
下面是ada中的一些代码
with TYPE_VECT_B; use TYPE_VECT_B;
Package TEST01 is
procedure TEST01
( In_State : IN VECT_B ;
Out_State : IN OUT VECT_B );
function TEST02
( In_State : IN VECT_B ) return Boolean ;
end TEST01;
Run Code Online (Sandbox Code Playgroud)
TYPE_VECT_B包规范和主体也在下面定义
Package TYPE_VECT_B is
type VECT_B is array (INTEGER range <>) OF BOOLEAN ;
rounded_data : float ;
count : integer ;
trace : integer ;
end TYPE_VECT_B;
Package BODY TYPE_VECT_B is
begin
null;
end TYPE_VECT_B;
Run Code Online (Sandbox Code Playgroud)
变量In_State和Out_State实际上意味着什么?我认为In_State表示输入变量.我只是对Out_State的含义感到困惑?
C ++是否提供类似于Ada的subtype类型来缩小类型?
例如:
type Weekday is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
subtype Working_Day is Weekday range Monday .. Friday;
Run Code Online (Sandbox Code Playgroud)