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

Canonical source: https://maguyva.ai/tr/languages/ada

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

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.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .ada, .adb, .ads
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## 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.

## 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ıç](/tr/docs/quickstart) ile bir repo bağlayın, ardından destek matrisi için [uyumluluk sayfasına](/tr/docs/compatibility) bakın. Ada kodunuz C ile bağlantılıysa [C rehberini](/tr/languages/c) de okuyun.

## 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.
