問題タブ [gnat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - Mac OS 上の Ada コンパイラ GNAT
Mac のターミナルを使用して ADA をコンパイルしようとしていますが、常にこのエラーが発生します。
perl - XS を使用して Perl プログラムで Ada モジュールを使用するにはどうすればよいですか?
最近 Ada の学習を始めました。Ada と C オブジェクト ファイルをリンクして多言語プログラムまたはライブラリを構築できることを知っています。XS を使用して Perl から Ada コードを呼び出すことは可能ですか?
compiler-construction - .adt ファイルを直接変更する方法はありますか?
みなさん、良い一日を、
私は現在、ADA プログラム用の ASIS ツールを試しています。コンパイル中に生成された抽象構文ツリー (.adt) を直接変更できるかどうか疑問に思っていました。もしそうなら、どうすればこれを達成できるかについて、誰かが私を正しい方向に向けることができますか?
どうぞよろしくお願いいたします。
runtime-error - Ada プログラムは実行時エラーを出力しません
Ada 言語 (約 10000 行のコードのみ) を使用して大規模なプロジェクトを開発しています。コントラクト ベースのプログラミング (Ada-2012 の事前条件、事後条件、型不変条件などの機能) の使用中に、アサーションまたは条件がうまくいかない場合、プログラムが終了することがわかりました。タイプとエラーの場所に関するメッセージ。
次に、問題が ada 2012 の機能に関するものなのか、それともランタイム エラーに関するものなのかを判断するために、アサーション/コントラクトに関係のない単純なランタイム エラー、つまりゼロによる除算を挿入しようとしました。
この場合、コンパイラは例外が発生することを通知しますが、実行時にプログラムは完全に終了しますが、何も出力されません。したがって、アサーションに関係するものだけでなく、あらゆる種類の実行時チェックの失敗で問題が発生します。
さらに、数行のコードだけで新しいプロジェクトを作成して、単純なランタイム エラー (ゼロ除算の前と同様) と前提条件とアサーションの失敗を試してみました。この小さなプロジェクトでは、プログラムはすべてのエラーをコンソールに出力します。この問題の影響を受けるのは、大規模なプロジェクトだけです。
私の質問は、どこに問題があるのでしょうか? なぜこれは私のプロジェクトにのみ影響し、作成されたばかりの単純なプロジェクトには影響しないのですか? 実行時チェックの失敗の出力を禁止するオプションはありますか? XUbuntu 13.10で実行しています。gnat、gps、gnatcoll、aws、polyorb の最新 (2013) gpl バージョンを使用しています。スイッチ「-gnata」と「-gnat12」でコンパイルしています。
助けてくれてどうもありがとう。
ada - GNAT コンパイル部分としての Ada コード計測?
GNAT コンパイラをカスタム コード分析/変更ツールと統合する最善の方法を探しています。カスタム ツールを使用して、さまざまなコード メトリック (実行時間、テスト カバレッジなど) を実行し、コードの難読化も行っています。たとえば、コードの実行時間を測定するには、各関数/プロシージャに 2 つのプロシージャ コールを挿入する必要があります (関数が開始する最初の呼び出しと、関数の終了ごとにもう 1 つ)。これら 2 つの手順のコードは、別の変換単位で実装されます。シンプルさとパフォーマンスの観点から、GNAT コンパイラを使用してこれらのコード計測 (コードの挿入/変更) を行う最良の方法は何ですか? これらのいくつかの方法を考えることができます:
- GNAT コンパイラは、あらゆる種類のコード生成プラグインをサポートしていますか? そうではないようですが、グーグルで調べているときに何かを見逃したのかもしれません。メタプログラミングのトリック (Nimrod や D などの最新のプログラミング言語のように) を使用してそれを行う方法があるかもしれませんが、Ada がメタプログラミングをまったくサポートしているかどうかはわかりませんでした。
- ASIS ライブラリが役立つように見えますが、別のツールを作成するために作成されています。ASIS ベースのツールを GNAT と統合することは可能ですか? たとえば、コンパイル中に GNAT によってロードされ、AST (AST) が GIMPLE に変換される前に AST 内のノードを変更するツールを作成する場合などです。ASIS ベースのツールを個別に使用する (たとえば、各ソース ファイルをコンパイラに渡す前に前処理する) と、ソース コードを (ツールとコンパイラによって) 2 回解析し、ファイルに保存/ロードする必要があるため、コンパイル時間が短縮される場合があります。 /ディスク上の一時的な場所から。
- GIMPLE を GNAT コンパイラから取得し、変更して GCC に渡すことは可能ですか? GCC 内で動作する GIMPLE フロントエンドがあるかどうかはわかりませんでしたが、GIMPLE は内部でのみ使用されているようです。GCC コンパイラでダンプできますが、後で変更した GIMPLE を再コンパイルすることはできません (GCC 用の GIMPLE フロントエンドはないようです)。
gcc - gcc コンパイラ lib ファイルが見つかりませんエラー
gcc コンパイラ コマンドについて教えてください
gcc -c -ID:\pjtName\lib -c -fprofile-arcs -ftest-coverage D:\pjtName\source\tmp.ada
tmp.ada をカバレッジ付きでコンパイルしようとしています。adb および ads ファイルは、D:\pjtName\source フォルダーにあります。私の lib ファイルは D:\pjtName\lib フォルダーにあります。
問題は、gcc が tmp.ads ファイルとライブラリ ファイルを D:\pjtName\lib フォルダーに配置しないことです。ファイルが見つからないというエラーが表示されます
このコマンドの後、tmp.ada ファイルに対して gcov コマンドを実行する必要があります
autocomplete - GPS for ADA - オートコンプリートを改善するプラグイン
GPS ADA (バージョン: GPS 6.0.1 with GNAT Pro 6.4.2) のオートコンプリートを改善する方法を検討しています。
GPS オートコンプリートは、入力したテキストで始まる一致を検索します。
テキスト内の任意の場所に文字列を一致させたいと思います。
現在、正規表現は次のようになります: /myString.*/i
次のようにしたい: /.*myString.*/i
- これを行うために見逃したオプションはありますか?
- これを行うGPSプラグインを知っている人はいますか?
また、このプラグインを自分で作成することも検討しました。http://docs.adacore.com/gps-docs/users_guide/_build/html/GPS.html#GPS.Completionのドキュメントで、 「completion.py」を参照しています。 - 私は見つけることができませんでした - これは後のバージョンの GPS にのみ含まれている可能性があると推測しています。
xcode5 - Xcode 5 は Ada をコンパイルできますか?
Xcode 3.0 を使用して、Ada プロジェクトの編集とビルドを行っています。Xcode 5 で iOS アプリも開発しているので、Ada 関連のすべての作業を Xcode 5 に移行して、1 つのバージョンの Xcode だけを開くようにしたいと考えています。Xcode 3.0 と Xcode 5 の切り替えは本当に面倒です。
Ada をコンパイルするために Xcode 5 を入手した人はいますか?
http://homepage.mac.com/awreynolds/を試してみましたが、ウェブサイトは既にサービスを停止しているようです。Macada.org は時代遅れです。
ありがとう。
ada - これは報告すべき GNAT のバグですか?
127 で終わる範囲で独自の型を定義すると、コンパイラは変数がラップアラウンドし、定義された制限よりも負になることを許可する上限チェックを行いません。範囲を 126 と定義すると、適切な例外がスローされます。プログラムとその出力を以下に示します。
出力:
.
出力: