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

อ่าน 4 นาที

ข้อมูลทั่วไป ขยาย BASIC

ล่ามขั้นพื้นฐาน/ตระกูลภาษาการเขียนโปรแกรม BASIC/ข้อมูลทั่วไป

Data General Extended BASICหรือที่รู้จักกันอย่างแพร่หลายในชื่อNova Extended BASICคือตัวแปลภาษา BASIC สำหรับมินิคอมพิวเตอร์ซีรีส์Data General NovaมันพัฒนามาจากDartmouth BASIC...

ข้อมูลทั่วไป ขยาย BASIC

เบสิกแบบขยาย
นักพัฒนาข้อมูลทั่วไป
ปล่อย1970 ( 1970 )
แพลตฟอร์มข้อมูลทั่วไป โนวา
พิมพ์พื้นฐาน
ใบอนุญาตซอฟต์แวร์กรรมสิทธิ์เชิงพาณิชย์

Data General Extended BASICหรือที่รู้จักกันอย่างแพร่หลายในชื่อNova Extended BASICคือตัวแปลภาษา BASIC สำหรับมินิคอมพิวเตอร์ซีรีส์Data General NovaมันพัฒนามาจากDartmouth BASIC ซึ่งเป็นภาษาโปรแกรมรุ่นบุกเบิก รวมถึงตัวแปรสตริงและ คำสั่งที่มีประสิทธิภาพสำหรับ การจัดการ เมทริกซ์จากฉบับที่ห้า แต่แตกต่างจาก Dartmouth BASIC ที่เป็นแบบคอมไพล์แล้วใช้งานได้ทันที Extended BASIC เป็นตัวแปลภาษาMAT

ภาษา BASIC รุ่นขยาย (Extended BASIC) ได้เพิ่ม การแบ่งส่วนอาร์เรย์ (array slicing ) เข้าไปในระบบการจัดการสตริงแบบง่ายของ Dartmouth ซึ่งเป็นเรื่องปกติในภาษา BASIC ในยุคนั้นหลังจากที่ได้มีการนำเสนอในHP Time-Shared BASIC และกลายเป็นเรื่องปกติใน ไมโครคอมพิวเตอร์ยุคปี 1980 ที่ไม่ได้ใช้Microsoft BASICเช่นSinclair BASIC , Atari BASICและอื่นๆ ซึ่งแตกต่างจากรูปแบบของ Microsoft ที่ใช้ฟังก์ชันสตริง เช่นLEFT$`string` ดังนั้นการพอร์ตโค้ดสตริงไปยังภาษาอื่นๆ จึงค่อนข้างยาก

ต่อมา Data General ได้ซื้อสิทธิ์ในภาษา BASIC เวอร์ชันที่ขยายเพิ่มเติมอย่างมาก ซึ่งได้เปิดตัวในชื่อData General Business Basicเวอร์ชันนี้เพิ่ม ฟังก์ชันการทำงาน ด้านฐานข้อมูล ที่มีประสิทธิภาพ และเข้ามาแทนที่ Extended BASIC บนแพลตฟอร์มของ DG เป็นส่วนใหญ่

คำอธิบาย

คณิตศาสตร์

รูปแบบเลข ทศลอยภายในโดยปกติจะใช้คำ 16 บิตสองคำ รวมเป็น 32 บิต โดยจัดเก็บบิตที่มีค่าน้อยที่สุดก่อน บิตที่ 0 คือเครื่องหมาย บิตที่ 1 ถึง 7 คือเลขชี้กำลังที่จัดเก็บใน รูปแบบ excess-64และบิตที่ 8 ถึง 31 คือแมนทิสซาที่จัดเก็บเป็นตัวเลขฐานสิบหก[ 1 ]ตัวเลขอาจใช้รูปแบบความแม่นยำสองเท่าซึ่งขยายเฉพาะแมนทิสซาเท่านั้น โดยเพิ่มอีก 32 บิต นั่นหมายความว่ารูปแบบความแม่นยำสองเท่าไม่ได้ขยายช่วงของตัวเลขที่สามารถจัดเก็บได้ เพียงแต่ขยายความแม่นยำของตัวเลขเหล่านั้นเท่านั้น[ 2 ]ตัวเลขที่เป็นไปได้มีช่วงตั้งแต่ 5.4 × 10−79ถึง −7.2 × 1075.ตัวเลขที่มีจำนวนหลักน้อยกว่าหกหลักจะแสดงเป็นทศนิยม ในขณะที่ตัวเลขที่มีจำนวนหลักมากกว่าหกหลักจะแสดงในรูปแบบเลขยกกำลัง [ 1 ]

ชื่อตัวแปรอาจประกอบด้วยตัวอักษรตัวเดียว หรือตัวอักษรและตัวเลขหนึ่งตัว ไม่อนุญาตให้ใช้ชื่อที่มีสองตัวอักษร อาร์เรย์สามารถDIMมีได้ใน 1 (อาร์เรย์) หรือ 2 (เมทริกซ์) มิติ และขอบล่างจะเป็น 1 เสมอ[ 2 ]เช่นเดียวกับที่นิยมในสมัยนั้น ตัวแปรที่ไม่มีDIMค่าเริ่มต้นเป็นอาร์เรย์ 1 มิติที่มี 10 องค์ประกอบ ที่น่าสับสนคือ หากตัวแปรถูกDIMกำหนดค่าแล้ว มันจะไม่เหมือนกับตัวแปรที่มีชื่อเดียวกันแต่ไม่ได้ถูกDIMกำหนดค่าA(1)และAอาจเป็นตัวแปรเดียวกันหรือต่างกันก็ได้ ขึ้นอยู่กับวิธีการสร้าง[ 3 ]

ตัวดำเนินการทางคณิตศาสตร์เป็นชุดมาตรฐาน โดยมีการเพิ่มตัวบวกเอกภาค[ 3 ]ตัวดำเนินการเชิงสัมพันธ์สำหรับการเปรียบเทียบก็เป็นชุดมาตรฐานเช่นกัน ไม่มี#ตัวดำเนินการไม่เท่ากับอย่างที่พบใน BASIC บางภาษาในยุคเดียวกัน[ 3 ]

คณิตศาสตร์เมทริกซ์

Extended BASIC เพิ่มชุดการดำเนินการทางคณิตศาสตร์เมทริกซ์จาก Dartmouth BASIC ฉบับที่ห้า โดยพื้นฐานแล้วสิ่งเหล่านี้คือมาโครที่ดำเนินการซึ่งโดยปกติแล้วจะต้องทำด้วยFOR...NEXTลูป[ 4 ]

ระบบประกอบด้วยเมทริกซ์ที่เตรียมไว้ล่วงหน้าจำนวนหนึ่ง เช่นZERเมทริกซ์ศูนย์CONเมทริกซ์ที่มีค่าเป็น 1 ทั้งหมด และเมทริกซ์เอกลักษณ์IDNการดำเนินการทางคณิตศาสตร์ส่วนใหญ่ได้รับการสนับสนุน ตัวอย่างเช่นคูณทุกองค์ประกอบใน A ด้วย 2 หาดีเทอร์มิแนนต์ และผกผันดีเทอร์มิแนนต์[ 4 ]MAT A=A*2MAT A=DET AMAT A=INV(A)

สตริง

ตัวอักษรสตริง (ค่าคงที่) จะถูกป้อนระหว่างเครื่องหมายอัญประกาศคู่ อักขระภายในสตริงสามารถหลีกเลี่ยงได้โดยการวาง ค่า ASCII ของอักขระนั้น ไว้ระหว่างวงเล็บเหลี่ยม ตัวอย่าง"This prints a quote, <34>."เช่น ตัวแปรสตริง เช่นเดียวกับตัวแปรตัวเลข ประกอบด้วยตัวอักษรเพียงตัวเดียว หรือตัวอักษรหนึ่งตัวและตัวเลขหนึ่งตัว[ 5 ]

เช่นเดียวกับตัวแปรทั้งหมดใน Extended BASIC ตัวแปรสตริงมักจะถูกจัดสรรพื้นที่ 10 ช่อง แต่สามารถขยายได้สูงสุดถึง 32  k ด้วยการระบุอย่างชัดเจนDIMเนื่องจากมีการใช้ไวยากรณ์อาร์เรย์ในการประกาศความยาวของสตริง จึงไม่สามารถใช้อาร์เรย์สตริงได้ การกำหนดสตริงให้กับตัวแปรที่มีขนาดเล็กเกินไปที่จะเก็บสตริงนั้นได้ จะทำให้ส่วนเกินถูกตัดทิ้ง[ 6 ]

การจัดการสตริงดำเนินการโดยใช้ไวยากรณ์การแบ่งส่วนอาร์เรย์A$(10)โดยอ้างอิงถึงสตริงย่อยจากตำแหน่งที่ 10 ถึงส่วนท้ายของสตริง ในขณะที่A$(10,20)อ้างอิงถึงอักขระที่ 10 ถึง 20 การเชื่อมต่อใช้เครื่องหมายจุลภาค ดังนั้นจึงA$=A$,B$เพิ่มB$ต่อท้ายA$ [ 7 ] นี่เป็นไวยากรณ์ที่ไม่ธรรมดา แม้กระทั่งเมื่อมีการนำมาใช้ BASIC ส่วนใหญ่ที่ใช้การแบ่งส่วนจะใช้ไวยากรณ์นี้สำหรับการเชื่อมต่อด้วยเช่นกัน ตัวอย่างเช่นจะเพิ่มB$ต่อท้ายA$ในขณะที่ BASIC ที่ใช้ฟังก์ชันสตริง เช่นMicrosoft BASICใช้เครื่องหมายบวกสำหรับการดำเนินการนี้อย่างแพร่หลายอยู่แล้วA$(LEN(A$))=B$

การเปลี่ยนแปลงไวยากรณ์นี้เกิดขึ้นเนื่องจาก Extended BASIC อนุญาตให้ใช้ตัวดำเนินการทางคณิตศาสตร์กับสตริงได้จนถึงอักขระที่ไม่ใช่ตัวเลขตัวแรก ตัวอย่างเช่นA="1234"+"2345"จะใส่ 3579 ลงใน A โดยไม่จำเป็นต้องแปลงเป็นตัวเลขอย่างชัดเจน ในภาษาถิ่นส่วนใหญ่ งานนี้จะต้องแปลงตัวเลขทั้งสองเป็นตัวเลขโดยใช้VALฟังก์ชัน เช่นA=VAL("1234")+VAL("2345")อักขระที่ไม่ใช่ตัวเลขจะถูกละเลยA="1234"+"FRED"ใส่ 1234 ลงใน A [ 8 ]

ภาษา BASIC รุ่นขยายขาดCHANGEคำสั่งจาก Dartmouth ที่ใช้แปลงสตริงทั้งหมดเป็นหรือจากค่า ASCII ในอาร์เรย์ ตัวอย่างเช่นCHANGE "HELLOWORLD" TO Bซึ่งจะทำให้ตัวอักษร B ถูกกำหนดตัวเลข 10 ตัว โดยแต่ละตัวเป็นค่า ASCII ระบบนี้ถูกแทนที่ด้วยระบบการแบ่งส่วน (slicing system)

แถลงการณ์

Extended BASIC มีลักษณะคล้ายคลึงกับ Dartmouth และ Microsoft BASIC ในด้านความหลากหลายของคำสั่งที่รองรับและไวยากรณ์ ข้อยกเว้น ได้แก่แทนที่จะ ใช้ CONแทนที่จะใช้(ซึ่งไม่เป็นที่นิยมอยู่แล้ว) มีการเพิ่มเติมสองอย่างคือซึ่งอนุญาตให้ดักจับข้อผิดพลาดได้ ซึ่งเป็นคุณสมบัติที่พบได้ทั่วไปใน BASIC อื่นๆ และซึ่งอนุญาตให้ดักจับปุ่ม break (escape ในกรณีนี้) ได้ เช่นกัน [ 9 ]คล้ายกับแต่ช่วยให้สามารถรันบรรทัดเดียวซ้ำได้หลังจาก break แทนที่จะรันโปรแกรมทั้งหมดต่อ[ 10 ]กำหนดเวลาจำกัดสำหรับ การตอบสนองของคำสั่ง ซึ่งเป็น "การป้อนข้อมูลแบบกำหนดเวลา" ที่เหมือนกับ[ 11 ]CONTDELAYPAUSEON ERR THEN...ON ESC THEN...RETRYCONTIMETINPUTINPUT

BASIC เวอร์ชันขยายได้เพิ่มคำสั่งแก้ไข โหมดทันทีหลากหลายประเภทซึ่งไม่ได้เป็นส่วนหนึ่งของภาษาโดยตรงคำสั่งเหล่านี้รวมถึงERASEคำสั่งลบช่วงของบรรทัดออกจากโปรแกรม คำENTERสั่งอ่านเนื้อหาของไฟล์ข้อความลงในโปรแกรม และRENUMBER[ 12 ] คล้ายCARDSกับENTERแต่จะอ่านบรรทัดจากเครื่องอ่านการ์ด

นอกจากนี้ยังเพิ่มคำสั่งจำนวนหนึ่งสำหรับการจัดการกับระบบไฟล์พื้นฐาน รวมถึงคำสั่งFILEที่แสดงรายการไฟล์ในไดเร็กทอรีของผู้ใช้ และLIBRARYคำสั่งที่ทำเช่นเดียวกันกับสัญลักษณ์ตัวแทนGDIRซึ่งพิมพ์ชื่อของไดเร็กทอรีนั้นLOADและSAVEสำหรับรหัสโปรแกรมRENAMEและDELETEและDISKซึ่งพิมพ์พื้นที่ว่างPUNCHมีลักษณะคล้ายกับSAVEแต่ส่งไฟล์ไปยัง เครื่อง เจาะบัตรWHATSพิมพ์คุณลักษณะของไฟล์ที่กำหนด[ 13 ]

คำสั่ง อื่นๆ ที่เกี่ยวข้องกับ ระบบปฏิบัติการได้แก่WHOการพิมพ์รายชื่อผู้ใช้ที่เข้าสู่ระบบMSGการรบกวนพวกเขาPAGEการตั้งค่าระยะขอบที่ถูกต้อง (ความกว้างของหน้า) และSIZEการพิมพ์หน่วยความจำที่โปรแกรมใช้ ซึ่งตรงกันข้ามกับสิ่งที่จะส่งคืนใน MS BASIC FRE()ด้วย[ 14 ]

ฟังก์ชัน

ฟังก์ชันต่างๆ ตรงกับ Dartmouth และ Microsoft BASIC อย่างใกล้ชิด โดยมีการเพิ่มเติมเล็กน้อยCPU()ส่งคืนค่าตัวเลขที่เข้ารหัสตำแหน่งของสวิตช์แผงด้านหน้า[ 15 ]EOF(x)ส่งคืนว่าไฟล์xถึงจุดสิ้นสุดของไฟล์ หรือไม่ ส่งคืนตำแหน่งของB$ภายในA$ที่ใดก็ได้หลังจากตำแหน่งZ ที่เป็นตัวเลือก คล้ายกับ มาตรฐานMS [ 16 ]โปรดทราบว่าสิ่งนี้จะแทนที่สิ่งที่พบใน MS ซึ่งส่งคืนตำแหน่งคอลัมน์ปัจจุบันของเคอร์เซอร์POS(X$,Y$,Z)INSTRPOS

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Data_General_Extended_BASIC&oldid=1329276644 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ข้อมูลทั่วไป ขยาย BASIC

Data General Extended BASICหรือที่รู้จักกันอย่างแพร่หลายในชื่อNova Extended BASICคือตัวแปลภาษา BASIC สำหรับมินิคอมพิวเตอร์ซีรีส์Data General NovaมันพัฒนามาจากDartmouth BASIC...

คณิตศาสตร์

รูปแบบเลข ทศลอย ภายในโดยปกติจะใช้คำ 16 บิตสองคำ รวมเป็น 32 บิต โดยจัดเก็บ บิตที่มีค่าน้อยที่สุด ก่อน บิตที่ 0 คือเครื่องหมาย บิตที่ 1 ถึง 7 คือ เลขชี้กำลัง ที่จัดเก็บใน รูปแบบ excess-64 และบิตที่ 8 ถึง 31 คือ แมนทิสซา ที่จัดเก็บเป็นตัวเลขฐานสิบหก [ 1 ]...

คณิตศาสตร์เมทริกซ์

Extended BASIC เพิ่มชุดการดำเนินการทางคณิตศาสตร์เมทริกซ์จาก Dartmouth BASIC ฉบับที่ห้า โดยพื้นฐานแล้วสิ่งเหล่านี้คือ มาโคร ที่ดำเนินการซึ่งโดยปกติแล้วจะต้องทำด้วย FOR...NEXT ลูป [ 4 ]

สตริง

ตัวอักษรสตริง (ค่าคงที่) จะถูกป้อนระหว่างเครื่องหมายอัญประกาศคู่ อักขระภายในสตริงสามารถหลีกเลี่ยงได้โดยการวาง ค่า ASCII ของอักขระนั้น ไว้ระหว่างวงเล็บเหลี่ยม ตัวอย่าง .\""},"parts":[{"template":{"target":{"wt":"code","href":".