Langkau ke kandungan
cd /languages
  • Kod integriti tinggi
  • Pengaturcaraan
  • Sokongan AST dan simbol

Ada dalam Maguyva: spesifikasi, badan dan graf pakej

Maguyva menyokong Ada dengan AST, simbol dan graf, supaya ejen AI boleh menjejak spesifikasi pakej, badan, task dan tagged type dalam sistem Ada yang berusia panjang.

Mengapa repositori Ada memerlukan peta pergantungan

Ada memisahkan apa yang dijanjikan oleh pakej (.ads) daripada cara ia menunaikannya (.adb). Itu kejuruteraan yang baik, dan ia juga bermakna satu perubahan menyentuh banyak fail yang tidak akan dihubungkan oleh carian teks untuk anda. Sistem Ada berusia panjang menambah satu lapisan lagi: generik, tagged type, task dan protected object, yang hubungannya lebih penting daripada mana-mana fail secara bersendirian.

Maguyva memberikan peta pergantungan ini kepada ejen sebelum ia mencadangkan perubahan, tepat mengikut urutan yang dijangka oleh semakan integriti tinggi.

Apa yang diekstrak oleh Maguyva daripada Ada

Maguyva meliputi .ads, .adb dan .ada. Badan subprogram serta spesifikasi prosedur dan fungsi sama-sama diekstrak sebagai simbol boleh panggil, jadi anda boleh mencari spesifikasi dan badan sesuatu rutin. Padanan simbol tidak sensitif huruf besar kecil, sama seperti Ada sendiri.

Import datang daripada klausa with dan use; kata kunci dibuang supaya graf menyimpan nama pakej. Graf juga merekodkan panggilan, pewarisan dan penggantian pada tagged type, penginstansian, rujukan jenis, bacaan dan tulisan, serta tepi pembangkitan dan pengendalian pengecualian.

Dalam carian berstruktur, task type, protected type, record type dan interface type boleh dipilih sebagai definisi jenis, dan badan entry sebagai kaedah.

Contoh gesaan ejen

  • “Unit mana yang bergantung pada Flight_Control.Sensors, dan subprogram mana yang dipanggil?” (dependency_search arah masuk)
  • “Tunjukkan spesifikasi dan badan Compute_Trajectory serta setiap pemanggilnya.” (find_symbol)
  • “Terangkan cara task telemetri menyerahkan data kepada protected object pengelogan.” (get_task_context)

Had yang diketahui

  • Ada menggunakan sintaks yang sama untuk sesetengah panggilan, akses medan rekod dan pengindeksan. Maguyva menapis jenis terbina dalam, pakej pustaka standard, fungsi atribut dan operator (kira-kira 113 corak) supaya graf panggilan kekal bersih, jadi panggilan ke pustaka standard tidak menjadi tepi graf. Akses medan rekod dan pengindeksan dibezakan daripada panggilan berdasarkan kedudukannya dalam tatabahasa, bukan senarai nama medan. Panggilan I/O teks biasa seperti Put_Line, Put dan Get dikekalkan dengan sengaja.
  • Klausa use mengubah keterlihatan tetapi tidak dipilih sebagai import dalam carian berstruktur; klausa with dipilih.
  • Nod record type dan interface type mungkin serpihan tanpa nama, jadi carian berstruktur berasaskan nama mungkin terlepas. Gunakan find_symbol untuk jenis yang bernama.

Langkah seterusnya

Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Jika kod Ada anda dihubungkan dengan C, baca juga panduan C.

Paling sesuai

  • > Pasukan yang menyelenggara Ada berusia panjang dalam aeroangkasa, pertahanan, kereta api atau domain integriti tinggi lain, tempat setiap perubahan disemak.
  • > Pangkalan kod yang dipecah kepada spesifikasi `.ads` dan badan `.adb`, dengan antara muka dan pelaksanaan berada dalam fail berbeza.
  • > Jurutera yang menggunakan ejen AI untuk analisis impak dan persediaan semakan, bukan untuk menjana kod tanpa pengawasan.

Aliran kerja ejen

  • > Mencari setiap unit yang melakukan `with` pada sesuatu pakej sebelum spesifikasinya berubah.
  • > Menjejak subprogram yang memanggil sesuatu rutin merentas sempadan pakej.
  • > Memetakan task type, protected type dan hierarki tagged type sebelum perubahan keserentakan atau reka bentuk.

Butiran enjin

  • > Sokongan Ada meliputi spesifikasi `.ads`, badan `.adb` dan fail `.ada`. Badan dan spesifikasi subprogram kedua-duanya simbol boleh panggil.
  • > Padanan simbol tidak sensitif huruf besar kecil, dan klausa `with` serta `use` menjadi hubungan import selepas kata kunci dibuang.
  • > Kira-kira 113 jenis terbina dalam, pakej pustaka standard, fungsi atribut dan operator ditapis daripada panggilan; akses medan rekod dan pengindeksan dibezakan daripada panggilan berdasarkan kedudukannya dalam tatabahasa, dan `Put_Line`, `Put` dan `Get` dikekalkan dengan sengaja.

Titik masuk MCP yang berguna

  • find_symbol

    Gunakan untuk mencari spesifikasi dan badan sesuatu subprogram serentak, bersama rujukannya.

  • dependency_search

    Gunakan penjelajahan arah masuk pada pakej sebelum spesifikasinya berubah, untuk melihat setiap unit yang bergantung padanya.

  • get_task_context

    Gunakan untuk gesaan seperti “terangkan cara task telemetri menyerahkan data kepada protected object pengelogan”.