İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

sim_pasc - Bulutta Çevrimiçi

OnWorks ücretsiz barındırma sağlayıcısında sim_pasc'i Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü üzerinden çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden çok ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen sim_pasc komutudur.

Program:

ADI


sim - C, Java, Pascal, Modula-2, Lisp, Miranda veya metin dosyalarındaki benzerlikleri bulun

SİNOPSİS


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

TANIM


sim_c C dosyalarını okur dosya ... ve benzer metin parçalarını arar; XNUMX
program metninin bölümleri, yalnızca düzen, yorum, tanımlayıcılar,
ve sayıların, dizelerin ve karakterlerin içeriği. Yeterli uzunlukta herhangi bir çalışma varsa
bulundu, standart çıktıda rapor edildiler; koşudaki önemli jetonların sayısı
köşeli parantezler arasında verilir.

sim_java Java için de aynısını yapar, sim_pasc Pascal için, sim_m2 Modül-2 için, sim_mira için
Miranda ve sim_lisp LISP için. sim_text keyfi metin üzerinde çalışır ve bazen
kabuk komut dosyalarında kullanışlıdır.

Program, alakasız olduğu ileri sürülen kopyalanmış kod parçalarını bulmak için kullanılabilir.
programlar (ile -s or -S) veya daha büyük projelerde yanlışlıkla kopyalanan kodu bulmak için
(ile -f or -F).

ayırıcı ise / or | girdi dosyaları listesinde mevcutsa, dosyalar bir
"yeni" dosya grubu (önce / or |) ve bir grup "eski" dosya; yoksa / or
|, tüm dosyalar "yeni". Eski dosyalar asla birbiriyle karşılaştırılmaz. Ayrıca bkz.
Açıklaması -s ve -S aşağıdaki seçenekler.

Benzerlik test cihazı, benzerlikleri tam olarak belirlemek için dosya adlarına ihtiyaç duyduğundan okuyamaz.
standart girdiden.

Aşağıdaki seçenekler vardır:

-d Çıktı bir farkVarsayılan 1 sütunlu biçim yerine (2) benzeri biçim.

-e Her dosya, ayrı ayrı her dosyayla karşılaştırılır; bu tüm benzerlikleri bulacaktır
tekrar eden metinden bağımsız olarak ilgili tüm metinler arasında (bkz.
Yüzdeler aşağıda).

-f Potansiyeli izole etmek için çalıştırmalar, dengeleme parantezli segmentlerle sınırlıdır
rutin organlar (içinde değil sim_text).

-F Çağrılardaki rutin adlarının tam olarak eşleşmesi gerekir ( sim_text).

-i Karşılaştırılacak dosyaların adları, standart girdiden okunur.
olası ayırıcı / or |; dosya adları bir satıra bir olmalıdır. Bu seçenek
çok sayıda dosya adının belirtilmesine izin verir; @'den farklıdır
bazı derleyiciler tarafından sağlanan, yalnızca dosya adlarını işlemesi ve
seçenek argümanlarını tanımıyor.

-M Standart hata çıktısında bellek kullanım bilgileri görüntülenir.

-n Bulunan benzerlikler, dosya adı, konum ve boyuta göre özetlenmiştir.
tam olarak görüntülenir.

-o F Çıktı adlı dosyaya yazılır F.

-p Çıktı, benzerlik yüzdeleri olarak verilmiştir; aşağıdaki 'Yüzdelerin Hesaplanması'na bakın;
ima -e ve -s.

-P As -p ancak yalnızca ana katkıda bulunan kişi gösterilir; ima eder -e ve -s.

-r N Minimum çalışma uzunluğu N birimler; varsayılan, 24 jetondur, dışında
sim_text, nerede 8 kelime.

-R Girdi listesindeki dizinler özyinelemeli olarak girilir ve içerdikleri tüm dosyalar
karşılaştırmaya katılırlar.

-s Bir dosyanın içeriği kendisiyle karşılaştırılmaz ("kendinden değil" için -s).

-S Yeni dosyaların içeriği yalnızca eski dosyalarla karşılaştırılır - arada değil
kendilerini.

-t N İle kombinasyon halinde -p or -P seçenekleri, aşağıdaki eşiği (yüzde olarak) ayarlar
hangi benzerlikler rapor edilmeyecektir; dışında varsayılan 1'dir sim_text,
nerede 20.

-T için daha uygun olabilecek daha özlü ve tek biçimli bir çıktı biçimi üretilir.
rötuş.

-v Standart çıktıya sürüm numarasını ve derleme tarihini yazdırır, ardından durur.

-w N Kullanılan sayfa genişliği N sütunlar; varsayılan 80'dir.

-- (Girdiyi benzerlik denetleyicisinin gördüğü gibi yazdıran gizli bir seçenek ve
sonra durur.)

The -p seçenek, formun satırlarıyla sonuçlanır
F, G malzemesinin % x'inden oluşur
yani F metninin %x'i G'de de bulunabilir. Bu ilişkinin
simetrik; aslında bir dosyanın metinden %100'ünü içermesi oldukça mümkündür.
başka bir dosya, diğer dosya ise ilk dosyanın metninin yalnızca %1'ini oluşturur.
uzunlukları yeterince farklıdır. NS -P (büyük P) seçeneği, ana katkıda bulunanı gösterir.
sadece her dosya. Bu, A[1] ... A[n] dosyalarının tanımlanmasını basitleştirir, burada
Bu dosyaların birleştirilmesi de mevcuttur. kullanılarak bir eşik ayarlanabilir. -t
seçenek; tanınan metnin ayrıntı düzeyinin hala -r
seçeneği veya varsayılanı.

The -r seçeneği, bir çalışmayı oluşturan "birim" sayısını kontrol eder. olan programlar için
programlama dili kodunu karşılaştırın, bir birim ilgili dilde sözcüksel bir belirteçtir;
yorum ve standart giriş malzemesi (dosya eklenmesi vb.) yok sayılır ve tüm dizeler
aynı sayılır. İçin sim_text birim, herhangi bir dizi olarak tanımlanan bir "kelimedir"
127'den (177 sekizlik) bir veya daha fazla harf, rakam veya karakterden oluşan (yerleştirmek için)
ä, ø, vb. gibi harfler).
sim_text boşluklu metni normal metin olarak kabul eder.

The -s ve -S seçenekler, hangi dosyaların karşılaştırılacağını kontrol eder. Giriş dosyaları ikiye ayrılır
gruplar, yeni ve eski. Bu kontrol seçeneklerinin yokluğunda programlar,
böylece dosyalar (4 yeni dosya ve 6 eski dosya için):
yeni / eski <- ilk dosya
1 2 3 4 / 5 6 7 8 9 10
|---------------/------------
1 | C /
e2 | bilgi /
w3 | ccc /
4 | cccc /
ikinci / / / / / / / / / / / / /
dosya -> 5 | cccc /
o 6 | cccc /
l7 | cccc /
8 | cccc /
9 | cccc /
10 | cccc /
cs'nin dosya karşılaştırmalarını ve / yeni ile eski arasındaki sınırı temsil ettiği yer
dosyaları.
Kullanma -s seçeneği bunu azaltır:
yeni / eski <- ilk dosya
1 2 3 4 / 5 6 7 8 9 10
|---------------/------------
1 | /
e2 | C /
w3 | bilgi /
4 | ccc /
ikinci / / / / / / / / / / / / /
dosya -> 5 | cccc /
o 6 | cccc /
l7 | cccc /
8 | cccc /
9 | cccc /
10 | cccc /
The -S seçeneği bunu daha da azaltır:
yeni / eski <- ilk dosya
1 2 3 4 / 5 6 7 8 9 10
|---------------/------------
1 | /
e2 | /
w3 | /
4 | /
ikinci / / / / / / / / / / / / /
dosya -> 5 | cccc /
o 6 | cccc /
l7 | cccc /
8 | cccc /
9 | cccc /
10 | cccc /

Programlar, Windows altında UNICODE dosya adlarını işleyebilir. Bu, yalnızca aşağıdakiler kapsamında geçerlidir:
-R seçeneği, çünkü komut satırından UNICODE dosya adlarını vermenin bir yolu yoktur.

KISITLAMALAR


Tekrarlayan giriş, benzerlik kontrolünün baş belasıdır. 4 içeren bir dosyamız varsa
aynı metnin kopyaları,
A1 A2 A3 A4
numaraların yalnızca aynı kopyaları ayırt etmeye yaradığı durumlarda, 8 kimlik vardır:
A1=A2, A1=A3, A1=A4, A2=A3, A2=A4, A3=A4, A1A2=A3A4 ve A1A2A3=A2A3A4. Bunlardan sadece 3
anlamlıdır: A1=A2, A2=A3 ve A3=A4. Ve her biri aynı 20 satırdan oluşan bir tablo için
diğer, bir programda olağandışı değil, en fazla 715'u olmak üzere 19 kimlik vardır.
anlamlı. 715'in tamamının rapor edilmesi açıkça kabul edilemez.

Bunu gidermek için, kimliklerin bulunması aşağıdaki şekilde gerçekleştirilir:
metin, örtüşmeyen bir kopyası metinde bulunan en büyük bölüm bulunur
takip ediyor. Bu segment ve kopyası raporlanır ve tarama bu konumda devam eder.
bölümden hemen sonra. Yukarıdaki örnek için bu, A1A2=A3A4 kimlikleriyle sonuçlanır.
ve oldukça tatmin edici olan A3=A4 ve N kabaca özdeş bölümler 2 log N
mesajlar verilir.

Bu, aynı dört bölüm farklı dosyalarda olduğunda da işe yarar:
Dosya1: A1
Dosya2: A2
Dosya3: A3
Dosya4: A4
Artık A1A2 gibi birleştirilmiş segmentler oluşmaz ve algoritma A1=A2 çalışmalarını bulur,
A2=A3 ve A3=A4, toplam N-1 çalışır, hepsi bilgilendirici.

Hesaplanıyor Yüzdeler
Yukarıdaki yaklaşım, bir dosyanın içeriğinin yüzdesini elde etmek için uygun değildir.
başka bir dosyada bulunabilir. Bu, her dosya çiftinin ayrı ayrı karşılaştırılmasını gerektirir.
yukarıdaki matrislerde ac ile temsil edilir; bu ne -e seçenek yapar. Altında -e
Dosya1'de tanınan bir dosya1:A2 segmenti seçeneği, yine Dosya3'te tanınır ve
Dosya4. Yukarıdaki örnekte, koşuları üretir
Dosya1:A1=Dosya2:A2
Dosya1:A1=Dosya3:A3
Dosya1:A1=Dosya4:A4
Dosya2:A2=Dosya3:A3
Dosya2:A2=Dosya4:A4
Dosya3:A3=Dosya4:A4
Toplamda ½K(K-1) koşar.

ZAMAN VE UZAY ŞARTLAR


Tüm iç süreçlerin (neredeyse) zaman gereksinimlerinin karşılanmasına özen gösterilmiştir.
çeşitli tablolar kullanılarak girdi dosyalarının uzunluklarında doğrusal. Ancak varsa
tablolar için yeterli bellek yok, bunlar önemsizlik sırasına göre atılır, bu nedenle
algoritmaların ikinci dereceden doğasına dönmesini sağlar.

Zaman gereksinimleri, dosya sayısında ikinci derecedendir. Bunun anlamı, örneğin,
bir 64 MB dosya, 8000 8 kB dosyadan çok daha hızlı işler.

Program, girişteki her simge için 6 bayt bellek gerektirir; yeni satır başına 2 bayt
(yüzde yaparken değil); ve bulunan her çalıştırma için yaklaşık 76 bayt.

ÖRNEKLER


Arama
sim_c *.c
dizindeki yinelenen kodu vurgular. (Oluşturulan dosyaları kaldırmak yararlıdır
ilk.) Bir çağrı
sim_c -f -F *.c
onları daha fazla tespit edebilir.

Bir arama
sim_text -e -p -s yeni/* / eski/*
new/* içindeki her dosyayı yeni/* ve eski/* içindeki her dosyayla karşılaştırır ve herhangi bir çiftte bundan daha fazlası varsa
% 20 ortak, bu gerçek rapor edilir. Genellikle %30 veya daha fazla benzerlik önemlidir;
%20'den düşük olması muhtemelen tesadüftür; ve arası şüphelidir.

Bir arama
sim_text -e -n -s -r100 yeni/* "|" eskimiş/*
aynı dosyaları karşılaştırır ve büyük ortak segmentleri raporlar. (NS | olarak kullanılabilir
ayırıcı yerine / olduğu sistemlerde / bir komut satırı parametresi tarafından yönetilirken
komut yorumlayıcısı.)

Her iki yaklaşım da intihal tespiti için iyidir.

onworks.net hizmetlerini kullanarak sim_pasc çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    derin temizlik
    derin temizlik
    Tüm yapıyı bozan bir Kotlin betiği
    Gradle/Android projelerinden önbellekler.
    Gradle veya IDE izin verdiğinde kullanışlıdır
    aşağı. Komut dosyası üzerinde test edildi
    macOS, ancak ...
    derinlemesine temizlemeyi indirin
  • 2
    Eclipse Checkstyle Eklentisi
    Eclipse Checkstyle Eklentisi
    Eclipse Checkstyle eklentisi
    Checkstyle Java kodunu entegre eder
    denetçi Eclipse IDE'ye. bu
    eklenti gerçek zamanlı geri bildirim sağlar
    kullanıcı viol hakkında...
    Eclipse Checkstyle Eklentisini İndirin
  • 3
    AstroOrzOyuncu
    AstroOrzOyuncu
    AstrOrz Player ücretsiz bir medya oynatıcıdır
    yazılım, WMP ve VLC tabanlı kısım. bu
    oynatıcı, minimalist tarzda,
    ondan fazla tema rengi ve ayrıca
    b ...
    AstrOrzPlayer'ı indirin
  • 4
    film başlatıcısı
    film başlatıcısı
    Kodi Movistar+ TV, XBMC/ için bir ADDON'dur
    Kod, bir öğe dağıtılmasına izin verebilir
    IPTV hizmetlerinin kod çözücüsü
    Movistar tek bir cihazda entegre
    medya merkezleri ma...
    movistartv'yi indir
  • 5
    Code :: Blocks
    Code :: Blocks
    Code::Blocks ücretsiz, açık kaynaklı,
    platformlar arası C, C++ ve Fortran IDE
    en zorlu ihtiyaçları karşılamak için inşa edilmiştir
    kullanıcılarının Çok olacak şekilde tasarlanmıştır
    uzanır...
    Kodu İndir::Bloklar
  • 6
    ortasında
    ortasında
    Ortasında veya Gelişmiş Minecraft Arayüzü
    ve Veri/Yapı İzleme,
    Minecraft'a genel bir bakış göster
    dünya, aslında onu yaratmadan. Bilişim Teknoloji
    Yapabilmek ...
    Arada İndir
  • Daha fazla »

Linux komutları

Ad