Angielskifrancuskihiszpański

Ulubiona usługa OnWorks

sim_java - Online w chmurze

Uruchom sim_java w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie sim_java, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


sim - znajdź podobieństwa w C, Javie, Pascalu, Modula-2, Lisp, Mirandzie lub plikach tekstowych

STRESZCZENIE


sim_c [ -[defFiMnpPRsSTv] -r N -t N -w N -o F ] plik ... [ [ / | ] plik ... ]
sim_c ...
sim_java ...
sim_pasc ...
sim_m2 ...
sim_lisp ...
sim_mira ...
sim_tekst ...

OPIS


Sim_c odczytuje pliki C filet ... i szuka podobnych fragmentów tekstu; dwa
segmenty tekstu programu są podobne, jeśli różnią się tylko układem, komentarzem, identyfikatorami,
oraz zawartość liczb, łańcuchów i znaków. Jeśli są jakieś przebiegi o wystarczającej długości
znalezione, są zgłaszane na standardowym wyjściu; liczba znaczących tokenów w przebiegu
jest podany w nawiasach kwadratowych.

Sim_java robi to samo dla Javy, sim_pasc dla Pascala, sim_m2 dla Moduli-2, sim_mira dla
Mirandę i sim_lisp dla Lispa. Tekst_Sim działa na dowolnym tekście i jest sporadycznie
przydatne w skryptach powłoki.

Program może być używany do znajdowania skopiowanych fragmentów kodu w rzekomo niepowiązanych
programy (z -s or -S) lub do znalezienia przypadkowo zduplikowanego kodu w większych projektach
(z -f or -F).

Jeśli separatorem / or | jest obecny na liście plików wejściowych, pliki są podzielone na
grupa „nowych” plików (przed rozszerzeniem / or |) oraz grupa „starych” plików; Jeżeli nie ma / or
|, wszystkie pliki są „nowe”. Stare pliki nigdy nie są ze sobą porównywane. Zobacz także
opis -s i -S opcje poniżej.

Ponieważ tester podobieństw potrzebuje nazw plików, aby wskazać podobieństwa, nie może ich odczytać
ze standardowego wejścia.

Dostępne są następujące opcje:

-d Wyjście jest w diff(1)-podobny format zamiast domyślnego formatu 2-kolumnowego.

-e Każdy plik jest porównywany z każdym plikiem w izolacji; to znajdzie wszystkie podobieństwa
między wszystkimi zaangażowanymi tekstami, niezależnie od powtarzającego się tekstu (zobacz `Calculating
procenty poniżej).

-f Przebiegi są ograniczone do segmentów z nawiasami równoważącymi, aby odizolować potencjał
organy rutynowe (nie w sim_tekst).

-F Nazwy procedur w wywołaniach muszą dokładnie pasować (nie w sim_tekst).

-i Nazwy plików do porównania są odczytywane ze standardowego wejścia, w tym a
ewentualny separator / or |; nazwy plików muszą być jeden do wiersza. Ta opcja
umożliwia określenie bardzo dużej liczby nazw plików; różni się od @
funkcja zapewniana przez niektóre kompilatory w tym, że obsługuje tylko nazwy plików i robi to
nie rozpoznają argumentów opcji.

-M Informacje o wykorzystaniu pamięci są wyświetlane na standardowym wyjściu błędu.

-n Znalezione podobieństwa są podsumowywane według nazwy pliku, pozycji i rozmiaru, a nie
wyświetlany w całości.

-o F Dane wyjściowe są zapisywane do pliku o nazwie F.

-p Wynik jest podany w procentach podobieństwa; patrz „Obliczanie procentów” poniżej;
sugeruje -e i -s.

-P As -p ale pokazany jest tylko główny współautor; implikuje -e i -s.

-r N Minimalna długość biegu jest ustawiona na N jednostki; wartość domyślna to 24 tokeny, z wyjątkiem in
sim_tekst, gdzie jest to 8 słów.

-R Katalogi na liście wejściowej są wprowadzane rekurencyjnie, wraz ze wszystkimi zawartymi w nich plikami
biorą udział w porównaniu.

-s Zawartość pliku nie jest porównywana z samą sobą (-s dla „not self”).

-S Zawartość nowych plików jest porównywana tylko ze starymi plikami, a nie pomiędzy
sami.

-t N W połączeniu z -p or -P opcji, ustawia próg (w procentach) poniżej
które podobieństwa nie będą zgłaszane; wartością domyślną jest 1, z wyjątkiem in sim_tekst,
gdzie jest 20.

-T Powstaje bardziej zwięzła i jednolita forma wyjścia, która może być bardziej odpowiednia dla
przetwarzanie końcowe.

-v Drukuje numer wersji i datę kompilacji na standardowym wyjściu, a następnie zatrzymuje się.

-w N Używana szerokość strony jest ustawiona na N kolumny; wartość domyślna to 80.

-- (Tajna opcja, która drukuje dane wejściowe tak, jak je widzi sprawdzanie podobieństwa, i
potem przestaje.)

Kurs -p opcja daje w wyniku wiersze formularza
F składa się w x% z materiału G
co oznacza, że ​​x% tekstu F można również znaleźć w G. Zauważ, że ta relacja nie jest
symetryczny; w rzeczywistości jest całkiem możliwe, że jeden plik składa się w 100% z tekstu
inny plik, podczas gdy drugi plik stanowi tylko 1% tekstu pierwszego pliku, jeśli
ich długości różnią się wystarczająco. The -P (wielkie P) pokazuje głównego uczestnika dla
tylko każdy plik. Upraszcza to identyfikację zestawu plików A[1] ... A[n], gdzie
konkatenacja tych plików jest również obecna. Próg można ustawić za pomocą -t
opcja; zwróć uwagę, że szczegółowość rozpoznawanego tekstu jest nadal regulowana przez -r
opcja lub jej wartość domyślna.

Kurs -r opcja kontroluje liczbę „jednostek”, które składają się na przebieg. Do programów, które
porównaj kod języka programowania, jednostka jest tokenem leksykalnym w odpowiednim języku;
komentarz i standardowy materiał preambuły (włączenie pliku itp.) jest ignorowany, a wszystkie ciągi znaków
są uważane za takie same. Dla sim_tekst jednostka to „słowo”, które jest definiowane jako dowolna sekwencja
jednej lub więcej liter, cyfr lub znaków powyżej 127 (177 ósemkowo), (aby pomieścić
litery takie jak ä, ø itp.).
Tekst_Sim akceptuje tekst ze spacjami jako normalny tekst.

Kurs -s i -S opcje kontrolują, które pliki mają być porównywane. Pliki wejściowe są podzielone na dwie części
grupy, nowe i stare. W przypadku braku tych opcji sterowania programy porównują
pliki w ten sposób (dla 4 nowych plików i 6 starych):
nowy / stary <- pierwszy plik
1 2 3 4 / 5 6 7 8 9 10
|------------/------------
nr 1 | C /
mi 2 | cc /
w 3 | ccc /
4 | cccc /
drugi / / / / / / / / / / / / /
plik -> 5 | cccc /
o 6 | cccc /
l 7 | cccc /
re 8 | cccc /
9 | cccc /
10 | cccc /
gdzie cs reprezentuje porównania plików, a / rozgraniczenie między nowym a starym
akta.
Korzystanie z -s opcja zmniejsza to do:
nowy / stary <- pierwszy plik
1 2 3 4 / 5 6 7 8 9 10
|------------/------------
nr 1 | /
mi 2 | C /
w 3 | cc /
4 | ccc /
drugi / / / / / / / / / / / / /
plik -> 5 | cccc /
o 6 | cccc /
l 7 | cccc /
re 8 | cccc /
9 | cccc /
10 | cccc /
Kurs -S opcja ogranicza to dalej do:
nowy / stary <- pierwszy plik
1 2 3 4 / 5 6 7 8 9 10
|------------/------------
nr 1 | /
mi 2 | /
w 3 | /
4 | /
drugi / / / / / / / / / / / / /
plik -> 5 | cccc /
o 6 | cccc /
l 7 | cccc /
re 8 | cccc /
9 | cccc /
10 | cccc /

Programy mogą obsługiwać nazwy plików UNICODE w systemie Windows. Ma to znaczenie tylko w ramach
-R opcji, ponieważ nie ma możliwości podania nazw plików UNICODE z wiersza poleceń.

OGRANICZENIA


Powtarzające się wprowadzanie jest zmorą sprawdzania podobieństwa. Jeśli mamy plik zawierający 4
kopie identycznego tekstu,
A1 A2 A3 A4
gdzie numery służą jedynie do rozróżnienia identycznych egzemplarzy, jest 8 tożsamości:
A1=A2, A1=A3, A1=A4, A2=A3, A2=A4, A3=A4, A1A2=A3A4 i A1A2A3=A2A3A4. Spośród nich tylko 3
mają znaczenie: A1=A2, A2=A3 i A3=A4. I dla tabeli z 20 liniami identycznymi dla każdej
innych, nierzadkich w programie, jest 715 tożsamości, z czego najwyżej 19
znaczący. Zgłoszenie wszystkich 715 z nich jest oczywiście nie do przyjęcia.

Aby temu zaradzić, wyszukiwanie tożsamości odbywa się w następujący sposób: Dla każdej pozycji w pliku
tekstu, zostanie znaleziony największy segment, którego nienakładająca się kopia występuje w tekście
za tym. Ten segment i jego kopia są zgłaszane, a skanowanie jest wznawiane na tej pozycji
zaraz po odcinku. W powyższym przykładzie daje to tożsamości A1A2=A3A4
i A3=A4, co jest całkiem zadowalające, i dla N mniej więcej identyczne segmenty 2 log N
podane są wiadomości.

Działa to również dobrze, gdy cztery identyczne segmenty znajdują się w różnych plikach:
Plik1: A1
Plik2: A2
Plik3: A3
Plik4: A4
Teraz połączone segmenty, takie jak A1A2, nie występują, a algorytm znajduje przebiegi A1=A2,
A2=A3 i A3=A4, w sumie N-1 działa, wszystkie pouczające.

Obliczenie Procenty
Powyższe podejście nie jest odpowiednie do uzyskania procentu zawartości pliku, który
można znaleźć w innym pliku. Wymaga to porównania osobno każdej pary plików
reprezentowane przez ac w powyższych macierzach; oto co -e opcja ma. Pod -e
opcja segment Plik1:A1, rozpoznany w Pliku2, zostanie ponownie rozpoznany w Pliku3 i
Plik4. W powyższym przykładzie generuje przebiegi
Plik1:A1=Plik2:A2
Plik1:A1=Plik3:A3
Plik1:A1=Plik4:A4
Plik2:A2=Plik3:A3
Plik2:A2=Plik4:A4
Plik3:A3=Plik4:A4
w sumie ½N(N-1) biegnie.

CZAS ROLNICZE SPACE WYMAGANIA


Zadbano o dotrzymanie wymagań czasowych wszystkich procesów wewnętrznych (prawie)
liniowy w długościach plików wejściowych, przy użyciu różnych tabel. Jeśli jednak istnieje
za mało pamięci dla tabel, są one odrzucane w kolejności nieważności, w ramach której
warunkach algorytmy powracają do swojej kwadratowej natury.

Wymagania czasowe są kwadratowe pod względem liczby plików. Oznacza to, że np.
jeden plik 64 MB przetwarza się znacznie szybciej niż 8000 plików 8 kB.

Program wymaga 6 bajtów pamięci na każdy token na wejściu; 2 bajty na nową linię
(nie podczas robienia procentów); i około 76 bajtów dla każdego znalezionego przebiegu.

PRZYKŁADY


Telefon
sim_c *.c
podkreśla zduplikowany kod w katalogu. (Przydatne jest usunięcie wygenerowanych plików
pierwszy.) Rozmowa
sim_c -f -F *.c
może je dokładniej wskazać.

Wezwanie
sim_text -e -p -s nowy/* / stary/*
porównuje każdy plik w new/* z każdym plikiem w new/* i old/*, a jeśli jakakolwiek para ma ich więcej
20% wspólnego, fakt ten jest zgłaszany. Zwykle znaczące jest podobieństwo wynoszące 30% lub więcej;
niższy niż 20% to prawdopodobnie zbieg okoliczności; a pomiędzy jest wątpliwe.

Wezwanie
sim_text -e -n -s -r100 nowy/* "|" stary/*
porównuje te same pliki i raportuje duże wspólne segmenty. (T | może być używany jako
separator zamiast / w systemach, w których / ponieważ parametr wiersza poleceń zostaje zniekształcony przez
tłumacz poleceń).

Oba podejścia są dobre do wykrywania plagiatu.

Używaj sim_java online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    BiuroPiętro
    BiuroPiętro
    OfficeFloor zapewnia odwrócenie
    sterowanie sprzężeniem, z jego: - zależnością
    wtrysk - kontynuacja wtrysku -
    iniekcja nici Więcej informacji
    odwiedzić...
    Pobierz OfficeFloor
  • 2
    DivKit
    DivKit
    DivKit jest oprogramowaniem open source opartym na serwerze
    Struktura interfejsu użytkownika (SDUI). Pozwala na to
    wdrażaj aktualizacje pochodzące z serwera
    różne wersje aplikacji. Może tak być
    używany do...
    Pobierz DivKita
  • 3
    podkonwerter
    podkonwerter
    Narzędzie do konwersji między różnymi
    forma subskrypcji. Użytkownicy Shadowrocket
    powinien używać ss, ssr lub v2ray jako celu.
    Możesz dodać &remark= do
    Telegram-podobny HT...
    Pobierz subkonwerter
  • 4
    PLUSK
    PLUSK
    SWASH to liczba ogólnego przeznaczenia
    narzędzie do symulacji niestabilności,
    niehydrostatyczny, o swobodnej powierzchni,
    przepływ wirowy i zjawiska transportu
    na wodach przybrzeżnych jako...
    Pobierz SWASH
  • 5
    VBA-M (zarchiwizowane — teraz na Github)
    VBA-M (zarchiwizowane — teraz na Github)
    Projekt został przeniesiony do
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Cechy:Tworzenie cheatów zapisywanie stanówmulti
    system, obsługuje gba, gbc, gb, sgb,
    sgb2Tu...
    Pobierz VBA-M (zarchiwizowane — teraz na Github)
  • 6
    Stacer
    Stacer
    Optymalizator i monitorowanie systemu Linux
    Repozytorium Github:
    https://github.com/oguzhaninan/Stacer.
    Odbiorcy: użytkownicy końcowi/komputery. Użytkownik
    interfejs: Qt. Programowanie La...
    Pobierz Stacera
  • więcej »

Komendy systemu Linux

Ad