Indus

Screenshot Software:
Indus
Szczegóły programowe:
Wersja: 0.8
Filmu: 3 Jun 15
Licencja: Wolny
Popularność: 14

Rating: 5.0/5 (Total Votes: 1)

Indus jest wysiłek, aby zapewnić zbiór analiz programu i transformacje realizowane w języku Java, aby dostosować i dostosować programy Java. Indus ma służyć jako parasol dla:
* Analiza statyczna punkty, takie jak analizy, uciec analizy i analizuje zależność,
* Przekształcenia takie jak krojenie programu i specjalizacji programu poprzez częściowe oceny i
* Dowolny moduł oprogramowania, który dostarcza analizy / transformacje do konkretnej aplikacji, takich jak Bandera czy platformy takie jak Eclipse.
Obecnie istnieją trzy moduły, które są częścią Indusu. Oczekuje się, że kilka modułów dodaje się w ciągu czasu. Zapewniamy przegląd intencyjny każdego modułu, które są obecnie dostępne.
Indus jest modułem, który mieści realizacji odnoszące się do algorytmów i struktur danych wspólnych analiz i przemian, które są częścią lub są planowane, aby być częścią Indusu. Moduł ten zawiera definicję interfejs wspólny dla większości analiz i przekształceń stworzenie ram, w których / przekształcenia można łączyć różne implementacje systemów analiz, tworząc z łatwością. Dlatego też, moduł ten jest aktualizowany, gdy nowe rodzaj analizy / transformacji jest wykonany jako moduł w Indus. Jednak nowe wdrożenie analizy / transformacji nie wpłynie to moduł, jak to wdrożyć istniejący interfejs.
Moduł StaticAnalyses ma być zbiorem analiz statycznych, takich jak analiza przepływów obiektu, uciec analizy i analizuje zależność. Analizy w tym module korzystania z typowych interfejsów i wdrożeń z Indus i może zdefiniować / dostarczenie nowych interfejsów / implementacje specyficzne dla nowych analiz. Istniejące analizy są wymienione poniżej.
* Analiza obiektowa przepływu (OFA) jest do analizy punkty dla języka Java. Każda witryna alokacja w analizowanym systemie jest traktowana jako abstrakcyjne obiektu i jego przepływ przez system jest śledzony wywnioskować możliwych typów odbiornik w call-miejscu, aby umożliwić budowę precyzyjnego call-wykresu. Dokładność analizy może być zmieniana w zakresie przepływu wrażliwości dla metody zmiennych lokalnych i obiektowych wrażliwości na polach instancji.
* Ucieczka Analiza jest rozszerzony wdrożenie analizy zaproponowanej przez Ruf ucieczki w celu ingerencji przycinanie i gotowych krawędzi uzależnienia. Przedłużenia są w postaci szwu Ponadto równoważności wartości do analizy w celu polepszenia wykrywania konflikt pola odczytu / zapisu występuje w różnych nitek niż tylko za pomocą równości typ pierwotne wyrażenia dostępu. Analiza wykorzystuje również przepływu informacji obiektu prostopadle do dalszej poprawy precyzji.
* Analizy zależność jest zbiorem zależności analiz: kontroli dostępu, sterowanie oparte na bazie, wyjścia identyfikator danych, opartych na bazie danych referencyjnych, zakłóceń, gotowy, synchronizacji i dywergencji, wymagane przez takie analizy / transformacji programu i krojenia częściową ocenę , Zakłócenia i uzależnienie Gotowy analizuje zależą od poprzedniej analizy ucieczki, podczas gdy na bazie danych odniesienia i analizuje zależność synchronizacji zależy od przepływu informacji Przedmiotem obliczonego informacji i call-milimetrowym. Niektóre analizy mają różne poziomy dokładności, która może być zmieniana za pomocą dobrze określonej interfejsu.
* Side-Effect Analysis zapewnia metoda poziomu informacji efektów ubocznych. Użytkownik może sprawdzić, czy któryś z argumentów / parametrów do call-site / metody wpłynie bezpośrednio (najbliższych członków) lub pośrednio (rekurencyjnie osiągalne członków). Podobnie, użytkownik może podać ścieżkę dostępu do danych zakorzenionego w argumenty / parametry do call-site / metody i zapytania, czy punkt końcowy ścieżki dostępu do danych zależy od połączenia / metody.
* Monitorowanie Anlaysis jest prosta analiza, która zapewnia monitor / blokady informacji wykresu dla danego systemu.
* Safe Lock Analiza jest analiza, która odkrywa, jeśli konserwatywnie blokady (monitory) nie odbędzie się w nieskończoność. Informacja ta jest wykorzystywana w połączeniu z Zależności czasowe steming dla Object.wait () i () / Object.notify (Object.notifyAll) jak to jest zrobione w gotowości uzależnienia.
* Cząsteczkowość Analiza dostarcza informacji o atomowości w danym systemie. Obecna implementacja polega na analizie ucieczki przewidzieć, czy oświadczenie może być wykonany atomowo. Ta informacja jest wykorzystywana do wykrywania regionu atomowy kodów. Ta informacja jest użyteczna w zastosowaniach, takich jak model kontrolny dla zmniejszenia wielkości przestrzeni stanów, a tym samym zwiększenia wydajności.
Niektóre analizy mogą być wystarczająco duże, aby stanowić moduł na własną rękę i takie analizy odbędzie się w różne moduły w Indus zamiast być spożywane przez ten moduł.
Moduł Java Program Slicer zawiera realizację programu Java z rdzenia wraz z adapterami krajalnicy, które dostarczają krajalnicy w innych aplikacjach, takich jak Bandera i Eclipse. Realizacja jest architected jako biblioteka, a nie jako aplikacja dla ułatwienia ponownego użycia To podczęści. Rdzeń jest niezależne od zastosowania; Wymagania poszczególnych aplikacji wycinka może być spełniony przez kodowania się implementacje interfejsów post-processingu i podpinania się w tych implementacji do tworzenia niestandardowych krajalnicy.
Moduł ten opiera się głównie na informacjach dostarczonych przez uzależnienie analizy i również call-wykres świadczonych przez OFA poprzez dobrze zdefiniowane interfejsy, która udostępnia implementacje zewnętrznych mają być wykorzystywane do krojenia.
Ta implementacja krajalnicy jest dostarczany do Eclipse z intuicyjnym interfejsie użytkownika poprzez wtyczki Kaveri.
Opis: o
Do tyłu i do przodu generacji kawałek. Kompletny plastry (unia tyłu i do przodu
plastry począwszy od tych samych kryteriów, slice) mogą być generowane.
* Wsparcie dla residualize (odpowiednich) plastry do wykonywalnych plików klas.
* Wsparcie dla kontekstowego krojenia poprzez kontekstowego bogatej specyfikacji kryteria kawałek.
* Wsparcie ograniczyć plaster w określonej części układu według specyfikacji zakresu.
* Wsparcie kromka serializacji kryteria, konfiguracji krajalnic i plasterki.
Wszystkie moduły w pracy projektowej Indusu na Jimple, pośrednią reprezentacji Java, świadczone przez zestaw narzędzi sadzy w grupie z Sable Uniwersytetu McGill. Każdy moduł w projekcie będzie narażony jako jeden lub więcej wtyczek Eclipse jeżeli przewidziane jest przydatny dla użytkownika i podatne na zużycie użytkownika za pośrednictwem graficznego interfejsu użytkownika.
Inżynieria oprogramowania Filozofia
Każdy moduł w tym projekcie zapewni tylko wymaganą funkcjonalność poprzez dobrze zdefiniowane interfejsy, które mogą być realizowane w montażu dostosowanego systemu z odpowiednimi rozszerzeniami, które spełniają określone wymagania. Jako interfejs jest wyraźnie oddzielone od wykonania, każda realizacja zewnętrznego, który zapewnia odpowiedni interfejs można bezproblemowo używać z modułami z tym projektem.
Tło
Realizacja większości analiz był spowodowany wymogami programu Java krajalnicy wymaganych przez Bandery. Jednak, jak krajalnica program może być używany na zewnątrz Bandera i analizy mogą być wykorzystywane w celu umożliwienia innych przemian, takich jak specjalizacji programu poprzez częściowe oceny, przenieśliśmy analiz i transformacji do nowego projektu o nazwie Indus.

Komentarze do Indus

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!