草庐IT

c++ - 您可以将 Ada 泛型函数导出到 C++ 吗?

我已经看到很多地方可以使用export/import关键字在Ada/C/C++之间进行通信。如果Ada函数是泛型的呢?这甚至可能吗?我的问题是我需要重用一些遗留代码,而且我们有许多通用的Ada函数。即将到来的新层将用C++编写,我希望能够将这些现有的Ada通用函数导出到C++包装器。(实际上,如果函数不是全局的,我将需要另一层,但现在不要管它。)如果不可能,我将只需要创建新的单独的Ada函数,这些函数特定于不同的类型,这些函数又调用泛型。对这种方法有什么想法吗?我绝对是Ada编程的菜鸟,请原谅我的无知。感谢您的帮助。 最佳答案 编写

1500多天没有停机,ADA会在2022暴发吗?

尽管当今世界上存在超过10,000种数字货币,但像卡尔达诺那样拥有未来的还是屈指可数的。一些朋友可能对ADA的表现并不满意,这很正常。从首日开盘截止到现在的价格,是300多呗,也就是说假如从一级市场就参与其中,到今日是有300呗的收益。ADA在2022年1月1日的交易价格约为1.3刀。不幸的是,该代币遭受了重大挫折,导致ADA在年初至今(YTD)总共损失了35.5%​卡尔达诺有望持续看好的原因:尽管ADA价格走势不利,但CryptoCapitalVentures(CCV)的首席执行官DanGambardello称卡尔达诺是一个等待爆炸的沉睡巨人。同样,一组金融科技小组成员预测,到2030年,A

c++ - Ada Variant Record 能否与 C++ union 二进制兼容?

我正在设计一个通信中间件,用于一个应用程序,该应用程序有一个Ada模块和许多C++模块,用于传递传递的参数(标量值)和结构。该应用程序在MSWindowsXP和Windows7中运行,C++部分在MSVC++2008中开发,Ada部分使用GPS/GNAT开发。Ada版本是1995,但我们正在进行编译器迁移(更新版本的GPS/GNAT),有可能使用更新的Ada规范。中间件是用C++编写的,我想使用包含在模块之间传递的所有类型的union类型,这样我就不需要为系统上使用的每种类型指定一个put/get函数。问题是,C++union是否与Ada变体记录二进制兼容?换句话说,如果我将C++un

c++ - 从 C++ 处理程序捕获时如何获取 Ada 异常消息?

使用GNATAda和GnuC++,我将一段Ada代码与一个C++包装器连接起来,我想在运行这段(愚蠢的)代码时正确地捕获Ada异常:withada.text_io;packagebodyada_throwisprocedureada_throwisbeginada.text_io.put_line("hello");raiseprogram_error;endada_throw;endada_throw;相关规范代码为:packageada_throwisprocedureada_throw;pragmaexport(convention=>C,entity=>ada_throw,ex

windows - 如何在 Windows 计算机上安装 GNAT (GNU Ada)?

好的,我正在考虑做一个多语言项目。我正在看Ada中的一部分。我已经知道AdaCore包,但我需要分别链接每个文件,这意味着直接通过GCC可能最容易。唯一的问题是GNAT显然主要是用Ada编写的,我似乎无法找到关于如何在任何地方安装它的指南。MinGW为我处理了一些其他语言,但显然GNAT不包括在内。提前致谢! 最佳答案 如果您稍后决定安装MinGWAda,您可以使用mingw-get命令更新现有安装,如下所示,例如mingw-get安装ada。可以找到更多详细信息here.如本相关answer中所建议,替代编译器有其用途.$ming

iphone - 将用 Ada 编写的 Windows/Mac 应用程序移植到 iOS

我拥有一个词典应用程序(将文本作为输入,输出定义+语法分析)。我有所有用Ada编写的源文件(大约50页代码),以及Windows和Unix可执行文件。我希望能够在iOS应用程序中使用这本词典。我对Ada一点都不熟悉,所以我的问题是,简而言之,是否有任何快捷方式可以以某种方式包装应用程序并在iOS上使用它?或者是用C/Objective-C重写整个应用程序的唯一方法吗? 最佳答案 Shark8提到了以JVM为目标的Ada。ACT销售一个针对JVM的Gnat版本。但是,我不认为iOS设备目前运行Java。Apple不想失去对平台的控制,

linux - Ada 程序在 Linux 中有效,但在 GPS Windows 10 中无效

在此先感谢您的帮助。我目前正在做一些关于ada编程的初学者工作,我已经从http://libre.adacore.com/download/configurations#安装了GNATProgrammingStudio(GPS)。我有Windows1064位。我在学校得到了以下代码:pragmaTask_Dispatching_Policy(FIFO_Within_Priorities);withAda.Text_IO;useAda.Text_IO;withAda.Real_Time;useAda.Real_Time;procedurePeriodicTasksisStart:Time

linux - 在 linux 终端运行 Ada 程序

我使用Linuxmint。安装gnat以使用Ada程序,使用“sudoapt-getinstallgnat”。创建了一个简单的helloworld程序:withAda.Text_IO;procedureHelloisbeginAda.Text_IO.Put_Line("Hello,world!");endHello;并将其保存为“hello.adb”尝试从它保存的位置运行它,打开终端并输入并得到以下内容:$cd/media/disk1/ada\programs$gnatmakehello.adbgcc-4.4-chello.adbgnatbind-xhello.alignatlinkh

linux - 适用于 Linux 的 Ada 编译器

我正在对Linux上的Ada开发进行权衡研究。您有什么好的编译器/操作系统推荐吗?到目前为止,我已经从运行在CentOS5.4上的AdaCore获得了GNAT,并且我有RationalApex和AonixObjectAda的许可证请求。这是一项移植工作。原始代码库是OSF14.0d上的Apex3.0。还有什么我应该考虑的吗?理想情况下,它将是一个受支持的环境。 最佳答案 您需要考虑的一个问题是确定要移植的系统在多大程度上利用供应商提供的软件包来执行其功能。我在较旧的大型系统(尤其是Apex系统)中看到的是,语言专家在其开发期间倾向于

c++ - C++ 中的 Ada 子类型等价物

C++是否提供类似于Ada的subtype的东西来缩小类型?例如:typeWeekdayis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);subtypeWorking_DayisWeekdayrangeMonday..Friday; 最佳答案 不,不是原生的。您所描述的最好表示为范围枚举,并伴随一个单独的范围枚举,其中包含与“父”范围枚举共享数字表示的枚举子集。您可以进一步定义两者之间的一些转换,但如果没有反射,就不可能真正做到优雅和直观,至少在没有硬编码和复制