С6: Семантика Кодының Негізінде Іздеу

Ерекше Пост http://cs.brown.edu/~spr/research/s6.html

 

Біздің жұмыс кодексінде іздеу үшін арналған мүмкіндік бағдарламашыларға пайдалануға үлкен қоймаларын қол жетімді ашық бастапқы коды. Дәстүрлі кодын іздеу жүйелері сияқты Google codesearch, Koders, немесе Krugle қол жеткізуді қамтамасыз етеді, осындай қоймаларымен, бірақ шын мәнінде емес, жеңілдетуге бағдарламашыларға жұмыс кодының көмегімен. Олар өздеріне түйін сөздер қайтарады және әлеуетті жүздеген үміткердің кесектері код. Программист содан кейін арқылы өтуі тиіс, бұл қайтарылған файл. Олар бар болса, көру үшін код болуы мүмкін тиісті. Егер солай болса, онда олар әрі қарай, оны егжей-тегжейлі анықтау үшін, егер бұл олар немесе кем дегенде, жақын оған. Ақырында, олар бейімдеу коды қанағаттандыру үшін өздерінің нақты талаптарының байланысты атау беру, форматтау, өңдеу, қателер және т. б.

Біздің ойымызша, бұл жақсы болар еді үшін программист ұсыну неғұрлым нақты ақпарат, олар келеді, онда жүйе ж / е қара жұмысын тексеру қайтарылды фрагменттері кодын, кодты түрлендіру үшін, бұл-бағдарламашы қалайды, және трансформация кодын, кірісіп кету тұстама шеңбері. Біздің іздеу алдыңғы жоспардың бар программистке анықтау семантику, не олар келеді. Бұл қамтиды түйін сөздер ретінде бейресми сипаттамасы, қолдар, тест жағдайлары мен келісім-шарттар (қамтамасыз ету) үшін функционалдық ерекшеліктер, шектеулер қауіпсіздігіне байланысты (пайдалана отырып, модель қауіпсіздік Java), және продевать тінінің шектеулер (толық емес көлемде). Сонымен қатар, қолданушы қамтамасыз ете алады контекст, онда коды сәйкес келетін болады. Алдыңғы аяғында әрекет жасауға, осы сипаттамаларды оңай ұсынсын.

Жүйесі жұмыс істейді пайдалана отырып, түйін сөздер қол жеткізу үшін бір қолданыстағы іздеу жүйесін коды (коды, жергілікті іздестіруші үшін коды қол жетімді қоңыр) алу үшін үміткердің файлдар. Әр сынып немесе әдісі осы файлдарда қарамастан, қолданушы іздейді) қаралады әлеуетті шешімі. Бұл шешім, содан кейін преобразуются жиынтығы көмегімен 30-ға жуық түрлендірулер тырысып салыстыруға коды дәлдігіне, яғни программист нақтыланады. Трансформация болуы мүмкін қарапайым (мысалы, атын өзгерту әдісіне сәйкес келетін, қолы) күрделі (мысалы, іздеу жолдың әдісі бұл вычисляет мәні қайтарылатын типті, содан кейін не істейсің кері бөлігін ғана еркін айнымалы-параметрдің типі). Барлық шешімдер, мүмкін өзгертілген болуы сигнатуре содан кейін тексерілуі көмегімен осы тест-кейстер, шектеу қауіпсіздігіне байланысты, және қағидалары. Қосымша түрлендіру қолданылуы мүмкін нәтижелері бойынша тесттік жағдай. Шешім өтетін тест жағдайлары, форматируются пікірі бойынша, пайдаланушылардың көрсетілген стилі, отсортированный көлемі, күрделілігі және тиімділігін тестілік мысалдар табыс етті пайдаланушыға кері.

Жүйе мүмкін опробована (көп уақыт-кейде сервер жұмыс істемейді) http://conifer.cs.brown.edu/s6.

Құжаттар

Семантика кодының негізінде іздеу, ҚӨК-нің 2009 Мамыр 2009.

Таңдап болса, іздеу керек, люкс 2009 Мамыр 2009.

Сурет

Алдыңғы жоспары:

С6 алдыңғы жоспардың сурет

Алдыңғы аяғында көрсетіп нәтижелері:

алдыңғы бөлік нәтижелері

Схемасы внутренности:

ішкі түрі

 

Бағдарламалық қамтамасыз ету

Бағдарламалық қамтамасыз ету қол жетімді ftp://ftp.cs.brown.edu/u/spr/s6.tar.gz.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>