คำศัพท์ - ซอร์สโค้ดเป็นโปรแกรมหรือไม่ [ปิด]


10

ฉันเป็นผู้เริ่มต้นในการเขียนโปรแกรมและฉันไม่เข้าใจคำศัพท์ที่ดี ฉันต้องการทราบว่าซอร์สโค้ดที่เขียนในภาษาที่คอมไพล์เช่น C หรือ C ++ ถือว่าเป็นโปรแกรมหรือไม่? ถ้าไม่ทุกคนสามารถอธิบายได้ว่าทำไม


1
ใช่ซอร์สโค้ดถือว่าเป็นโปรแกรม โปรแกรมสามารถจำแนกได้ตามประเภทของรหัสที่บรรจุเช่น "source code," "object code," "machine code" และ "executable code"
Robert Harvey

6
คำถามนี้ทำให้ฉันรู้สึกอย่างเดียวกันว่า "เป็นวัวหรือไม่?" จะด้วยเหตุผลเดียวกันทั้งหมด
RM

1
แป้งและน้ำตาลเป็นเค้กหรือไม่?
Bryan Oakley

คำตอบ:


16

ดูรายการ Wikipedia สำหรับโปรแกรม : (ฉันได้เพิ่มตัวหนา )

โปรแกรมคอมพิวเตอร์คือชุดของคำสั่งที่ทำงานเฉพาะเมื่อดำเนินการโดยคอมพิวเตอร์ คอมพิวเตอร์ต้องการให้โปรแกรมทำงานและโดยทั่วไปจะดำเนินการตามคำแนะนำของโปรแกรมในหน่วยประมวลผลกลาง

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

ดังนั้น "โปรแกรม" คือชุดคำสั่งที่คอมพิวเตอร์ดำเนินการและ "ซอร์สโค้ด" เป็นคำแนะนำเหล่านั้นในเวอร์ชันที่มนุษย์สามารถอ่านได้


1
ขอบคุณสำหรับคำตอบ. ถ้าฉันเข้าใจถูกต้องซอร์สโค้ดเป็นโปรแกรมเพราะมันจะกำหนดชุดคำสั่งที่ทำงานเมื่อคอมพิวเตอร์ถูกประมวลผล แต่ถึงแม้ว่าคำแนะนำเหล่านั้นจะไม่ใช่คำสั่งที่ดำเนินการโดย CPU ในตอนท้าย CPU จะประมวลผลคำสั่งที่มีการแปลคำสั่งที่กำหนดไว้ในภาษาระดับสูงหรือไม่
Othman

7

ฉันต้องการทราบว่าซอร์สโค้ดที่เขียนในภาษาที่คอมไพล์เช่น C หรือ CPP ถือว่าเป็นโปรแกรมหรือไม่?

ใช่แล้ว.

แต่

อันตรายที่เกิดขึ้นกับแนวความคิดนี้กำลังมาถึง: "คอมพิวเตอร์รันโปรแกรมของฉันฉันเขียนโปรแกรมของฉันใน [เช่น] C, เอออโก่ที่ซอร์สโค้ดคือคำแนะนำไปยังคอมพิวเตอร์"

และนี่คือสิ่งที่เราหลายคนคิดกันมานานหลายสิบปีในศตวรรษที่ 20 สิ่งที่เราได้เรียนรู้ในช่วงทศวรรษที่ผ่านมาหรือเพื่อเป็นที่โปรแกรมเมอร์อื่น ๆ ที่มีผู้ชมหลักของรหัสที่มา ใช่แล้วแหล่งที่มาคือโปรแกรมในลักษณะเดียวกับที่คุณได้รับโปรแกรมที่โรงภาพยนตร์ซึ่งจะบอกคนอื่นว่าเกิดอะไรขึ้น ความสวยงามของซอร์สโค้ดไม่เพียง แต่เป็นโปรแกรมเท่านั้น แต่ยังเป็นชุดคำสั่งสำหรับคอมพิวเตอร์อีกด้วย ...


1

ไม่ว่าจะเป็นหรือไม่ก็ตามขึ้นอยู่กับบริบท คิดแบบนี้ ฉันลืมสิ่งที่ชื่ออย่างเป็นทางการสำหรับเป็นแนวคิด แต่มีทฤษฎีของภาษาที่บอกว่าคำพูดมีความหมายที่อธิบายไม่ได้สิ่งที่มีอะไรบางอย่าง แต่สิ่งที่มันไม่ได้เป็น แอปเปิ้ลสีแดงไม่ได้เป็นสีแดงเพราะมันเป็นสีแดง แต่เป็นเพราะมันไม่ใช่สีฟ้าไม่ใช่สีเขียว ฯลฯ ไม่ต้องสนใจว่ามันจริงหรือไม่ แต่เพียงแค่คิดว่ามันเป็นวินาทีและคิดเกี่ยวกับคำถามในบริบทนั้น

ดังนั้นเมื่อเราคิดถึงแนวคิดนั้นเราสามารถเปรียบเทียบซอร์สโค้ดของเรากับพิมพ์เขียวของบ้านได้ หากคุณกำลังดูพิมพ์เขียวจากกองพิมพ์เขียวอื่น ๆ และถามว่า "นี่คือบ้าน" และพิมพ์เขียวอื่น ๆ สำหรับอาคารพาณิชย์สะพาน ฯลฯ คำตอบก็น่าจะใช่ เนื่องจากพิมพ์เขียวไม่ได้หมายถึงสิ่งอื่นทั้งหมดและลักษณะบ้านเป็นสิ่งที่แยกความแตกต่างจากพิมพ์เขียวอื่น ๆ

อย่างไรก็ตามเห็นได้ชัดว่าพิมพ์เขียวของบ้านไม่เหมือนกับบ้านจริงที่ทำจากไม้และ drywall ที่คุณสามารถยืนได้มีบริบทที่ความแตกต่างระหว่างพิมพ์เขียวกับบ้านจริงนั้นมีความหมาย มีความแตกต่างระหว่างแผนและสิ่งที่ส่งมอบ

วิธีเดียวกันกับซอร์สโค้ดของโปรแกรมในภาษาที่คอมไพล์ก็เหมือนกับพิมพ์เขียวหากคุณเปรียบเทียบกับไลบรารีโมดูลเคอร์เนล ฯลฯ จากนั้นซอร์สโค้ดและโปรแกรมนั้นจะเป็นแนวคิดเดียวกัน แต่ถ้าคุณดูที่วิธีการรวบรวมออกแบบและปรับใช้ซอฟต์แวร์ทั้งสองนั้นไม่เหมือนกัน อีกครั้งมีความแตกต่างระหว่างแผนและส่งมอบเป็น

tl; dr: บางครั้งสิ่งที่มันเป็นและสิ่งที่มันหมายถึงถือเป็นสิ่งเดียวกัน แต่เวลาอื่นพวกเขาไม่ได้


0

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

ทรัพย์สินทางปัญญานั้นกว้างขึ้นและสามารถรวมทั้งซอร์สโค้ดและรหัสหรือข้อมูลอื่น ๆ

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

ความสมบูรณ์แบบนี้บางครั้งหมายถึงการมี a mainซึ่งใช้โดยระบบปฏิบัติการเป็นจุดเริ่มต้นสำหรับโปรแกรม

โดยทั่วไปเมื่อโปรแกรมทำงานที่เรียกว่ากระบวนการ


1
โปรดอย่าพูดถึง "ทรัพย์สินทางปัญญา" เนื่องจากเป็นคำที่ตั้งใจให้ผู้อื่นสับสน
whatsisname

0

รหัสที่มาเป็นที่ต้องการรูปแบบของซอฟต์แวร์ที่มนุษย์นักพัฒนาซอฟต์แวร์ที่ทำงาน ข้อมูลเชิงลึกคือการพัฒนาซอฟต์แวร์เป็นกระบวนการทางสังคมดังนั้นซอร์สโค้ดจึงเป็นแนวคิดทางสังคม คุณเขียนซอร์สโค้ดส่วนใหญ่สำหรับมนุษย์ (นักพัฒนาเพื่อนของคุณหรือแม้แต่ตัวคุณเองที่ทำงานในโปรแกรมเดียวกันสองสามเดือน) ไม่ใช่สำหรับคอมพิวเตอร์ สำหรับโปรแกรมที่เข้ารหัสใน C มักเป็น.cไฟล์ C และ.hไฟล์ส่วนหัว(แต่ไม่เสมอไป) แต่Makefileก็เป็นซอร์สโค้ดด้วย แต่บางครั้งมีการใช้เทคนิคmetaprogramming : บางโปรแกรมกำลังสร้างรหัส C จากนั้นป้อนข้อมูลตัวสร้างนั้นถือว่าเป็นซอร์สโค้ด (แม้ว่าเอาต์พุตของตัวสร้างนั้นคือรหัส C) ตัวอย่างสองตัวอย่าง: คุณอาจใช้เครื่องมือสร้างวิเคราะห์คำ (เช่นวัวกระทิง GNU ) เพื่อแยกวิเคราะห์ปัญหาจากนั้น.yไฟล์อินพุตของเครื่องกำเนิดไฟฟ้านั้นคือซอร์สโค้ด หรือคุณอาจเขียนสคริปต์awkหรือgawkเล็ก ๆเพื่อดึงข้อมูลบางส่วนจากฐานข้อมูลsqliteซึ่งจะถูกแปลงเป็นตัวอย่างเช่นการenum ประกาศขนาดใหญ่ในส่วนหัวที่สร้างขึ้นบางส่วน จากนั้นฐานข้อมูลนั้นจะมีซอร์สโค้ด!

โปรแกรมคอมพิวเตอร์ในทางตรงกันข้ามที่เกี่ยวข้องกับคอมพิวเตอร์ที่ใช้มัน มันมักจะได้รับโดยการรวบรวมรหัสที่มาบางส่วน (เขียนในบางภาษาการเขียนโปรแกรมและเหล่านี้เป็นรายละเอียดที่เขียนในภาษาอังกฤษในเอกสารทางเทคนิค -See n1570ร่างC11 - ไม่เครื่องมือซอฟต์แวร์) เป็นไบนารีปฏิบัติการ

อ่านยังเกี่ยวกับซอฟต์แวร์ฟรี ดำดิ่งลงในซอร์สโค้ดของโปรเจ็กต์ซอฟต์แวร์ฟรีที่มีอยู่ (ดูGitHubหรือSourceforgeเพื่อค้นหา)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.