Siirry sisältöön
cd /languages
  • Korkean eheyden koodi
  • Ohjelmointi
  • AST- ja symbolituki

Ada-tuki Maguyva-palvelussa: spesifikaatiot, rungot ja pakettigraafit

Maguyva tukee Adaa AST-jäsennyksellä, symboleilla ja graafilla, jotta tekoälyagentit voivat seurata pitkäikäisten Ada-järjestelmien pakettispesifikaatioita, runkoja, taskeja ja tagattuja tyyppejä.

Miksi Ada-repositoriot tarvitsevat riippuvuuskartan

Ada erottaa sen, mitä paketti lupaa (.ads), siitä, miten se sen toteuttaa (.adb). Se on hyvää insinöörityötä, ja se tarkoittaa myös, että yksi muutos koskee useita tiedostoja, joita tekstihaku ei yhdistä puolestasi. Pitkäikäiset Ada-järjestelmät lisäävät vielä yhden kerroksen: geneeriset yksiköt, tagatut tyypit, taskit ja suojatut oliot, joiden suhteet merkitsevät enemmän kuin mikään yksittäinen tiedosto.

Maguyva antaa agentille tämän riippuvuuskartan ennen kuin se ehdottaa muutosta, mikä on juuri se järjestys, jota korkean eheyden katselmointi odottaa.

Mitä Maguyva poimii Adasta

Maguyva kattaa tiedostot .ads, .adb ja .ada. Aliohjelmien rungot sekä proseduurien ja funktioiden spesifikaatiot poimitaan kutsuttavina symboleina, joten rutiinin spesifikaatiota ja runkoa voi hakea molempia. Symbolien vertailu ei erottele isoja ja pieniä kirjaimia, kuten ei Adakaan.

Tuonnit muodostetaan with- ja use-lausekkeista; avainsana poistetaan, jolloin graafiin tallentuu paketin nimi. Graafi tallentaa myös kutsut, tagattujen tyyppien periytymisen ja ylikirjoitukset, ilmentymien luonnin, tyyppiviittaukset, luvut ja kirjoitukset sekä poikkeusten nostamisen ja käsittelyn kaaret.

Rakenteellisessa haussa task-tyypit, suojatut tyypit, tietuetyypit ja rajapintatyypit voi valita tyyppimäärittelyinä ja entry-rungot metodeina.

Esimerkkikehotteita agenteille

  • “Mitkä yksiköt riippuvat paketista Flight_Control.Sensors, ja mitä sen aliohjelmia ne kutsuvat?” (dependency_search incoming)
  • “Näytä rutiinin Compute_Trajectory spesifikaatio, runko ja kaikki kutsujat.” (find_symbol)
  • “Selitä, miten telemetriatask välittää tiedot lokituksen suojatulle oliolle.” (get_task_context)

Tunnetut rajoitukset

  • Adassa osa kutsuista, tietueen kenttiin viittaamisesta ja indeksoinnista käyttää samaa syntaksia. Maguyva suodattaa sisäänrakennetut tyypit, standardikirjaston paketit, attribuuttifunktiot ja operaattorit (noin 113 mallia), jotta kutsugraafi pysyy siistinä, joten standardikirjaston kutsuista ei tule graafin kaaria. Tietueen kenttiin viittaaminen ja indeksointi erotetaan kutsuista niiden kieliopillisen sijainnin perusteella, ei kenttien nimien luettelon perusteella. Tavalliset tekstimuotoisen I/O:n kutsut, kuten Put_Line, Put ja Get, säilytetään tarkoituksella.
  • use-lausekkeet muuttavat näkyvyyttä, mutta niitä ei valita tuonneiksi rakenteellisessa haussa; with-lausekkeet valitaan.
  • Tietue- ja rajapintatyyppien solmut voivat olla nimettömiä katkelmia, joten nimeen perustuvat rakennekyselyt voivat ohittaa ne. Käytä nimetyille tyypeille työkalua find_symbol.

Seuraavat vaiheet

Yhdistä repositorio pikaoppaan avulla ja tarkista sitten tukimatriisi yhteensopivuussivulta. Jos Ada-koodisi sitoutuu C-koodiin, lue myös C-opas.

Parhaiten sopii

  • > Tiimit, jotka ylläpitävät pitkäikäistä Ada-koodia ilmailussa, puolustuksessa, rautateillä tai muilla korkean eheyden aloilla, joilla jokainen muutos katselmoidaan.
  • > Koodikannat, jotka on jaettu `.ads`-spesifikaatioihin ja `.adb`-runkoihin niin, että rajapinta ja toteutus ovat eri tiedostoissa.
  • > Insinöörit, jotka käyttävät tekoälyagentteja vaikutusanalyysiin ja katselmointien valmisteluun eivätkä katselmoimattomaan koodin generointiin.

Agenttien työnkulut

  • > Löytää kaikki yksiköt, jotka ottavat paketin käyttöön `with`-lauseella, ennen kuin sen spesifikaatiota muutetaan.
  • > Jäljittää pakettirajojen yli, mitkä aliohjelmat kutsuvat rutiinia.
  • > Kartoittaa task-tyypit, suojatut tyypit ja tagattujen tyyppien hierarkiat ennen rinnakkaisuuteen tai suunnitteluun liittyvää muutosta.

Moottorin yksityiskohdat

  • > Ada-tuki kattaa `.ads`-spesifikaatiot, `.adb`-rungot ja tiedostot `.ada`. Aliohjelmien rungot ja spesifikaatiot ovat molemmat kutsuttavia symboleja.
  • > Symbolien vertailu ei erottele isoja ja pieniä kirjaimia, ja `with`- ja `use`-lausekkeista tulee tuontisuhteita, kun avainsana on poistettu.
  • > Noin 113 sisäänrakennettua tyyppiä, standardikirjaston pakettia, attribuuttifunktiota ja operaattoria suodatetaan pois kutsuista; tietueen kenttiin viittaaminen ja indeksointi erotetaan kutsuista niiden kieliopillisen sijainnin perusteella, ja `Put_Line`, `Put` ja `Get` säilytetään tarkoituksella.

Hyödylliset MCP-liittymäkohdat

  • find_symbol

    Käytä sitä löytääksesi aliohjelman spesifikaation ja rungon yhdessä viittauksineen.

  • dependency_search

    Käytä incoming-läpikäyntiä pakettiin ennen sen spesifikaation muuttamista nähdäksesi kaikki siitä riippuvat yksiköt.

  • get_task_context

    Käytä sitä kehotteisiin kuten "selitä, miten telemetriatask välittää tiedot lokituksen suojatulle oliolle".