อ่าน 4 นาที
แมคลิสป์
Maclisp (หรือ MACLISP บางครั้งเขียนว่า MacLisp หรือ MacLISP ) เป็น ภาษาโปรแกรมมิ่ง ซึ่งเป็น ภาษาถิ่น ของภาษา Lisp มีต้นกำเนิดมาจาก โครงการ MAC [ 1 ] ของ...
แมคลิสป์
| แมคลิสป์ | |
|---|---|
| กระบวนทัศน์ | หลายกระบวนทัศน์ : เชิงหน้าที่ , เชิงกระบวนการ , เชิง สะท้อน , เชิงอภิปรัชญา |
| ตระกูล | ลิสป์ |
| ออกแบบโดย | ริชาร์ด กรีนแบลตต์จอน แอล. ไวท์ |
| นักพัฒนา | MIT : โครงการ MAC |
| ปรากฏครั้งแรก | กรกฎาคม พ.ศ. 2509 |
| วินัยในการพิมพ์ | มีพลังแข็งแกร่ง |
| ภาษาการใช้งาน | ภาษาแอสเซมบลี , PL/I |
| แพลตฟอร์ม | พีดีพี-6 , พีดีพี-10 |
| โอเอส | ระบบแบ่งเวลาใช้งานที่ไม่เข้ากัน TOPS - 10 , TOPS-20 , Multics |
| นามสกุลไฟล์ | .lisp , .fasl |
| ได้รับอิทธิพลจาก | |
| ลิสป์ 1.5 | |
| ได้รับอิทธิพล | |
| ภาษาลิสป์ทั่วไป , ภาษาลิสป์อีแมคส์ | |
Maclisp (หรือMACLISPบางครั้งเขียนว่าMacLispหรือMacLISP ) เป็นภาษาโปรแกรมมิ่งซึ่งเป็นภาษาถิ่นของภาษาLispมีต้นกำเนิดมาจากโครงการ MAC [ 1 ] ของ สถาบันเทคโนโลยีแมสซาชูเซตส์ (MIT) (ซึ่งเป็นที่มาของคำนำหน้า) ในช่วงปลายทศวรรษ 1960 และมีพื้นฐานมาจาก Lisp 1.5 [ 2 ] Richard Greenblattเป็นผู้พัฒนาหลักของโค้ดเบสเดิมสำหรับPDP-6 [ 1 ] Jon L. White รับผิดชอบการบำรุงรักษาและการพัฒนาในภายหลัง ชื่อMaclispเริ่มถูกนำมาใช้ในช่วงต้นทศวรรษ 1970 เพื่อแยกแยะออกจากภาษา Lisp อื่นๆ ที่แยก ออกมาจาก PDP-6 โดยเฉพาะBBN Lisp
ประวัติศาสตร์
Maclisp เป็นภาษาที่สืบทอดมาจากLisp 1.5 [ 3 ] Maclisp แตกต่างจาก Lisp 1.5 โดยใช้เซลล์ค่าเพื่อเข้าถึงและจัดเก็บค่าไดนามิกของตัวแปร[ 4 ] Lisp 1.5 ใช้การค้นหาเชิงเส้นของรายการเชื่อมโยงเพื่อกำหนดค่าของตัวแปร[ 5 ] การประเมินค่าตัวแปรของ Maclisp เร็วกว่า แต่มีความหมายของตัวแปรที่แตกต่างกัน Maclisp ยังใช้มาโครตัวอ่านเพื่อให้การป้อนข้อมูลและการแสดงผล อ่านง่ายขึ้น เรียกว่าการป้อนข้อมูล/การแสดงผล (I/O) แทนที่จะป้อน(QUOTE A)เราสามารถป้อน เพื่อให้ได้ นิพจน์ s'Aเดียวกันแม้ว่าการใช้งานทั้งสองจะใส่ฟังก์ชันลงในรายการคุณสมบัติ แต่ Maclisp ใช้ไวยากรณ์ที่แตกต่างกันในการกำหนดฟังก์ชัน[ 6 ] Maclisp ยังมีคุณสมบัติการโหลดตามความต้องการอีกด้วย[ 7 ]
Maclisp เริ่มต้นบนคอมพิวเตอร์PDP-6และPDP-10 ของ Digital Equipment Corporation ที่ใช้ ระบบปฏิบัติการ Incompatible Timesharing System (ITS) ต่อมาได้มีการพอร์ตไปยังระบบปฏิบัติการอื่นๆ บน PDP-10 เช่นTimesharing / Total Operating System , TOPS-10และTOPS-20การใช้งานดั้งเดิมนั้นเขียนด้วยภาษาแอสเซมบลีแต่การใช้งานในภายหลังบนMulticsใช้ภาษา PL/I Maclisp ได้รับการพัฒนาอย่างมากตลอดอายุการใช้งาน มีการเพิ่มคุณสมบัติหลักๆ ซึ่งในระบบภาษาอื่นๆ มักจะสอดคล้องกับหมายเลขรุ่นหลัก
ภาษา Maclisp ถูกนำมาใช้ในการพัฒนา โปรแกรม พีชคณิต เชิงสัญลักษณ์ (CAS) หรือ Macsyma การพัฒนา Macsyma ยังเป็นแรงผลักดันให้เกิดฟีเจอร์ต่างๆ ใน Maclisp อีกด้วย โปรแกรม SHRDLU blocks-world เขียนด้วยภาษา Maclisp ดังนั้นภาษานี้จึงถูกใช้งานอย่างแพร่หลายใน แวดวงวิจัย ปัญญาประดิษฐ์ (AI) ในช่วงต้นทศวรรษ 1980 นอกจากนี้ยังถูกนำมาใช้ในการพัฒนาภาษาโปรแกรมอื่นๆ เช่นPlannerและScheme อีกด้วย Multics Maclisp ถูกนำมาใช้ในการพัฒนา Emacs เวอร์ชันแรกที่ใช้ภาษา Lisp เป็นพื้นฐาน
Maclisp เป็นโปรแกรมที่นำภาษา Lisp มาใช้ซึ่งมีอิทธิพลมาก แต่ปัจจุบันไม่มีการบำรุงรักษาอย่างต่อเนื่องแล้ว อย่างไรก็ตาม มันยังคงทำงานบนโปรแกรมจำลอง PDP-10 และสามารถใช้สำหรับการทดลองกับโปรแกรม AI ยุคแรกๆ ได้
| 1958 | 1960 | พ.ศ. 2508 | 1970 | พ.ศ. 2518 | 1980 | พ.ศ. 2528 | 1990 | พ.ศ. 2538 | 2000 | 2548 | 2010 | 2015 | 2020 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LISP 1, 1.5, LISP 2 (เลิกพัฒนาแล้ว) | |||||||||||||||
| แมคลิสป์ | |||||||||||||||
| อินเตอร์ลิสป์ | |||||||||||||||
| เอ็มดีแอล | |||||||||||||||
| เครื่องลิสป์ ลิสป์ | |||||||||||||||
| โครงการ | อาร์5อาร์เอส | อาร์6อาร์เอส | R7RS ขนาดเล็ก | ||||||||||||
| ไม่มี | |||||||||||||||
| ZIL (ภาษาการใช้งาน Zork) | |||||||||||||||
| ฟรานซ์ ลิสป์ | |||||||||||||||
| มิวลิสป์ | |||||||||||||||
| ลิสปาร์กทั่วไป | มาตรฐาน ANSI | ||||||||||||||
| เลอ ลิสป์ | |||||||||||||||
| โครงการ MIT | |||||||||||||||
| เอ็กซ์แอลไอเอสพี | |||||||||||||||
| ที | |||||||||||||||
| เชซ สกีม | |||||||||||||||
| อีแมคส์ ลิสป์ | |||||||||||||||
| ออโต้ลิสป์ | |||||||||||||||
| พิโคลิสป์ | |||||||||||||||
| กลเม็ด | |||||||||||||||
| ยูลิสป์ | |||||||||||||||
| ไอเอสลิสป์ | |||||||||||||||
| โอเพ่นลิสป์ | |||||||||||||||
| โครงการ PLT | แร็กเก็ต | ||||||||||||||
| นิวลิสปาร์ | |||||||||||||||
| จีเอ็นยู ไกล์ | |||||||||||||||
| วิชวล LISP | |||||||||||||||
| โคลจูร์ | |||||||||||||||
| อาร์ค | |||||||||||||||
| แอลเอฟอี | |||||||||||||||
| ไฮ | |||||||||||||||
ลักษณะเฉพาะ
Maclisp เริ่มต้นด้วย ชนิดข้อมูลจำนวนจำกัดและตายตัวได้แก่เซลล์, อะตอม (ต่อมาเรียกว่าสัญลักษณ์ ), จำนวนเต็มและจำนวนทศนิยมต่อมาได้มีการเพิ่มชนิดข้อมูลอื่นๆ ได้แก่อาร์เรย์ซึ่งไม่เคยเป็นชนิดข้อมูลหลัก จำนวนเต็มความแม่นยำสูง (bignums) สตริงและทูเปิลวัตถุทั้งหมด (ยกเว้น inums) ถูกนำไปใช้ในรูป แบบของ ตัวชี้และชนิดข้อมูลของวัตถุจะถูกกำหนดโดยบล็อกหน่วยความจำที่มันชี้ไป โดยมีกรณีพิเศษสำหรับจำนวนน้อย (inums)
โปรแกรมสามารถตีความหรือคอมไพล์ได้พฤติกรรมการคอมไพล์จะเหมือนกับการตีความ ยกเว้นว่าตัวแปรโลคอลจะเป็นแบบเลกซิคัลโดยค่าเริ่มต้นในโค้ดที่คอมไพล์ เว้นแต่จะประกาศเป็น SPECIAL [ 8 ]และไม่มีการตรวจสอบข้อผิดพลาดสำหรับการดำเนินการแบบอินไลน์ เช่น CAR และ CDR คอมไพเลอร์ Ncomplr (ช่วงกลางทศวรรษ 1970) ได้นำเสนอการสนับสนุนตัวเลขที่รวดเร็วให้กับภาษา Lisp โดยสร้างโค้ดเครื่อง (คำสั่ง) สำหรับการคำนวณทางคณิตศาสตร์แทนที่จะเรียกใช้รูทีนแบบตีความซึ่งส่งตามประเภทข้อมูล ทำให้การคำนวณทางคณิตศาสตร์ของ Lisp มีความเร็วเทียบเท่ากับFortranสำหรับการดำเนินการแบบสเกลาร์ (แม้ว่าการใช้งานอาร์เรย์และลูปของ Fortran จะยังคงเร็วกว่ามาก)
เวอร์ชันดั้งเดิมนั้นมีข้อจำกัดอยู่ที่ หน่วยความจำแอดเดรส 18 บิตของ PDP-10 และต้องใช้ความพยายามอย่างมากในการทำให้การใช้งานนั้นกระชับและไม่ซับซ้อน Multics Maclisp มีพื้นที่แอดเดรสที่ใหญ่กว่ามาก แต่มีค่าใช้จ่ายในการใช้งานสูง เมื่อหน่วยความจำและพลังการประมวลผลของPDP-10เกินขีดจำกัด จึงได้มีการคิดค้น Lisp Machineขึ้นมา: Lisp Machineเป็นภาษาที่สืบทอดมาจาก Maclisp โดยตรง นอกจากนี้ยังมีภาษา Lisp อื่นๆ อีกหลาย ภาษาที่ใช้งานอยู่ และความจำเป็นในการรวมกลุ่มชุมชนจึงส่งผลให้เกิดภาษา Common Lisp ในปัจจุบัน
ชื่อ
Maclisp ได้รับการตั้งชื่อตามProject MACและไม่มีความเกี่ยวข้องกับ คอมพิวเตอร์ Macintosh (Mac) ของ Apple ซึ่งมีมาก่อนหลายทศวรรษ หรือกับJohn McCarthyระบบ Lisp ต่างๆ สำหรับ Macintosh ไม่มีความคล้ายคลึงกับ Maclisp เป็นพิเศษ[ 9 ]
ลิงก์ภายนอก
- เว็บไซต์ https://softwarepreservation.computerhistory.org/LISP/maclisp_family.htmlมีบรรณานุกรมเกี่ยวกับ Maclisp
- John L. White. คู่มือผู้ใช้ LISP ฉบับชั่วคราว บันทึกช่วยจำด้านปัญญาประดิษฐ์ หมายเลข 190 โครงการ MAC สถาบันเทคโนโลยีแมสซาชูเซตส์ มีนาคม 1970 จำนวน 87 หน้าftp://publications.ai.mit.edu/ai-publications/pdf/AIM-190.pdfระบุว่า "'MACLISP' หมายถึงการใช้งานภาษาโปรแกรม LISP บน PDP/6 ที่ใช้ในกลุ่มปัญญาประดิษฐ์ของโครงการ MAC"
- "ในปี 1973 และ 1974 เดวิด เอ. มูนได้เป็นผู้นำในการนำ MacLisp มาใช้งานบน Honeywell 6180 ภายใต้ระบบปฏิบัติการ Multics และในส่วนหนึ่งของโครงการนี้ เขาได้เขียนคู่มืออ้างอิงฉบับสมบูรณ์เล่มแรกสำหรับ MacLisp ซึ่งต่อมาเป็นที่รู้จักกันในชื่อ 'Moonual'" [Steele and Gabriel 1993]
- Jon L. White [JONL], Eric Rosen [ECR], Richard M. Stallman [RMS], Guy L. Steele Jr. [GLS], Howard I. Cannon [HIC], Bob Kerns [RWK]. ข่าว LISP. บันทึกการเผยแพร่ MacLisp.
- Jon L. White. LISP: โปรแกรมคือข้อมูล: มุมมองทางประวัติศาสตร์เกี่ยวกับ MacLISP. รายงานการประชุมผู้ใช้ MACSYMA ปี 1977. สำนักงานข้อมูลวิทยาศาสตร์และเทคนิคของ NASA (วอชิงตัน ดี.ซี. กรกฎาคม 1977), หน้า 181–189. PDF
- McCarthy, John ; Abrahams, Paul W.; Edwards, Daniel J.; Hart, Timothy P.; Levin, Michael I. (1985) [1962]. คู่มือโปรแกรมเมอร์ LISP 1.5 (PDF) (ฉบับที่ 2). สำนักพิมพ์ MIT . ISBN 0-262-13011-4.
- Moon, David (1974). คู่มืออ้างอิง Maclisp (PDF) . เก็บถาวร(PDF)จากต้นฉบับเมื่อ 2011-10-05.
- คู่มือ Maclisp ฉบับปรับปรุง (1983) โดย Kent Pitman
- คอมไพเลอร์ Multics MACLISP (1977) โดย Bernard Greenberg
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แมคลิสป์
Maclisp (หรือ MACLISP บางครั้งเขียนว่า MacLisp หรือ MacLISP ) เป็น ภาษาโปรแกรมมิ่ง ซึ่งเป็น ภาษาถิ่น ของภาษา Lisp มีต้นกำเนิดมาจาก โครงการ MAC [ 1 ] ของ...
ประวัติศาสตร์
Maclisp เป็นภาษาที่สืบทอดมาจาก Lisp 1.5 [ 3 ] Maclisp แตกต่างจาก Lisp 1.5 โดยใช้ เซลล์ค่า เพื่อเข้าถึงและจัดเก็บค่าไดนามิกของตัวแปร [ 4 ] Lisp 1.
ลักษณะเฉพาะ
Maclisp เริ่มต้นด้วย ชนิดข้อมูล จำนวนจำกัดและตายตัว ได้แก่ เซลล์, อะตอม (ต่อมาเรียกว่า สัญลักษณ์ ), จำนวนเต็ม และ จำนวนทศนิยม ต่อมาได้มีการเพิ่มชนิดข้อมูลอื่นๆ ได้แก่ อาร์เรย์ ซึ่งไม่เคยเป็นชนิดข้อมูล หลัก จำนวนเต็มความแม่นยำสูง (bignums) สตริง และ ทูเปิล...
ชื่อ
Maclisp ได้รับการตั้งชื่อตาม Project MAC และไม่มีความเกี่ยวข้องกับ คอมพิวเตอร์ Macintosh (Mac) ของ Apple ซึ่งมีมาก่อนหลายทศวรรษ หรือกับ John McCarthy ระบบ Lisp ต่างๆ สำหรับ Macintosh ไม่มีความคล้ายคลึงกับ Maclisp เป็นพิเศษ [ 9 ]