ประวัติของ C คอมไพเลอร์คืออะไร?


23

เมื่อเราพูดว่า "Dennis Ritchie พัฒนาภาษา C" หมายความว่าเขาได้สร้างคอมไพเลอร์ (โดยใช้ภาษาอื่นที่พัฒนาแล้ว ') ซึ่งสามารถรวบรวมซอร์สโค้ดที่เขียนด้วยภาษา C ได้หรือไม่? ถ้าใช่เขาใช้ภาษาอะไรในการเขียนตัวแปลภาษาซีตัวแรก ฉันเข้าใจคอมไพเลอร์เป็นโปรแกรมและเราสามารถสร้างคอมไพเลอร์อื่นสำหรับภาษา C โดยใช้คอมไพเลอร์ C ที่มีอยู่ในปัจจุบัน ถูกต้องหรือไม่

คำตอบ:


23

จากวิกิ :

Ritchie เป็นที่รู้จักกันดีในฐานะผู้สร้างภาษาการเขียนโปรแกรม C และเป็นผู้พัฒนาระบบปฏิบัติการ Unix และเป็นผู้เขียนหนังสือเล่มสุดท้ายเกี่ยวกับ C

นอกจากนี้จากwiki :

คอมไพเลอร์ C ตัวแรกที่เขียนโดย Dennis Ritchie ใช้ตัวแยกวิเคราะห์แบบเรียกซ้ำซึ่งรวบรวมความรู้เฉพาะเกี่ยวกับ PDP-11 และอาศัยเครื่องมือเพิ่มประสิทธิภาพเฉพาะสำหรับตัวเลือกเพื่อปรับปรุงรหัสภาษาแอสเซมบลีที่สร้างขึ้น

คอมไพเลอร์ C ตัวแรกเขียนขึ้นโดยเขา

หน้านี้จากห้องแล็บทดลองตอบคำถามส่วนใหญ่ของคุณ


ลิงค์แรกเสีย
Mahmoud Hossam

IIRC, C ขึ้นอยู่กับภาษาก่อนหน้านี้ที่ชื่อว่า B และ Unix นั้นใช้ระบบปฏิบัติการรุ่นก่อนหน้าชื่อว่า Multics มันจะเป็นการเดาที่ชัดเจนว่าสิ่งเหล่านี้เคยถูกใช้ในการพัฒนา bootstrap - แต่จากสิ่งที่ฉันได้อ่านนั่นเป็นการเดาที่ผิด การพัฒนา Unix ในช่วงต้นอยู่ในแอสเซมเบลอร์จนกระทั่ง C เข้ามา
Steve314

2
IIRC, B เป็นเวอร์ชัน BCPL แบบแยกส่วนซึ่งเป็นภาษาโปรแกรมระบบขั้นต้น ฉันคิดว่างาน Unix รุ่นแรก ๆ ถูกอธิบายโดยใช้ B แต่ฉันไม่แน่ใจว่ามีคอมไพเลอร์ Unix จริงสำหรับมัน (อาจเป็น cross-compiler ที่ทำงานอย่างอื่น)
TMN

อุ๊ย . . การเขียนคอมไพเลอร์ในภาษาแอสเซมบลี
compman

6
@compman ในบางครั้งมีบางคนต้องเขียนคอมไพเลอร์ในชุดประกอบ - คุณทำยังไงให้ bootstrap ทางของคุณไปยังคอมไพเลอร์ใน HLL?
Richard Gadsden

9

ลองดูบทเรียนประวัติศาสตร์นี้: http://www.livinginternet.com/i/iw_unix_c.htm

เมื่อคอมพิวเตอร์ PDP-11 มาถึง Bell Labs เดนนิสริตชี่สร้างบน B เพื่อสร้างภาษาใหม่ที่เรียกว่า C ซึ่งสืบทอดรสนิยมของทอมป์สันสำหรับไวยากรณ์ที่รัดกุมและมีการผสมผสานที่มีประสิทธิภาพของการทำงานระดับสูง ระบบ. ส่วนประกอบส่วนใหญ่ของ Unix ได้ถูกเขียนใหม่ใน C ในที่สุดซึ่งมีเคอร์เนลในปี 1973

สิ่งนี้อาจน่าสนใจ: http://cm.bell-labs.com/cm/cs/who/dmr/chist.html


1
AFAIK, "ที่สร้างขึ้นบน"ในขณะที่"การออกแบบบนพื้นฐานของการออกแบบของ"ไม่เป็น"รวบรวมโดยใช้"
vartec

8

เดนนิสริตชี่สินค้าร่วมมือ Bootstrapping เป็นแนวคิดง่ายๆที่คุณพัฒนาคอมไพเลอร์เริ่มต้นและเรียบง่ายในชุดประกอบจากนั้นคุณใช้คอมไพเลอร์เรียบง่ายนี้เพื่อคอมไพล์คอมไพเลอร์ของคุณที่เขียนด้วยภาษา (ชุดย่อย) ภาษาเป้าหมายของคุณ นี่คือวิธีที่ Ritchie สร้างคอมไพเลอร์ในช่วงต้น1120c ในช่วงต้น



2

C ถูกออกแบบมาเพื่ออนุญาตให้พอร์ต Unix ไปยังแพลตฟอร์มอื่น ๆ โดยไม่ต้องเขียนรหัสการประกอบทั้งหมดสำหรับแพลตฟอร์มใหม่

ดังนั้นคำพูดทั่วไปที่ว่า "C คือแอสเซมเบลอร์แบบพกพา" สิ่งนี้สะท้อนให้เห็นว่า C อยู่ใกล้กับซีพียูอย่างมาก (จากประมาณ 1970) ในระดับที่เป็นนามธรรมและเป็นสาเหตุที่ซอฟต์แวร์ฝังตัวส่วนใหญ่เขียนด้วย C บางชนิด

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

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

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