Paul Graham ประกาศภาษาการเขียนโปรแกรมใหม่ Bel

ภาษาเบลเขียนด้วยภาษาเบล

Paul Graham ประกาศภาษาการเขียนโปรแกรมใหม่ Bel
ในปี 1960 John McCarthy บรรยายถึง Lisp ซึ่งเป็นภาษาโปรแกรมรูปแบบใหม่ ฉันพูดว่า "รูปแบบใหม่" เพราะ Lisp ไม่ได้เป็นเพียงภาษาใหม่ แต่เป็นวิธีการอธิบายภาษาแบบใหม่

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

มันไม่ได้ถูกกำหนดไว้เพื่ออธิบายภาษาการเขียนโปรแกรมในความหมายปกติ - ภาษาที่ใช้บอกคอมพิวเตอร์ว่าต้องทำอะไร ในงานของเขาในปี 1960 Lisp เป็นที่เข้าใจกันว่าเป็นรูปแบบการคำนวณที่เป็นทางการซึ่งคล้ายกับ Turing Machine McCarthy ไม่คิดจะใช้มันกับคอมพิวเตอร์ จนกระทั่ง Steve Russell นักศึกษาระดับบัณฑิตศึกษาของเขาแนะนำมัน

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

ดังนั้นการพัฒนา Lisp จึงดำเนินไปในสองขั้นตอนและดูเหมือนว่าจะค่อนข้างเป็นอิสระ: ขั้นตอนที่เป็นทางการซึ่งเปิดตัวในรายงานปี 1960 และขั้นตอนการนำไปใช้ซึ่งภาษาได้รับการปรับเปลี่ยนและขยายให้ทำงานบนคอมพิวเตอร์ งานหลักหากวัดจากจำนวนโอกาสที่นำไปใช้งาน เกิดขึ้นในขั้นตอนการนำไปปฏิบัติ Lisp จากปี 1960 แปลเป็น Common Lisp มีเพียง 53 บรรทัด มันไม่เฉพาะสิ่งที่จำเป็นในการตีความสำนวนเท่านั้น ทุกอย่างถูกเพิ่มเข้ามาในขั้นตอนการใช้งาน

สมมติฐานของฉันคือ แม้จะมีประวัติที่ยากลำบาก แต่ Lisp ก็ได้รับประโยชน์จากความจริงที่ว่าการพัฒนาเกิดขึ้นในสองระยะ แบบฝึกหัดดั้งเดิมในการกำหนดภาษาโดยการเขียนล่ามในตัวนั้นทำให้ Lisp คุณสมบัติที่ดีที่สุด แล้วถ้าเป็นเช่นนั้นทำไมไม่ไปต่อล่ะ?

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

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

เพื่ออะไร? ทำไมต้องขยายเวทีอย่างเป็นทางการ? คำตอบหนึ่งคือการดูว่าแนวทางที่เป็นจริงจะพาเราไปได้ที่ไหน ซึ่งเป็นแบบฝึกหัดที่น่าสนใจในตัวมันเอง ถ้าคอมพิวเตอร์มีประสิทธิภาพเท่าที่เราต้องการ ภาษาจะเป็นอย่างไร?

แต่ฉันก็เชื่อด้วยว่ามีความเป็นไปได้ที่จะเขียนการใช้งานแบบ Bel-based ที่มีประสิทธิภาพโดยการเพิ่มข้อจำกัด หากคุณต้องการภาษาที่มีพลังในการแสดงออก ความชัดเจน และมีประสิทธิภาพ อาจคุ้มค่าที่จะเริ่มต้นด้วยพลังในการแสดงออกและความชัดเจน จากนั้นจึงเพิ่มข้อจำกัด แทนที่จะไปในทิศทางตรงกันข้าม

ดังนั้นหากคุณต้องการลองเขียนการใช้งานโดยอิงจาก Bel ให้ดำเนินการต่อ ฉันจะเป็นหนึ่งในผู้ใช้กลุ่มแรกๆ

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

คำอธิบายภาษาเพิ่มเติมที่นี่.

ขอบคุณสำหรับการแปล: Denis Mitropolsky

PS

ที่มา: will.com

เพิ่มความคิดเห็น