กลับไปหน้าบทความ

อ่าน 4 นาที

อัลโกล ดับเบิลยู

ALGOL Wเป็นภาษาโปรแกรมมิ่งโดยพัฒนามาจากข้อเสนอของNiklaus WirthและTony Hoare สำหรับ ALGOL Xเพื่อทดแทนALGOL 60 ALGOL W เป็นการปรับปรุง ALGOL 60 เดิมอย่างง่ายๆ โดยเพิ่ม...

อัลโกล ดับเบิลยู

ALGOL Wเป็นภาษาโปรแกรมมิ่งโดยพัฒนามาจากข้อเสนอของNiklaus WirthและTony Hoare สำหรับ ALGOL Xเพื่อทดแทนALGOL 60 ALGOL W เป็นการปรับปรุง ALGOL 60 เดิมอย่างง่ายๆ โดยเพิ่ม ชนิดข้อมูลสตริงบิตสตริง จำนวนเชิงซ้อนและการอ้างอิง ไปยัง เร คอร์ด รวมถึงการส่งพารามิเตอร์ แบบ เรียกใช้ตามผลลัพธ์แนะนำคำสั่ง แทนที่คำสั่งด้วยคำสั่ง และโดยทั่วไปแล้วเป็นการปรับปรุงภาษาให้กระชับยิ่งขึ้นwhileswitchcase

ผลงานของ Wirth ถือว่ามีความก้าวหน้าน้อยกว่า ALGOL 60 และผลงานที่ซับซ้อนกว่าของAdriaan van Wijngaardenซึ่งต่อมากลายเป็นALGOL 68ได้รับเลือกในการประชุมที่มีการโต้แย้งกันอย่างมาก ต่อมา Wirth ได้เผยแพร่เวอร์ชันของเขาในชื่อ"การมีส่วนร่วมในการพัฒนา ALGOL" [ 1 ] ด้วยการเพิ่มเติมเล็กน้อยหลายประการ ในที่สุดสิ่งนี้ก็กลายเป็น ALGOL W

Wirth ได้กำกับดูแลการใช้งานที่มีคุณภาพสูงสำหรับIBM System/360ที่มหาวิทยาลัยสแตนฟอร์ดซึ่งมีการเผยแพร่อย่างกว้างขวาง[ 2 ] [ 3 ]การใช้งานนี้เขียนด้วย ภาษาแอสเซมบลี PL360 ซึ่ง เป็น ภาษาแอสเซมบลีคล้าย ALGOL ที่ออกแบบโดย Wirth การใช้งานนี้รวมถึง ความสามารถในการดีบักและวิเคราะห์ ประสิทธิภาพที่มีประสิทธิภาพ

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

ไวยากรณ์และความหมาย

ไวยากรณ์ของ ALGOL W สร้างขึ้นจากชุดย่อยของ ชุด การเข้ารหัสอักขระEBCDIC ในALGOL 60คำสงวนถือเป็นรายการคำศัพท์ที่แตกต่างกัน แต่ใน ALGOL W คำสงวนเป็นเพียงลำดับของอักขระ และไม่จำเป็นต้องตัดทอนคำสงวนและตัวระบุจะถูกคั่นด้วยช่องว่าง[ 2 ]ในลักษณะนี้ ไวยากรณ์ของ ALGOL W จึงคล้ายคลึงกับไวยากรณ์ของPascalและภาษารุ่นหลังๆ

คำอธิบายภาษา ALGOL W [ 4 ]กำหนด ALGOL W ในไวยากรณ์คำต่อท้ายที่คล้ายกับรูปแบบ Backus–Naur (BNF) ไวยากรณ์อย่างเป็นทางการ นี้ เป็นต้นแบบของไวยากรณ์Van Wijngaarden [ 1 ] [ 5 ]

ความหมายส่วนใหญ่ของ ALGOL W ถูกกำหนดตามหลักไวยากรณ์: [ 4 ]

  • ตัวระบุจะแตกต่างกันตามคำจำกัดความภายในขอบเขต ปัจจุบัน ตัวอย่างเช่น `a` ⟨procedure identifier⟩คือตัวระบุที่ถูกกำหนดโดยการประกาศขั้นตอน `a` ⟨label identifier⟩คือตัวระบุที่ใช้เป็นป้ายกำกับคำสั่ง`goto`
  • ประเภทของตัวแปรและนิพจน์จะถูกแทนด้วยคำต่อท้าย ตัวอย่างเช่นคือหน่วยทางไวยากรณ์สำหรับฟังก์ชันที่ส่งคืนค่าประเภทหากมีการประกาศตัวระบุเป็นฟังก์ชันจำนวนเต็มในขอบเขตปัจจุบัน ก็จะถูกขยายเป็น⟨τ function identifier⟩τ⟨integer function identifier⟩
  • ข้อผิดพลาดเกี่ยวกับชนิดข้อมูลคือข้อผิดพลาดทางไวยากรณ์ ตัวอย่างเช่น⟨integer expression⟩ / ⟨integer expression⟩และ⟨real expression⟩ / ⟨real expression⟩เป็นหน่วยทางไวยากรณ์ที่ถูกต้องแต่แตกต่างกัน ซึ่งแสดงถึงนิพจน์ แต่⟨real expression⟩ DIV ⟨integer expression⟩(เช่น การหารจำนวนเต็มที่กระทำกับค่าทศนิยม) เป็นหน่วยทางไวยากรณ์ที่ไม่ถูกต้อง

ตัวอย่าง

สิ่งนี้แสดงให้เห็นถึงสิ่งอำนวยความสะดวกประเภท บันทึกของ ALGOL W รวมถึงการใช้การอ้างอิงว่าง[ 2 ]

บันทึกข้อมูลบุคคล( สตริง( 20 ) ชื่อ; อายุจำนวนเต็ม; เพศชายเชิงตรรกะ; อ้างอิง( บุคคล) พ่อ, แม่ , ลูกคนสุดท้อง, พี่น้องคนโต) ;REFERENCE(PERSON)PROCEDUREYOUNGESTUNCLE(REFERENCE(PERSON)R);BEGINREFERENCE(PERSON)P,M;P:=YOUNGESTOFFSPRING(FATHER(FATHER(R)));WHILE(P¬=NULL)AND(¬MALE(P))OR(P=FATHER(R))DOP:=ELDERSIBLING(P);M:=YOUNGESTOFFSPRING(MOTHER(MOTHER(R)));WHILE(M¬=NULL)AND(¬MALE(M))DOM:=ELDERSIBLING(M);IFP=NULLTHENMELSEIFM=NULLTHENPELSEIFAGE(P)<AGE(M)THENPELSEMEND
  • aw2c – ALGOL W compiler for Linux by Glyn Webster
  • awe – current version by Glyn Webster
  • ALGOL W @ Everything2 – informal but detailed description of the language by a former user, with sidebars extolling ALGOL W over Pascal as an educational programming language
  • 1969 ALGOL W compiler listing at bitsavers.org
  • The Michigan Terminal System Manuals, Volume 16: ALGOL W in MTS
  • ALGOL W materials More than 200 ALGOL W programs and documentation

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อัลโกล ดับเบิลยู

ALGOL Wเป็นภาษาโปรแกรมมิ่งโดยพัฒนามาจากข้อเสนอของNiklaus WirthและTony Hoare สำหรับ ALGOL Xเพื่อทดแทนALGOL 60 ALGOL W เป็นการปรับปรุง ALGOL 60 เดิมอย่างง่ายๆ โดยเพิ่ม...

ไวยากรณ์และความหมาย

ไวยากรณ์ ของ ALGOL W สร้างขึ้นจากชุดย่อยของ ชุด การเข้ารหัสอักขระ EBCDIC ใน ALGOL 60 คำสงวนถือเป็นรายการคำศัพท์ที่แตกต่างกัน แต่ใน ALGOL W คำสงวนเป็นเพียงลำดับของอักขระ และไม่จำเป็นต้อง ตัดทอน คำสงวนและตัวระบุจะถูกคั่นด้วยช่องว่าง [ 2 ] ในลักษณะนี้...

ตัวอย่าง

สิ่งนี้แสดงให้เห็นถึงสิ่งอำนวยความสะดวกประเภท บันทึก ของ ALGOL W รวมถึงการใช้การ อ้างอิงว่าง [ 2 ]

External links

aw2c – ALGOL W compiler for Linux by Glyn Webster awe – current version by Glyn Webster ALGOL W @ Everything2 – informal but detailed description of the language by a former user, with sidebars extolling ALGOL W over Pascal as an educational programming...