İçeriğe atla
cd /languages
  • Yüksek bütünlüklü kod
  • Programlama
  • AST ve sembol desteği

Maguyva'da Ada: belirtimler, gövdeler ve paket grafları

Maguyva, Ada'yı AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları uzun ömürlü Ada sistemlerinde paket belirtimlerini, gövdeleri, görevleri ve etiketli türleri izleyebilir.

Ada repoları neden bir bağımlılık haritasına ihtiyaç duyar

Ada, bir paketin vaat ettiğini (.ads) onu nasıl uyguladığından (.adb) ayırır. Bu iyi mühendisliktir ve aynı zamanda tek bir değişikliğin, metin aramasının sizin için birbirine bağlamayacağı birçok dosyaya dokunması demektir. Uzun ömürlü Ada sistemleri bir katman daha ekler: ilişkileri tek tek dosyalardan daha önemli olan generic’ler, etiketli türler, görevler ve korumalı nesneler.

Maguyva, ajan bir değişiklik önermeden önce ona bu bağımlılık haritasını verir; yani tam da yüksek bütünlüklü bir incelemenin beklediği sırayla.

Maguyva Ada’dan neleri çıkarır

Maguyva .ads, .adb ve .ada dosyalarını kapsar. Alt program gövdeleri ile yordam ve fonksiyon belirtimleri çağrılabilir semboller olarak çıkarılır; böylece bir rutinin hem belirtimini hem gövdesini arayabilirsiniz. Sembol eşleştirmesi, Ada’nın kendisi gibi büyük-küçük harfe duyarsızdır.

İçe aktarmalar with ve use ifadelerinden gelir; anahtar sözcük kaldırılır, böylece graf paket adını saklar. Graf ayrıca çağrıları, etiketli türlerde kalıtım ve geçersiz kılmaları, örneklemeyi, tür referanslarını, okuma ve yazmaları ve istisna tetikleme ve işleme kenarlarını kaydeder.

Yapısal aramada görev türleri, korumalı türler, kayıt türleri ve arayüz türleri tür tanımı olarak, giriş gövdeleri ise yöntem olarak seçilebilir.

Örnek ajan istemleri

  • “Hangi birimler Flight_Control.Sensors paketine bağlı ve onun hangi alt programlarını çağırıyorlar?” (gelen yönde dependency_search)
  • “Compute_Trajectory belirtimini, gövdesini ve onu çağıran herkesi göster.” (find_symbol)
  • “Telemetri görevinin verileri günlük kaydı korumalı nesnesine nasıl aktardığını açıkla.” (get_task_context)

Bilinen sınırlar

  • Ada bazı çağrılar, kayıt alanı erişimi ve dizinleme için aynı sözdizimini kullanır. Maguyva çağrı grafını temiz tutmak için yerleşik türleri, standart kütüphane paketlerini, öznitelik fonksiyonlarını ve operatörleri (yaklaşık 113 desen) filtreler; bu nedenle standart kütüphaneye yapılan çağrılar graf kenarı olmaz. Kayıt alanı erişimi ve dizinleme, bir alan adı listesine göre değil, dilbilgisindeki konumlarına göre çağrılardan ayrılır. Put_Line, Put ve Get gibi yaygın metin G/Ç çağrıları bilinçli olarak korunur.
  • use ifadeleri görünürlüğü değiştirir, ancak yapısal aramada içe aktarma olarak seçilmez; with ifadeleri seçilir.
  • Kayıt ve arayüz türü düğümleri adsız parçalar olabilir; bu nedenle ada dayalı yapısal aramalar onları kaçırabilir. Adlandırılmış türler için find_symbol kullanın.

Sonraki adımlar

Hızlı başlangıç ile bir repo bağlayın, ardından destek matrisi için uyumluluk sayfasına bakın. Ada kodunuz C ile bağlantılıysa C rehberini de okuyun.

En uygun kullanım

  • > Her değişikliğin gözden geçirildiği havacılık, savunma, demiryolu veya diğer yüksek bütünlüklü alanlarda uzun ömürlü Ada kodunu sürdüren ekipler.
  • > Arayüzün ve uygulamanın farklı dosyalarda durduğu, `.ads` belirtimleri ve `.adb` gövdeleri olarak bölünmüş kod tabanları.
  • > Yapay zeka ajanlarını denetimsiz kod üretimi için değil, etki analizi ve inceleme hazırlığı için kullanan mühendisler.

Ajan iş akışları

  • > Belirtimi değişmeden önce bir paketi `with` ile kullanan her birimi bulmak.
  • > Bir rutini paket sınırları ötesinde çağıran alt programları izlemek.
  • > Bir eşzamanlılık veya tasarım değişikliğinden önce görev türlerini, korumalı türleri ve etiketli tür hiyerarşilerini haritalamak.

Motor ayrıntıları

  • > Ada desteği `.ads` belirtimlerini, `.adb` gövdelerini ve `.ada` dosyalarını kapsar. Alt program gövdeleri ve belirtimleri çağrılabilir sembollerdir.
  • > Sembol eşleştirmesi büyük-küçük harfe duyarsızdır; `with` ve `use` ifadeleri anahtar sözcük kaldırıldıktan sonra içe aktarma ilişkisi olur.
  • > Yaklaşık 113 yerleşik tür, standart kütüphane paketi, öznitelik fonksiyonu ve operatör çağrılardan filtrelenir; kayıt alanı erişimi ve dizinleme, dilbilgisindeki konumlarına göre çağrılardan ayrılır ve `Put_Line`, `Put` ve `Get` bilinçli olarak korunur.

Yararlı MCP giriş noktaları

  • find_symbol

    Bir alt programın belirtimini ve gövdesini referanslarıyla birlikte bulmak için kullanın.

  • dependency_search

    Her bağımlı birimi görmek için, belirtimi değişmeden önce bir pakette gelen yönde dolaşım kullanın.

  • get_task_context

    "Telemetri görevinin verileri günlük kaydı korumalı nesnesine nasıl aktardığını açıkla" gibi istemler için kullanın.