# Ada στο Maguyva: προδιαγραφές, σώματα και γράφοι πακέτων

Canonical source: https://maguyva.ai/el/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 με AST, σύμβολα και γράφο, ώστε οι πράκτορες AI να παρακολουθούν προδιαγραφές πακέτων, σώματα, εργασίες και επισημασμένους τύπους σε μακρόβια συστήματα Ada.

## Στιγμιότυπο υποστήριξης

- Επίπεδο: Υποστήριξη AST και συμβόλων
- Προγραμματισμός
- Επεκτάσεις: .ada, .adb, .ads
- Πραγματική ανάλυση AST για αναζήτηση με επίγνωση σύνταξης και δομικό πλαίσιο.
- Τα επώνυμα σύμβολα τροφοδοτούν τη σημασιολογική αναζήτηση και τη διασταύρωση αναφορών. Η πλοήγηση στον γράφο είναι διαθέσιμη όταν είναι ενεργοποιημένη η εξαγωγή σχέσεων.
- Αυτή η γλώσσα συνεισφέρει σύμβολα και σχέσεις στην αναζήτηση με επίγνωση του γράφου· οι υποστηριζόμενοι τύποι ακμών διαφέρουν ανάλογα με τις εγγενείς δομές της.
- Διατίθενται τόσο ανάλυση AST όσο και εξαγωγή συμβόλων.

## Ιδανική χρήση

- Ομάδες που συντηρούν μακρόβια Ada στην αεροδιαστημική, την άμυνα, τους σιδηροδρόμους ή άλλους τομείς υψηλής ακεραιότητας, όπου κάθε αλλαγή αναθεωρείται.
- Βάσεις κώδικα χωρισμένες σε προδιαγραφές `.ads` και σώματα `.adb`, όπου η διεπαφή και η υλοποίηση βρίσκονται σε διαφορετικά αρχεία.
- Μηχανικοί που χρησιμοποιούν πράκτορες AI για ανάλυση επιπτώσεων και προετοιμασία αναθεωρήσεων, όχι για παραγωγή κώδικα χωρίς έλεγχο.

## Ροές εργασίας πρακτόρων

- Εύρεση κάθε μονάδας που κάνει `with` σε ένα πακέτο πριν αλλάξει η προδιαγραφή του.
- Εντοπισμός, πέρα από τα όρια των πακέτων, των υποπρογραμμάτων που καλούν μια ρουτίνα.
- Χαρτογράφηση των τύπων task, των προστατευμένων τύπων και των ιεραρχιών επισημασμένων τύπων πριν από μια αλλαγή ταυτοχρονισμού ή σχεδίασης.

## Γιατί τα αποθετήρια Ada χρειάζονται χάρτη εξαρτήσεων

Η Ada διαχωρίζει αυτό που υπόσχεται ένα πακέτο (`.ads`) από τον τρόπο που το υλοποιεί (`.adb`). Είναι καλή μηχανική, και σημαίνει επίσης ότι μια μόνο αλλαγή αγγίζει πολλά αρχεία που μια αναζήτηση κειμένου δεν θα συνδέσει για εσάς. Τα μακρόβια συστήματα Ada προσθέτουν ένα ακόμη επίπεδο: γενικευμένες μονάδες, επισημασμένους τύπους, εργασίες και προστατευμένα αντικείμενα, των οποίων οι σχέσεις μετρούν περισσότερο από οποιοδήποτε μεμονωμένο αρχείο.

Το Maguyva δίνει στον πράκτορα αυτόν τον χάρτη εξαρτήσεων πριν προτείνει μια αλλαγή, δηλαδή ακριβώς με τη σειρά που περιμένει μια αναθεώρηση υψηλής ακεραιότητας.

## Τι εξάγει το Maguyva από την Ada

Το Maguyva καλύπτει `.ads`, `.adb` και `.ada`. Τα σώματα υποπρογραμμάτων και οι προδιαγραφές διαδικασιών και συναρτήσεων εξάγονται ως καλέσιμα σύμβολα, έτσι ώστε να μπορείτε να αναζητήσετε τόσο την προδιαγραφή όσο και το σώμα μιας ρουτίνας. Η αντιστοίχιση συμβόλων δεν κάνει διάκριση πεζών-κεφαλαίων, όπως και η ίδια η Ada.

Οι εισαγωγές προκύπτουν από τις προτάσεις `with` και `use`· η λέξη-κλειδί αφαιρείται ώστε ο γράφος να αποθηκεύει το όνομα του πακέτου. Ο γράφος καταγράφει επίσης κλήσεις, κληρονομικότητα και επικαλύψεις σε επισημασμένους τύπους, δημιουργία στιγμιοτύπων, αναφορές τύπων, αναγνώσεις και εγγραφές, καθώς και ακμές έγερσης και χειρισμού εξαιρέσεων.

Στη δομική αναζήτηση, οι τύποι task, οι προστατευμένοι τύποι, οι τύποι εγγραφών και οι τύποι interface μπορούν να επιλεγούν ως ορισμοί τύπων και τα σώματα των εισόδων ως μέθοδοι.

## Παραδείγματα προτροπών για πράκτορες

- «Ποιες μονάδες εξαρτώνται από το `Flight_Control.Sensors` και ποια υποπρογράμματά του καλούν;» (`dependency_search` incoming)
- «Δείξε την προδιαγραφή και το σώμα της `Compute_Trajectory` και όλους όσους την καλούν.» (`find_symbol`)
- «Εξήγησε πώς η εργασία τηλεμετρίας παραδίδει δεδομένα στο προστατευμένο αντικείμενο καταγραφής.» (`get_task_context`)

## Γνωστοί περιορισμοί

- Η Ada χρησιμοποιεί την ίδια σύνταξη για ορισμένες κλήσεις, για πρόσβαση σε πεδία εγγραφών και για δεικτοδότηση. Το Maguyva φιλτράρει ενσωματωμένους τύπους, πακέτα της τυπικής βιβλιοθήκης, συναρτήσεις χαρακτηριστικών και τελεστές (περίπου 113 μοτίβα) για να κρατήσει τον γράφο κλήσεων καθαρό, οπότε οι κλήσεις στην τυπική βιβλιοθήκη δεν γίνονται ακμές του γράφου. Η πρόσβαση σε πεδία εγγραφών και η δεικτοδότηση διακρίνονται από τις κλήσεις με βάση τη θέση τους στη γραμματική, όχι με βάση μια λίστα ονομάτων πεδίων. Συνηθισμένες κλήσεις I/O κειμένου όπως `Put_Line`, `Put` και `Get` διατηρούνται σκόπιμα.
- Οι προτάσεις `use` αλλάζουν την ορατότητα, αλλά δεν επιλέγονται ως εισαγωγές στη δομική αναζήτηση· οι προτάσεις `with` επιλέγονται.
- Οι κόμβοι τύπων εγγραφών και interface μπορεί να είναι ανώνυμα τμήματα, οπότε οι δομικές αναζητήσεις με βάση το όνομα μπορεί να τους χάσουν. Για επώνυμους τύπους χρησιμοποιήστε το `find_symbol`.

## Επόμενα βήματα

Συνδέστε ένα αποθετήριο με τον [γρήγορο οδηγό εκκίνησης](/el/docs/quickstart) και έπειτα δείτε τον πίνακα υποστήριξης στη [σελίδα συμβατότητας](/el/docs/compatibility). Αν ο κώδικας Ada συνδέεται με C, διαβάστε και τον [οδηγό για τη C](/el/languages/c).

## Λεπτομέρειες μηχανής

- Η υποστήριξη Ada καλύπτει προδιαγραφές `.ads`, σώματα `.adb` και `.ada`. Τα σώματα και οι προδιαγραφές υποπρογραμμάτων είναι και τα δύο καλέσιμα σύμβολα.
- Η αντιστοίχιση συμβόλων δεν κάνει διάκριση πεζών-κεφαλαίων, και οι προτάσεις `with` και `use` γίνονται σχέσεις εισαγωγής αφού αφαιρεθεί η λέξη-κλειδί.
- Περίπου 113 ενσωματωμένοι τύποι, πακέτα της τυπικής βιβλιοθήκης, συναρτήσεις χαρακτηριστικών και τελεστές φιλτράρονται από τις κλήσεις· η πρόσβαση σε πεδία εγγραφών και η δεικτοδότηση διακρίνονται από τις κλήσεις με βάση τη θέση τους στη γραμματική, και τα `Put_Line`, `Put` και `Get` διατηρούνται σκόπιμα.

## Χρήσιμα σημεία εισόδου MCP

- `find_symbol`: Χρησιμοποιήστε το για να βρείτε μαζί την προδιαγραφή και το σώμα ενός υποπρογράμματος, με τις αναφορές τους.
- `dependency_search`: Χρησιμοποιήστε διάσχιση incoming σε ένα πακέτο πριν αλλάξει η προδιαγραφή του, για να δείτε κάθε εξαρτώμενη μονάδα.
- `get_task_context`: Χρησιμοποιήστε το για προτροπές όπως «εξήγησε πώς η εργασία τηλεμετρίας παραδίδει δεδομένα στο προστατευμένο αντικείμενο καταγραφής».
