S 6 Semantikkbasert kodesøk; EWSTranslate
Vårt arbeid med kodesøk er designet for å la programmerere dra nytte av de store lagrene av tilgjengelig åpen kildekode. Tradisjonelle kodesøkemotorer som Googles kodesøk, Koders eller Krugle gir tilgang til slike repositorier, men forenkler ikke programmererens jobb i uke bruke koden. A tar nøkkelord és a visszatérő potensielt hundrevis av candidatstykker av kód. Programozó må da gå gjennom hver av disse visszatérő filene. De må da se om koden kan være relevant. Hvis det er, må de lese det i detailj for å avgjøre om det er akkurat det de vil ha eller i det minste i nærheten av det. Til slutt må de tilpasse koden for oppfylle deres spesielle krav til navngivning, formatering, feilhåndtering, etc.

Vi føler and en bedre tilnærming ville være å få programmereren å gi mer presis informasjon om hva de vil ha, og så få systemet til å gjøre det grunne arbeidet med å sjekke de returnerte kodefragmentene, å endre koden for å gjenre hvaer om forvandle koden til å passe inn i målrammen. Vår søkendefront har programmereren definent semantikken til det de ønsker. Ez magában foglalja a jelentkezési lapot és az aláírási űrlapot, az aláírást, egy tesztfájlt és egy vállalkozót (JML-en keresztül) a funkcionális specifikációhoz, egy sor ellenőrzést (lásd a Java sablonkészlet súgóját) és egy dokumentumot (teljes megvalósítás). I tillegg kan brukeren gi en contekst inn i hvilken koden vil passe. Frontenden forsøker å gjøre disse spesifikasjonene enkle å gi.
Systemet fungerer ved å bruke søkeordene for å få tilgang til en av de tilgjengelige kodesøkemotorer (eller en locale kode søkemotor for kode tilgjengelig på Brown), å få kandatfiler. Hver klasse eller metode i disse filene (avhengig av hva brukeren søker etter) regnes som en potensiell løsning. Disse løsningene blir deretter transformert ved hjelp av et sett på rundt 30 transformasjoner i et forsøk på å kartlegge koden til nøyaktig hva programmereren angav. Transformasjonene spenner fra det enkle (for exempel å endre navnet på metoden for å matche signaturen) til komplekset (for exempel å finne linje i metoden som beregner en verdi av den returnerte typen og deretter gjøre en bakoverskive til de eneste frie variablene er verdier av parametertyper). Minden transzformáció a megfelelő aláírásokhoz, a blir deretter testet ved hjelp a tanulási tesztekhez, a sikkerhetsbegrensninger és a JML-reglerekhez. A teszt átalakításának eredményei a tesztek eredményei alapján. Løsningene som passerer testene blir formatert i henhold til brukerens spesifiserte stil, sortert etter størrelse, kompleksitet eller ytelse i testene, and presenteres tilbake til brukeren.
Rendszer kan prøves ut (det meste av tiden - noen ganger er serveren nede) p http://conifer.cs.brown.edu/s6 .
Az S6 hárfa esetében használhatja a finomabb brukergrensesnitt gitt en skisse av brukergrensesnittet és a å finne test tilfeller gitt kode som må testes rendszer útmutatóját.
papirer
Semantikkbasert kodesøk, ICSE 2009, 2009. május.
Hunter: Next Generator Code Gjenbruk for Java: Yuepeng Want, Yu Feng, Ruben Martins, Arati Kaushik, Isil DIllig és Steven Reiss, FSE 2016.
Steven Reiss, Yun Miao és Qi Xin Søker brukergrensesnittet, Automated Software Engineering Journal, 2017.