ภาษาอังกฤษอาหารฝรั่งเศสสเปน

ไอคอน Fav ของ OnWorks

sim_lisp - ออนไลน์ในคลาวด์

เรียกใช้ sim_lisp ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง sim_lisp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


sim - ค้นหาความคล้ายคลึงกันในไฟล์ C, Java, Pascal, Modula-2, Lisp, Miranda หรือข้อความ

เรื่องย่อ


ซิม_ซี [ -[defFiMnpPRsSTv] -r N -t N -w N -o F ] ไฟล์ ... [ [ / | ] ไฟล์ ... ]
ซิม_ซี ...
sim_java ...
sim_pasc ...
sim_m2 ...
sim_lisp ...
ซิม_มิร่า ...
ซิม_ข้อความ ...

DESCRIPTION


ซิม_ซี อ่านไฟล์ C ไฟล์ ... และค้นหาส่วนของข้อความที่คล้ายคลึงกัน สอง
ส่วนของข้อความโปรแกรมจะคล้ายกันหากต่างกันเฉพาะเลย์เอาต์ ข้อคิดเห็น ตัวระบุ
และเนื้อหาของตัวเลข สตริง และอักขระ หากการวิ่งใด ๆ ที่มีความยาวเพียงพอคือ
พบว่ามีการรายงานในเอาต์พุตมาตรฐาน จำนวนของโทเค็นที่สำคัญในการรัน
กำหนดไว้ระหว่างวงเล็บเหลี่ยม

Sim_java ทำเช่นเดียวกันสำหรับ Java sim_pasc สำหรับปาสกาล sim_m2 สำหรับโมดูลา-2 ซิม_มิร่า เป็นเวลา
มิแรนด้าและ sim_lisp สำหรับเสียงกระเพื่อม ซิม_ข้อความ ทำงานบนข้อความที่กำหนดเองและเป็นบางครั้ง
มีประโยชน์ในเชลล์สคริปต์

สามารถใช้โปรแกรมเพื่อค้นหาโค้ดที่คัดลอกโดยอ้างว่าไม่เกี่ยวข้อง
โปรแกรม (ด้วย -s or -S) หรือเพื่อค้นหาโค้ดที่ซ้ำกันโดยไม่ได้ตั้งใจในโครงการขนาดใหญ่
(กับ -f or -F).

ถ้าตัวคั่น / or | มีอยู่ในรายการไฟล์อินพุต ไฟล์แบ่งออกเป็น a
กลุ่มของไฟล์ "ใหม่" (ก่อน / or |) และกลุ่มของไฟล์ "เก่า" ถ้าไม่มี / or
|, ไฟล์ทั้งหมดเป็น "ใหม่" ไฟล์เก่าไม่เคยเปรียบเทียบกัน ดูเพิ่มเติมที่
คำอธิบายของ -s และ -S ตัวเลือกด้านล่าง

เนื่องจากตัวทดสอบความคล้ายคลึงต้องการชื่อไฟล์เพื่อระบุความคล้ายคลึง จึงไม่สามารถอ่านได้
จากอินพุตมาตรฐาน

มีตัวเลือกดังต่อไปนี้:

-d เอาต์พุตอยู่ใน a diff(1)-like format แทนที่จะเป็นรูปแบบ 2 คอลัมน์เริ่มต้น

-e แต่ละไฟล์จะถูกเปรียบเทียบกับแต่ละไฟล์โดยแยกกัน นี้จะพบความคล้ายคลึงกันทั้งหมด
ระหว่างข้อความทั้งหมดที่เกี่ยวข้อง โดยไม่คำนึงถึงข้อความซ้ำ (ดู `การคำนวณ
เปอร์เซ็นต์' ด้านล่าง)

-f การรันถูกจำกัดไว้ในส่วนที่มีวงเล็บสมดุล เพื่อแยกศักยภาพ
ร่างกายประจำ (ไม่ใช่ใน ซิม_ข้อความ).

-F ชื่อของรูทีนในการโทรจะต้องตรงกันทุกประการ (ไม่ใช่ใน ซิม_ข้อความ).

-i ชื่อของไฟล์ที่จะเปรียบเทียบจะอ่านจากอินพุตมาตรฐาน รวมถึง a
ตัวคั่นที่เป็นไปได้ / or |; ชื่อไฟล์จะต้องเป็นหนึ่งต่อหนึ่งบรรทัด ตัวเลือกนี้
อนุญาตให้ระบุชื่อไฟล์จำนวนมาก มันแตกต่างจาก@
สิ่งอำนวยความสะดวกที่คอมไพเลอร์บางตัวจัดเตรียมไว้เพื่อจัดการชื่อไฟล์เท่านั้นและไม่ได้
ไม่รู้จักอาร์กิวเมนต์ตัวเลือก

-M ข้อมูลการใช้หน่วยความจำจะแสดงบนเอาต์พุตข้อผิดพลาดมาตรฐาน

-n พบความคล้ายคลึงกันโดยสรุปตามชื่อไฟล์ ตำแหน่งและขนาด แทนที่จะเป็น
ได้แสดงไว้อย่างครบถ้วน

-o F เอาต์พุตถูกเขียนลงในไฟล์ชื่อ F.

-p ผลลัพธ์จะได้รับเป็นเปอร์เซ็นต์ที่คล้ายคลึงกัน ดู `การคำนวณเปอร์เซ็นต์' ด้านล่าง;
หมายถึง -e และ -s.

-P As -p แต่จะแสดงเฉพาะผู้สนับสนุนหลักเท่านั้น หมายถึง -e และ -s.

-r N ตั้งค่าความยาวขั้นต่ำของการวิ่งเป็น N หน่วย; ค่าเริ่มต้นคือ 24 โทเค็น ยกเว้นใน
ซิม_ข้อความโดยที่มันคือ 8 คำ

-R ไดเร็กทอรีในรายการอินพุตจะถูกป้อนซ้ำ และไฟล์ทั้งหมดมี
มีส่วนในการเปรียบเทียบ

-s เนื้อหาของไฟล์ไม่ได้ถูกเปรียบเทียบกับตัวเอง (-s สำหรับ "ไม่ใช่ตัวเอง")

-S เนื้อหาของไฟล์ใหม่จะถูกเปรียบเทียบกับไฟล์เก่าเท่านั้น - ไม่อยู่ระหว่าง
ตัวเอง

-t N ร่วมกับ -p or -P ตัวเลือกตั้งค่าเกณฑ์ (เป็นเปอร์เซ็นต์) ด้านล่าง
ความคล้ายคลึงกันใดจะไม่ถูกรายงาน ค่าเริ่มต้นคือ 1 ยกเว้นใน ซิม_ข้อความ,
มันอยู่ที่ไหน 20

-T มีการผลิตรูปแบบที่กระชับและสม่ำเสมอมากขึ้น ซึ่งอาจเหมาะสำหรับ
ภายหลังการประมวลผล

-v พิมพ์หมายเลขเวอร์ชันและวันที่รวบรวมบนเอาต์พุตมาตรฐาน จากนั้นหยุด

-w N กำหนดความกว้างของหน้าที่ใช้เป็น N คอลัมน์; ค่าเริ่มต้นคือ 80

-- (ตัวเลือกลับซึ่งพิมพ์อินพุตตามที่ตัวตรวจสอบความคล้ายคลึงกันเห็นและ
แล้วหยุด)

เทศกาล -p ตัวเลือกผลลัพธ์ในบรรทัดของแบบฟอร์ม
F ประกอบด้วย x % ของวัสดุ G
หมายความว่า x % ของข้อความ F สามารถพบได้ในภาษา G โปรดทราบว่าความสัมพันธ์นี้ไม่ใช่
สมมาตร; เป็นไปได้ทีเดียวที่ไฟล์หนึ่งไฟล์จะประกอบด้วยข้อความจาก . 100%
อีกไฟล์หนึ่ง ในขณะที่อีกไฟล์หนึ่งประกอบด้วยข้อความเพียง 1% ของไฟล์แรก if
ความยาวต่างกันพอสมควร NS -P (ตัวพิมพ์ใหญ่ P) แสดงผู้สนับสนุนหลักสำหรับ
แต่ละไฟล์เท่านั้น สิ่งนี้ช่วยลดความยุ่งยากในการระบุชุดของไฟล์ A[1] ... A[n] โดยที่
มีการต่อไฟล์เหล่านี้ด้วย เกณฑ์สามารถกำหนดได้โดยใช้คำสั่ง -t
ตัวเลือก; โปรดทราบว่าความละเอียดของข้อความที่รู้จักยังคงอยู่ภายใต้ -r
ตัวเลือกหรือค่าเริ่มต้น

เทศกาล -r ตัวเลือกควบคุมจำนวน "หน่วย" ที่ประกอบเป็นการวิ่ง สำหรับโปรแกรมที่
เปรียบเทียบรหัสภาษาโปรแกรม หน่วยเป็นโทเค็นคำศัพท์ในภาษาที่เกี่ยวข้อง
ความคิดเห็นและเนื้อหาคำนำมาตรฐาน (การรวมไฟล์ ฯลฯ ) จะถูกละเว้นและสตริงทั้งหมด
ก็ถือว่าเหมือนกัน สำหรับ ซิม_ข้อความ หน่วยคือ "คำ" ซึ่งถูกกำหนดเป็นลำดับใด ๆ
ตัวอักษร ตัวเลข หรืออักขระตั้งแต่ 127 ตัวขึ้นไป (177 ฐานแปด) (เพื่อรองรับ
ตัวอักษรเช่น ä, ø ฯลฯ)
ซิม_ข้อความ ยอมรับ spacedtext เป็นข้อความปกติ

เทศกาล -s และ -S ตัวเลือกควบคุมไฟล์ที่จะเปรียบเทียบ ไฟล์อินพุตแบ่งออกเป็นสองไฟล์
กลุ่ม ทั้งใหม่และเก่า ในกรณีที่ไม่มีตัวเลือกการควบคุมเหล่านี้ โปรแกรมจะเปรียบเทียบ
ไฟล์ดังกล่าว (สำหรับ 4 ไฟล์ใหม่และ 6 ไฟล์เก่า):
ใหม่ / เก่า <- ไฟล์แรก
1 2 3 4 / 5 6 7 8 9 10
|------------/-------------
n 1 | ค /
อี 2 | ซีซี /
w 3 | ซีซีซี /
4 | cccc /
ที่สอง / / / / / / / / / / / / /
ไฟล์ -> 5 | cccc /
o 6 | cccc /
l 7 | cccc /
d 8 | cccc /
9 | cccc /
10 | cccc /
โดยที่ cs แสดงถึงการเปรียบเทียบไฟล์และ / การแบ่งเขตระหว่างใหม่และเก่า
ไฟล์
การใช้ -s ตัวเลือกลดสิ่งนี้เป็น:
ใหม่ / เก่า <- ไฟล์แรก
1 2 3 4 / 5 6 7 8 9 10
|------------/-------------
น 1 | /
อี 2 | ค /
w 3 | ซีซี /
4 | ซีซีซี /
ที่สอง / / / / / / / / / / / / /
ไฟล์ -> 5 | cccc /
o 6 | cccc /
l 7 | cccc /
d 8 | cccc /
9 | cccc /
10 | cccc /
เทศกาล -S ตัวเลือกลดสิ่งนี้ต่อไปเป็น:
ใหม่ / เก่า <- ไฟล์แรก
1 2 3 4 / 5 6 7 8 9 10
|------------/-------------
น 1 | /
อี 2 | /
ว 3 | /
4 | -
ที่สอง / / / / / / / / / / / / /
ไฟล์ -> 5 | cccc /
o 6 | cccc /
l 7 | cccc /
d 8 | cccc /
9 | cccc /
10 | cccc /

โปรแกรมสามารถจัดการชื่อไฟล์ UNICODE ใน Windows สิ่งนี้มีความเกี่ยวข้องเฉพาะภายใต้
-R ตัวเลือก เนื่องจากไม่มีวิธีให้ชื่อไฟล์ UNICODE จากบรรทัดคำสั่ง

ข้อ จำกัด


การป้อนข้อมูลซ้ำ ๆ เป็นความหายนะของการตรวจสอบความคล้ายคลึงกัน ถ้าเรามีไฟล์ที่มี4
สำเนาข้อความที่เหมือนกัน
A1 A2 A3 A4
โดยที่ตัวเลขใช้เพื่อแยกแยะสำเนาที่เหมือนกันเท่านั้น มีตัวตน 8 ประการ:
A1=A2, A1=A3, A1=A4, A2=A3, A2=A4, A3=A4, A1A2=A3A4 และ A1A2A3=A2A3A4 ในจำนวนนี้เพียง3
มีความหมาย: A1=A2, A2=A3 และ A3=A4 และสำหรับตารางที่มี 20 บรรทัดเหมือนกันทุกประการ
อื่นๆ ที่ไม่ธรรมดาในโปรแกรม มี 715 ตัว มากสุด 19 ตัว
มีความหมาย การรายงานทั้ง 715 รายเป็นเรื่องที่ยอมรับไม่ได้อย่างชัดเจน

ในการแก้ไขปัญหานี้ การค้นหาตัวตนจะดำเนินการดังนี้: สำหรับแต่ละตำแหน่งใน
ข้อความพบส่วนที่ใหญ่ที่สุดซึ่งมีสำเนาที่ไม่ทับซ้อนกันเกิดขึ้นในข้อความ
ตามมันไป ส่วนนั้นและสำเนาจะถูกรายงานและสแกนต่อที่ตำแหน่ง
เพียงหลังจากส่วน สำหรับตัวอย่างข้างต้น ผลลัพธ์ในข้อมูลประจำตัว A1A2=A3A4
และ A3=A4 ซึ่งค่อนข้างน่าพอใจและสำหรับ N ส่วนที่เหมือนกันโดยประมาณ 2 เข้าสู่ระบบ N
ข้อความจะได้รับ

นอกจากนี้ยังใช้งานได้ดีเมื่อสี่ส่วนที่เหมือนกันอยู่ในไฟล์ที่ต่างกัน:
ไฟล์ 1: A1
ไฟล์ 2: A2
ไฟล์ 3: A3
ไฟล์ 4: A4
ตอนนี้กลุ่มที่รวมกันเช่น A1A2 จะไม่เกิดขึ้น และอัลกอริธึมจะค้นหาการรัน A1=A2
A2=A3 และ A3=A4 รวมเป็น N-1 วิ่งข้อมูลทั้งหมด

คิดเลข เปอร์เซ็นต์
วิธีการข้างต้นไม่เหมาะสำหรับการรับเปอร์เซ็นต์ของเนื้อหาของไฟล์ที่
สามารถพบได้ในไฟล์อื่น จำเป็นต้องเปรียบเทียบไฟล์แต่ละคู่แยกกัน
แสดงโดย ac ในเมทริกซ์ด้านบน นี่คือสิ่งที่ -e ตัวเลือกไม่ ภายใต้ -e
ตัวเลือกกลุ่ม File1:A1 ซึ่งรู้จักใน File2 จะรู้จักอีกครั้งใน File3 และ
ไฟล์4. ในตัวอย่างด้านบน มันสร้างการรัน
File1:A1=ไฟล์2:A2
File1:A1=ไฟล์3:A3
File1:A1=ไฟล์4:A4
File2:A2=ไฟล์3:A3
File2:A2=ไฟล์4:A4
File3:A3=ไฟล์4:A4
รวมเป็น ½N(N-1) วิ่ง

เวลา AND SPACE สิ่งที่ต้องมี


ได้ใช้ความระมัดระวังเพื่อรักษาข้อกำหนดด้านเวลาของกระบวนการภายในทั้งหมด (เกือบ)
เชิงเส้นในความยาวของไฟล์อินพุต โดยใช้ตารางต่างๆ แต่ถ้ามี
หน่วยความจำไม่เพียงพอสำหรับตารางพวกเขาจะถูกละทิ้งโดยไม่สำคัญซึ่ง
เงื่อนไขอัลกอริธึมกลับคืนสู่ธรรมชาติกำลังสอง

ข้อกำหนดด้านเวลาเป็นกำลังสองในจำนวนไฟล์ ซึ่งหมายความว่า ตัวอย่างเช่น
ไฟล์ 64 MB หนึ่งไฟล์ประมวลผลได้เร็วกว่าไฟล์ 8000 8 kB

โปรแกรมต้องการหน่วยความจำ 6 ไบต์สำหรับแต่ละโทเค็นในอินพุต 2 ไบต์ต่อการขึ้นบรรทัดใหม่
(ไม่ใช่เมื่อทำเปอร์เซ็นต์); และพบประมาณ 76 ไบต์สำหรับการรันแต่ละครั้ง

ตัวอย่าง


โทร
sim_c *.ค
ไฮไลต์โค้ดที่ซ้ำกันในไดเร็กทอรี (เป็นประโยชน์ในการลบไฟล์ที่สร้างขึ้น
ก่อน.) การโทร
sim_c -f -F *.ค
สามารถระบุเพิ่มเติมได้

โทร
sim_text -e -p -s ใหม่/* / เก่า/*
เปรียบเทียบแต่ละไฟล์ใน new/* กับแต่ละไฟล์ใน new/* และ old/* และหากคู่ใดมีมากกว่านั้น
มีการรายงานข้อเท็จจริงดังกล่าวเหมือนกัน 20% โดยปกติความคล้ายคลึงกัน 30% หรือมากกว่านั้นมีความสำคัญ
ต่ำกว่า 20% อาจเป็นเรื่องบังเอิญ และระหว่างนั้นก็น่าสงสัย

โทร
sim_text -e -n -s -r100 ใหม่/* "|" เก่า/*
เปรียบเทียบไฟล์เดียวกัน และรายงานกลุ่มใหญ่ทั่วไป (NS | สามารถใช้เป็น
ตัวคั่นแทน / ในระบบที่ / เนื่องจากพารามิเตอร์บรรทัดคำสั่งถูกจัดการโดย
ล่ามคำสั่ง)

ทั้งสองวิธีดีสำหรับการตรวจจับการลอกเลียนแบบ

ใช้ sim_lisp ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    โพสต์ตัวติดตั้งF
    โพสต์ตัวติดตั้งF
    PostInstallerF จะติดตั้งทั้งหมด
    ซอฟต์แวร์ที่ Fedora Linux และอื่นๆ
    ไม่รวมโดยค่าเริ่มต้นหลังจาก
    ใช้งาน Fedora เป็นครั้งแรก มันคือ
    ง่ายสำหรับ...
    ดาวน์โหลด PostInstallerF
  • 2
    สเตรซ
    สเตรซ
    ย้ายโครงการ strace ไปที่
    https://strace.io. strace is a
    วินิจฉัย แก้จุดบกพร่อง และการสอน
    ตัวติดตามพื้นที่ผู้ใช้สำหรับ Linux มันถูกใช้
    เพื่อเฝ้าติดตามก...
    ดาวน์โหลด
  • 3
    gMKVExtractGUI
    gMKVExtractGUI
    GUI สำหรับยูทิลิตี้ mkvextract (ส่วนหนึ่งของ
    MKVToolNix) ซึ่งรวมเอาส่วนใหญ่ (ถ้า
    ไม่ใช่ทั้งหมด) ฟังก์ชันของ mkvextract และ
    โปรแกรมอรรถประโยชน์ mkvinfo เขียนใน C#NET 4.0,...
    ดาวน์โหลด gMKVExtractGUI
  • 4
    ห้องสมุด JasperReports
    ห้องสมุด JasperReports
    ห้องสมุด JasperReports คือ
    โอเพ่นซอร์สที่ได้รับความนิยมมากที่สุดในโลก
    ข่าวกรองธุรกิจและการรายงาน
    เครื่องยนต์. มันเขียนด้วยภาษา Java . ทั้งหมด
    และสามารถ...
    ดาวน์โหลดไลบรารี JasperReports
  • 5
    หนังสือปั่น
    หนังสือปั่น
    Frappe Books เป็นโอเพ่นซอร์สฟรี
    ซอฟต์แวร์ทำบัญชีเดสก์ท็อปที่
    เรียบง่ายและออกแบบมาอย่างดีเพื่อใช้โดย
    ธุรกิจขนาดเล็กและฟรีแลนซ์ มัน'...
    ดาวน์โหลดหนังสือ Frappe
  • 6
    ตัวเลขหลาม
    ตัวเลขหลาม
    ข่าว: NumPy 1.11.2 เป็นรุ่นสุดท้าย
    ที่จะทำบน sourceforge ล้อ
    สำหรับ Windows, Mac และ Linux ตลอดจน
    การกระจายแหล่งที่เก็บถาวรสามารถเป็นสี่...
    ดาวน์โหลด Python เชิงตัวเลข
  • เพิ่มเติม»

คำสั่ง Linux

Ad